Net usershare вернул ошибку 255 net usershare usershares are currently disabled

Добрый день! После обновления с Ubunta 9.04 до 9.10 при попытке расшарить папку периодически вылетает эта ошибка:
  • Печать

Страницы: [1] 2  Все   Вниз

Тема: Ошибка 255 при запуске ‘net usershare’  (Прочитано 35891 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн
lcnet

Добрый день!

После обновления с Ubunta 9.04 до 9.10 при попытке расшарить папку периодически вылетает эта ошибка:

«Ошибка 255 при запуске ‘net usershare’: net usershare add: cannot convert name «Everyone» to a SID. Memory allocation error»

Пробовал рестатить самбу «sudo /etc/init.d/samba restart»
Пробовал расшаривать через консоль с помощью «net usershare»

Самое интересное что ошибка не постоянная, появляется после перезагрузки системы и исчезает после первой же перезагрузки ситемы, а бывает что раз по 10 рестартить приходится.

Как это лечить?

З.Ы. Сильно не ругаться я новичок в Линуксоводстве)


Оффлайн
kosh59

лечится оно добавлением в файл /etc/samba/smb.conf
строчки

usershare owner only = falseну и конечно перезапуском самбы

sudo /etc/init.d/samba restart


Оффлайн
nocturna

Та-же проблема.

Ошибка 255 при запуске 'net usershare': net usershare add: cannot convert name "Everyone" to a SID. Memory allocation error.
Добавление usershare owner only = false не помогло…


Оффлайн
S.Dedal

У меня похожая проблема. Поставил Ubuntu 9.10 второй системой после Windows 7, при попытке расшарить папку, находящуюся на винте с файловой системой ntfs получаю пресловутую ошибку 255. Прописал строчку usershare owner only = false в /etc/samba/smb.conf следующим образом:

Но эта ошибка все равно появляется, перезапуск самбы и перезагрузка не помогли.
Возможно что-то сделал не так или прописал не туда, т.к. Ubuntu поставил недавно и в ней я нубас полнейший.


Оффлайн
lcnet

kosh59, Неее тут другое… такое ощущение что все ошибки с ‘net usershare’ именуются Ошибка 255…

Вот пример:
«Ошибка 255 при запуске ‘net usershare’: net usershare add: cannot share path /media/disk as we are restricted to only sharing directories we own. Ask the administrator to add the line «usershare owner only = False» to the [global] section of the smb.conf to allow this«
— Эта ошибка значит вы пытаетесь сделать общедоступным диск или папку, владельцем которой ваша учётная запись не является.

Как ты и горишь надо в etc/samba/smb.conf и в секцию [global] в подраздел Misc дописать строчку:

usershare owner only = False.

Это разрешит нам как пользователю открывать общий доступ к чужим объектам. Так, диски находятся в ведении суперпользователя.

 Опять таки ошибка с номером 255
«Ошибка 255 при запуске ‘net usershare’: net usershare add: cannot convert name «Everyone» to a SID. Memory allocation error«
— Чем она лечится я так и не понял, или мои махинации помогли то-ли этот глюк прошел сам через пару обновлений…

Я делал так.
1) Примонтировал диски таким нехитрым способом
sudo gedit /etc/mtab
скопировал нужное и в вставил в
sudo gedit /etc/fstab
заменив fuseblk на ntfs-3g
1.2) строка «usershare owner only = False«. у меня уже была прописана… если у Вас нет, вставьте на всяк пожарный
2) Поставил самбу «Sudo apt-get install samba«,
3) Расшарил папки через ГУИ Samb’ы «Система/Администрирование/Samba» назначив там нужные права доступа.

« Последнее редактирование: 27 Января 2010, 20:44:22 от lcnet »


Оффлайн
netsloff

попробуйте так sudo /etc/init.d/samba restart Если будет так (ок) (fail) то сделайте так sudo apt-get install —reinstall samba-common-bin а потом так sudo /etc/init.d/samba restart мне помогло…


Оффлайн
stepnoy

мне это не помогло

попробуйте так sudo /etc/init.d/samba restart Если будет так (ок) (fail) то сделайте так sudo apt-get install —reinstall samba-common-bin а потом так sudo /etc/init.d/samba restart мне помогло…

вот такая постоянно ошибка

кто может подсказать в чем тут проблема?


Оффлайн
GrafTrahula

можно попробовать запустить sudo nautilus и через него повторить расшаривание.мне помогло


Оффлайн
simulyant

У меня при расшаривании папки через nautilus возникает эта ошибка «Ошибка 255 при запуске ‘net usershare’: net usershare add: cannot convert name «Everyone» to a SID. Invalid parameter»

— добавление usershare owner only = false в /etc/samba/smb.conf — не помогло
— Переустановка samba-common-bin — sudo apt-get install —reinstall samba-common-bin а потом так sudo /etc/init.d/samba restart — не помогло
— Запуск sudo nautilus не помог

Что делать?

Ubuntu 10.04 Netbook Edition


Оффлайн
Kiberman

У меня при расшаривании папки через nautilus возникает эта ошибка «Ошибка 255 при запуске ‘net usershare’: net usershare add: cannot convert name «Everyone» to a SID. Invalid parameter»

— добавление usershare owner only = false в /etc/samba/smb.conf — не помогло
— Переустановка samba-common-bin — sudo apt-get install —reinstall samba-common-bin а потом так sudo /etc/init.d/samba restart — не помогло
— Запуск sudo nautilus не помог

Что делать?


тоже такая же ошибка,решения пока не нашёл может кто из постояльцев ответит

« Последнее редактирование: 09 Марта 2011, 15:49:08 от Kiberman »


Оффлайн
gregory5

Расшаривай через конфиг, а не наутилус, и да судо наутилус запуститься без поддержки сети из за кривизны в шине, запускать нужно sudo dbus-launch nautilus, но не расшаривай наутилусом, криво оно работает


Оффлайн
0konstantin0

как я понял такое бывает если дополнительно установить сервер самба из репозитория помимо стандартного….


Оффлайн
IAmABanana

Была такая же проблема с расшариванием собственых папок через роутер. Решилось всё очень просто: идём Система>Администрирование>опубликованные папки и добавляем всё что нужно.

KXStudio 14.04 дуалбут с Win7
Lenovo Thinkpad X230


Оффлайн
ps1x0

Здравствуйте, уважаемые. Была похожая проблема: не мог расшарить папку с полным доступом на ntfs разделе.
Победил с помощью добавления строчки usershare owner only = false в секцию [global] /etc/samba/smb.conf
Потом возникла проблема с предоставлением гостевого доступа к расшаренной папке. Не знаю что тут сыграло определяющую роль, но во-первых убрал sticky-бит c usershares

sudo chmod -t /var/lib/samba/usershares
во-вторых примонтировал раздел с ntfs c правами drwxrwxrwx, путем изменения umask=007 на umask=000. В итоге строчка в fstab с ntfs разделом выглядела следующим образом:

UUID=C53D4B0FAEB1E5A1 /media/data     ntfs    defaults,umask=000,gid=46 0       0
Решил на всякий случай написать, может кому-нибудь пригодится. Ubuntu 10.04 LTS

« Последнее редактирование: 18 Ноября 2011, 10:56:02 от ps1x0 »

Если отдавать ужин врагу, можно приобрести друга (с)


Оффлайн
denisyan

проблема решилась так. Началось это после установки сервера и изменении прав вна каталог VAR. Я вернул права на место и через рута (sudo nautilus) назначил общий доступ. Папка появилась в сети после перезагрузки


  • Печать

Страницы: [1] 2  Все   Вверх

Translation(s): Русский


SystemAdministration


Contents

    1. Установка
    2. Настройка
    3. Решение неполадок
  1. Неполадки

    1. Заключение
    2. Ссылки

Данное краткое руководство посвящено быстрой базовой настройке Samba.

Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Установка

# apt-get install samba

Настройка

Добавляем пользователя в базу самбы:

# smbpasswd -a имя_пользователя

Активируем его:

# smbpasswd -e имя_пользователя

В большинстве случаев, при домашнем использовании, все должно работать и со стандартным smb.conf.

Решение неполадок

Если при попытке создать общий ресурс через Nautilus или Konqueror Вам сообщается об ошибке :

* ‘net usershare’ returned error 255: net usershare: usershares are currently disabled

в таком случае проделайте следующее : откройте для редактирования файл /etc/samba/smb.conf и отредактируйте секцию [global] следующим образом :

[global]
  .....
  usershare path = /var/lib/samba/usershare
  usershare max shares = 100
  usershare allow guests = yes
  usershare owner only = False
  read only = No
  guest only = Yes
  guest ok = Yes
  .....

Сохраните файл и закройте текстовый редактор. Далее создайте каталог ‘usershare’ где Samba будет хранить списки общих папок, разрешив чтение и запись

# mkdir /var/lib/samba/usershares
# chown root:sambashare /var/lib/samba/usershares
# chmod 1770 /var/lib/samba/usershares
# usermod -a -G sambashare <имя пользователя>

И перезапустите Samba :

# /etc/init.d/samba restart

Завершите сеанс и войдите в него вновь. Теперь у вас должна появиться возможность настраивать общий доступ samba, используя графический интерфейс. Например, в Dolphin вы можете нажать правую кнопку мыши на любом каталоге и предоставить для него общий доступ в сети.

Неполадки

* NT_STATUS_UNSUCCESSFUL

Находим следующую строку в smb.conf

 ; name resolve order = lmhosts host wins bcast

раскомментируем и изменяем на

 name resolve order = lmhosts wins bcast host

в секции [global]

Добавлем в эту же секцию

 local master = Yes
 browseable = yes

Если хотим, чтобы мы были видны в локальной сети

И перезапустите Samba :

# /etc/init.d/samba restart

Если у вас возникли проблемы при доступе к защищенному паролем общему ресурсу на Windows попробуйте добавить

 [global]
 # THE LANMAN FIX
 client lanman auth = yes
 client ntlmv2 auth = no

Заключение

Тестируем настройки

testparm -s
# Примерный рабочий smb.conf

workgroup = WORKGROUP
server string = Samba Server

[global]
        server string = Samba Server
        usershare path = /var/lib/samba/usershare
        usershare max shares = 100
        usershare allow guests = yes
        usershare owner only = False
        read only = No
        guest only = Yes
        guest ok = Yes

[printers]
        comment = All Printers
        path = /var/spool/samba
        read only = Yes
        guest ok = Yes
        printable = Yes
        browseable = Yes
''read only = No'' возможно правильнее всего вынести из [global] в отдельную шару, в данном случае [music]. 
Но в этом случае, шары созданные через файловый мененджер и не прописанные непосредственно в smb.conf станут доступны только для чтения

Ссылки

* http://ru.gentoo-wiki.com/wiki/Настройка_Samba_за_5_минут

* https://wiki.archlinux.org/index.php/Samba_(Русский)


CategorySystemAdministration CategoryNetwork CategorySoftware

  • Home
  • Forum
  • The Ubuntu Forum Community
  • Ubuntu Official Flavours Support
  • Networking & Wireless
  • [ubuntu] net usershare’ returned error 255: net usershare: cannot open usershare directory /va

  1. net usershare’ returned error 255: net usershare: cannot open usershare directory /va

    I try to share a folder by right clicking on it, then going to share. I get this error.

    ‘net usershare’ returned error 255: net usershare: cannot open usershare directory /var/lib/samba/usershares. Error Permission denied
    You do not have permission to create a usershare. Ask your administrator to grant you permissions to create a share.

    What do I do?


  2. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    This is a known bug when you first install Samba on Hardy. Restart and you should be able to share folders.

    More details are available in this thread:
    Simple File Sharing over a Home Network


  3. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    Ok. I did that. Now I need to configure samba. I managed to find the config file, but it won’t let me save it. Nor does it poke me for my password. Also, do you know where I can set this? Now I can’t share my folder because of this.

    ‘net usershare’ returned error 255: net usershare add: cannot share path /opt/foldingathome as we are restricted to only sharing directories we own.
    Ask the administrator to add the line «usershare owner only = False»
    to the [global] section of the smb.conf to allow this.

    I tried finding it in smb.cof. But I don’t see anything interesting when I do a ctrl f for usershare.

    Here is my smb.conf:

    Code:

    #
    # Sample configuration file for the Samba suite for Debian GNU/Linux.
    #
    #
    # This is the main Samba configuration file. You should read the
    # smb.conf(5) manual page in order to understand the options listed
    # here. Samba has a huge number of configurable options most of which 
    # are not shown in this example
    #
    # Any line which starts with a ; (semi-colon) or a # (hash) 
    # is a comment and is ignored. In this example we will use a #
    # for commentary and a ; for parts of the config file that you
    # may wish to enable
    #
    # NOTE: Whenever you modify this file you should run the command
    # "testparm" to check that you have not made any basic syntactic 
    # errors. 
    #
    
    #======================= Global Settings =======================
    
    [global]
    
    ## Browsing/Identification ###
    
    # Change this to the workgroup/NT-domain name your Samba server will part of
       workgroup = MSHOME
    
    # server string is the equivalent of the NT Description field
       server string = %h server (Samba, Ubuntu)
    
    # Windows Internet Name Serving Support Section:
    # WINS Support - Tells the NMBD component of Samba to enable its WINS Server
    ;   wins support = no
    
    # WINS Server - Tells the NMBD components of Samba to be a WINS Client
    # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
    ;   wins server = w.x.y.z
    
    # This will prevent nmbd to search for NetBIOS names through DNS.
       dns proxy = no
    
    # What naming service and in what order should we use to resolve host names
    # to IP addresses
    ;   name resolve order = lmhosts host wins bcast
    
    #### Networking ####
    
    # The specific set of interfaces / networks to bind to
    # This can be either the interface name or an IP address/netmask;
    # interface names are normally preferred
    ;   interfaces = 127.0.0.0/8 eth0
    
    # Only bind to the named interfaces and/or networks; you must use the
    # 'interfaces' option above to use this.
    # It is recommended that you enable this feature if your Samba machine is
    # not protected by a firewall or is a firewall itself.  However, this
    # option cannot handle dynamic or non-broadcast interfaces correctly.
    ;   bind interfaces only = true
    
    
    
    #### Debugging/Accounting ####
    
    # This tells Samba to use a separate log file for each machine
    # that connects
       log file = /var/log/samba/log.%m
    
    # Cap the size of the individual log files (in KiB).
       max log size = 1000
    
    # If you want Samba to only log through syslog then set the following
    # parameter to 'yes'.
    ;   syslog only = no
    
    # We want Samba to log a minimum amount of information to syslog. Everything
    # should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
    # through syslog you should set the following parameter to something higher.
       syslog = 0
    
    # Do something sensible when Samba crashes: mail the admin a backtrace
       panic action = /usr/share/samba/panic-action %d
    
    
    ####### Authentication #######
    
    # "security = user" is always a good idea. This will require a Unix account
    # in this server for every user accessing the server. See
    # /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
    # in the samba-doc package for details.
    ;   security = share
    
    # You may wish to use password encryption.  See the section on
    # 'encrypt passwords' in the smb.conf(5) manpage before enabling.
       encrypt passwords = true
    
    # If you are using encrypted passwords, Samba will need to know what
    # password database type you are using.  
       passdb backend = tdbsam
    
       obey pam restrictions = yes
    
    ;   guest account = nobody
       invalid users = root
    
    # This boolean parameter controls whether Samba attempts to sync the Unix
    # password with the SMB password when the encrypted SMB password in the
    # passdb is changed.
       unix password sync = yes
    
    # For Unix password sync to work on a Debian GNU/Linux system, the following
    # parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
    # sending the correct chat script for the passwd program in Debian Sarge).
       passwd program = /usr/bin/passwd %u
       passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
    
    # This boolean controls whether PAM will be used for password changes
    # when requested by an SMB client instead of the program listed in
    # 'passwd program'. The default is 'no'.
       pam password change = yes
    
    # This option controls how nsuccessful authentication attempts are mapped 
    # to anonymous connections
    map to guest = bad user
    
    ########## Domains ###########
    
    # Is this machine able to authenticate users. Both PDC and BDC
    # must have this setting enabled. If you are the BDC you must
    # change the 'domain master' setting to no
    #
    ;   domain logons = yes
    #
    # The following setting only takes effect if 'domain logons' is set
    # It specifies the location of the user's profile directory
    # from the client point of view)
    # The following required a [profiles] share to be setup on the
    # samba server (see below)
    ;   logon path = \%Nprofiles%U
    # Another common choice is storing the profile in the user's home directory
    ;   logon path = \%N%Uprofile
    
    # The following setting only takes effect if 'domain logons' is set
    # It specifies the location of a user's home directory (from the client
    # point of view)
    ;   logon drive = H:
    ;   logon home = \%N%U
    
    # The following setting only takes effect if 'domain logons' is set
    # It specifies the script to run during logon. The script must be stored
    # in the [netlogon] share
    # NOTE: Must be store in 'DOS' file format convention
    ;   logon script = logon.cmd
    
    # This allows Unix users to be created on the domain controller via the SAMR
    # RPC pipe.  The example command creates a user account with a disabled Unix
    # password; please adapt to your needs
    ; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
    
    ########## Printing ##########
    
    # If you want to automatically load your printer list rather
    # than setting them up individually then you'll need this
    ;   load printers = yes
    
    # lpr(ng) printing. You may wish to override the location of the
    # printcap file
    ;   printing = bsd
    ;   printcap name = /etc/printcap
    
    # CUPS printing.  See also the cupsaddsmb(8) manpage in the
    # cupsys-client package.
    ;   printing = cups
    ;   printcap name = cups
    
    ############ Misc ############
    
    # Using the following line enables you to customise your configuration
    # on a per machine basis. The %m gets replaced with the netbios name
    # of the machine that is connecting
    ;   include = /home/samba/etc/smb.conf.%m
    
    # Most people will find that this option gives better performance.
    # See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
    # for details
    # You may want to add the following on a Linux system:
    #         SO_RCVBUF=8192 SO_SNDBUF=8192
       socket options = TCP_NODELAY
    
    # The following parameter is useful only if you have the linpopup package
    # installed. The samba maintainer and the linpopup maintainer are
    # working to ease installation and configuration of linpopup and samba.
    ;   message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
    
    # Domain Master specifies Samba to be the Domain Master Browser. If this
    # machine will be configured as a BDC (a secondary logon server), you
    # must set this to 'no'; otherwise, the default behavior is recommended.
    ;   domain master = auto
    
    # Some defaults for winbind (make sure you're not using the ranges
    # for something else.)
    ;   idmap uid = 10000-20000
    ;   idmap gid = 10000-20000
    ;   template shell = /bin/bash
    
    # The following was the default behaviour in sarge,
    # but samba upstream reverted the default because it might induce
    # performance issues in large organizations.
    # See Debian bug #368251 for some of the consequences of *not*
    # having this setting and smb.conf(5) for details.
    ;   winbind enum groups = yes
    ;   winbind enum users = yes
    
    # Setup usershare options to enable non-root users to share folders
    # with the net usershare command.
    
    # Maximum number of usershare. 0 (default) means that usershare is disabled.
    ;   usershare max shares = 100
    
    # Allow users who've been granted usershare privileges to create
    # public shares, not just authenticated ones
       usershare allow guests = yes
    
    #======================= Share Definitions =======================
    
    # Un-comment the following (and tweak the other settings below to suit)
    # to enable the default home directory shares.  This will share each
    # user's home directory as \serverusername
    ;[homes]
    ;   comment = Home Directories
    ;   browseable = no
    
    # By default, the home directories are exported read-only. Change the
    # next parameter to 'no' if you want to be able to write to them.
    ;   read only = yes
    
    # File creation mask is set to 0700 for security reasons. If you want to
    # create files with group=rw permissions, set next parameter to 0775.
    ;   create mask = 0700
    
    # Directory creation mask is set to 0700 for security reasons. If you want to
    # create dirs. with group=rw permissions, set next parameter to 0775.
    ;   directory mask = 0700
    
    # By default, \serverusername shares can be connected to by anyone
    # with access to the samba server.  Un-comment the following parameter
    # to make sure that only "username" can connect to \serverusername
    # This might need tweaking when using external authentication schemes
    ;   valid users = %S
    
    # Un-comment the following and create the netlogon directory for Domain Logons
    # (you need to configure Samba to act as a domain controller too.)
    ;[netlogon]
    ;   comment = Network Logon Service
    ;   path = /home/samba/netlogon
    ;   guest ok = yes
    ;   read only = yes
    ;   share modes = no
    
    # Un-comment the following and create the profiles directory to store
    # users profiles (see the "logon path" option above)
    # (you need to configure Samba to act as a domain controller too.)
    # The path below should be writable by all users so that their
    # profile directory may be created the first time they log on
    ;[profiles]
    ;   comment = Users profiles
    ;   path = /home/samba/profiles
    ;   guest ok = no
    ;   browseable = no
    ;   create mask = 0600
    ;   directory mask = 0700
    
    [printers]
       comment = All Printers
       browseable = no
       path = /var/spool/samba
       printable = yes
       guest ok = no
       read only = yes
       create mask = 0700
    
    # Windows clients look for this share name as a source of downloadable
    # printer drivers
    [print$]
       comment = Printer Drivers
       path = /var/lib/samba/printers
       browseable = yes
       read only = yes
       guest ok = no
    # Uncomment to allow remote administration of Windows print drivers.
    # Replace 'ntadmin' with the name of the group your admin users are
    # members of.
    ;   write list = root, @ntadmin
    
    # A sample share for sharing your CD-ROM with others.
    ;[cdrom]
    ;   comment = Samba server's CD-ROM
    ;   read only = yes
    ;   locking = no
    ;   path = /cdrom
    ;   guest ok = yes
    
    # The next two parameters show how to auto-mount a CD-ROM when the
    #	cdrom share is accesed. For this to work /etc/fstab must contain
    #	an entry like this:
    #
    #       /dev/scd0   /cdrom  iso9660 defaults,noauto,ro,user   0 0
    #
    # The CD-ROM gets unmounted automatically after the connection to the
    #
    # If you don't want to use auto-mounting/unmounting make sure the CD
    #	is mounted on /cdrom
    #
    ;   preexec = /bin/mount /cdrom
    ;   postexec = /bin/umount /cdrom

    Or should I make a new thread about this?

    Edit:

    I managed to save my file by using the command «gksu gedit /etc/samba/smb.conf». I still, however, need to do this.

    ‘net usershare’ returned error 255: net usershare add: cannot share path /opt/foldingathome as we are restricted to only sharing directories we own.
    Ask the administrator to add the line «usershare owner only = False»
    to the [global] section of the smb.conf to allow this.

    Last edited by Shoek; June 11th, 2008 at 09:18 PM.


  4. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    I don’t think you need to mess with the usershare settings in the smb.conf. If you’ve restarted, the error message should no longer happen when you right click and try to share a folder. The problem is a group membership issue, and should be fixed by the restart alone.

    Unless you run into further trouble, the only change I recommend you make to the smb.conf is to set your workgroup name correctly. Change the workgoup in the line workgroup = MSHOME to your correct workgroup name.

    Probably the reason you can’t save the smb.conf is because you’re not editing with gksu or sudo.

    Open a terminal and type:

    Code:

    gksu gedit /etc/samba/smb.conf

    You might want to backup the file before you make changes. Again, from a terminal, you can do this with:

    Code:

    sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.orig


  5. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    I have tried restarting (twice), after I edited the config file. But I still get the error. I tried doing what the error said litterally, so here’s how my global looks like:

    Code:

    #======================= Global Settings =======================
    
    [global]
    
    ## Browsing/Identification ###
    
    # Change this to the workgroup/NT-domain name your Samba server will part of
       workgroup = MSHOME
    
    # server string is the equivalent of the NT Description field
       server string = %h server (Samba, Ubuntu)
    
    # Windows Internet Name Serving Support Section:
    # WINS Support - Tells the NMBD component of Samba to enable its WINS Server
    ;   wins support = no
    
    # WINS Server - Tells the NMBD components of Samba to be a WINS Client
    # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
    ;   wins server = w.x.y.z
    
    # This will prevent nmbd to search for NetBIOS names through DNS.
       dns proxy = no
    
    # What naming service and in what order should we use to resolve host names
    # to IP addresses
    ;   name resolve order = lmhosts host wins bcast
    
    ; "usershare owner only = False
    
    #### Networking ####

    That didn’t solve it. The folder I’m trying to share is in /opt by the way.


  6. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    OK. /opt/ is owned by root and should be, so I guess you need to do what you’re doing if you really want to share it.

    The problem now I think is you still have a ; in the line ; «usershare owner only = False. This makes it a comment. Try taking the ; and the « out and saving, then restarting Samba with:

    Code:

    sudo /etc/init.d/samba restart

    Is there any particular reason you want to share /opt/? It’s a pretty obscure part of the directory structure.

    What is the folder you want to share? Did you create it yourself? Another, possibly better approach would be to change the ownership of the directory you are sharing.

    Last edited by jetsam; June 11th, 2008 at 10:01 PM.


  7. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    Ok now it worked. Brilliant! The only thing was that I’d already set «security = share», but it still prompted me for a password the first time. That’s ok, I solved it by allowing guest access for that particular folder. The reason I wanted to share a folder in opt is because fah_install set a program called Folding@Home there. As this is a server I wanted to share the results in my network so that I can monitor Folding@Home’s progress from my XP machine. Thanks for the help, I really didn’t expect to get an answer around here.

    Edit: by the way I am Shoek, I don’t know why I have two accounts here. But I changed my web browser now and the passwords didn’t come with it so I searched for Ubuntu in my e-mail and this is what came up.

    Last edited by Giak; June 12th, 2008 at 02:11 PM.


  8. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    Cool. That’s an interesting use for Samba. Glad you got it working.

    Not all questions find answers on the forums, but it’s amazing to me how many of them do.


  9. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    Quote Originally Posted by Giak
    View Post

    Ok now it worked. Brilliant! The only thing was that I’d already set «security = share», but it still prompted me for a password the first time. That’s ok, I solved it by allowing guest access for that particular folder. The reason I wanted to share a folder in opt is because fah_install set a program called Folding@Home there. As this is a server I wanted to share the results in my network so that I can monitor Folding@Home’s progress from my XP machine. Thanks for the help, I really didn’t expect to get an answer around here.

    Edit: by the way I am Shoek, I don’t know why I have two accounts here. But I changed my web browser now and the passwords didn’t come with it so I searched for Ubuntu in my e-mail and this is what came up.

    You can also install and try the following package

    Code:

    sudo apt-get install system-config-samba

    a.k.a. Samba Server Configuration Tool 1.2.50

    its a nice gui tool (repository present in hardy universe) for configuring and setting share in samba similar to editing samba.conf file.

    GNOME menu listing: System>Administration>Samba

    Enjoy!

    Last edited by pravinbravi; August 1st, 2008 at 02:41 AM.


    The Wickerman
    Ubuntu = sudo apt-get install freedom


  10. Re: net usershare’ returned error 255: net usershare: cannot open usershare directory

    Quote Originally Posted by pravinbravi
    View Post

    You can also install and try the following package

    Code:

    sudo apt-get install system-config-samba

    a.k.a. Samba Server Configuration Tool 1.2.50

    its a nice gui tool (repository present in hardy universe) for configuring and setting share in samba similar to editing samba.conf file.

    GNOME menu listing: System>Administration>Samba

    Enjoy!

    Omg, that was a brilliant tool. Glad I found this thread!


Bookmarks

Bookmarks


Posting Permissions

Hey folks, I’ve been struggling with Samba and folder sharing for the last 2 days and I’m at a loss and hoping that somebody more knowledgeable can help.

I’ve had Samba running well on a Linux Mint 20 Cinnamon edition machine for many months without issue. I recently installed Linux Mint Cinnamon on 2 other machines and having been trying to get Samba working on them but keep getting this error when trying to share any folder:

net usershare returned error 255: net usershare add:
cannot convert name «mark» to a SID. None of the
information to be translated has been translated..

I have uninstalled and reinstalled Samba and the Samba Client several times, and tried various options in the smb.conf file but nothing seems to work. I then checked the machine that Samaba has been running on and while previous shared folders are still shared, I get the same error if I try to share any new folders.

If anybody can help me solve the issue before I end up pulling my hair out I would greatly appreciate it.

Here are the results for testparm -s

mark@Home-Linux:~$ testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

# Global parameters
[global]
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* .
passwd program = /usr/bin/passwd %u
server role = standalone server
server string = %h server (Samba, Ubuntu)
unix password sync = Yes
usershare allow guests = Yes
usershare owner only = No
workgroup = MARK
idmap config * : backend = tdb

[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/spool/samba
printable = Yes

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers

Last edited by LockBot on Wed Dec 28, 2022 7:16 am, edited 4 times in total.

Reason: Topic automatically closed 6 months after creation. New replies are no longer allowed.

This document (3007125) is provided subject to the disclaimer at the end of this document.

Environment

SUSE Linux Enterprise Desktop 10

Situation

When trying to use «Sharing Options» on the right click menu of
Nautilus the following error is received: «‘net usershare’ returned
error 255: net usershare: usershares are currently disabled»

Resolution

Before the sharing options can be used they must first be enabled
in the Yast system. This option is controlled under the Yast,
Network Services, Windows Domain Membership. In there you will see
an option to allow users to share their directories and the
permissions that you want to give those directories. Once that
option is checked then you should no longer receive the
error.

Disclaimer

This Support Knowledgebase provides a valuable tool for SUSE customers and parties interested in our products and solutions to acquire information, ideas and learn from one another. Materials are provided for informational, personal or non-commercial use within your organization and are presented «AS IS» WITHOUT WARRANTY OF ANY KIND.

  • Document ID:3007125
  • Creation Date:
    05-Jun-2006
  • Modified Date:03-Mar-2020
    • SUSE Linux Enterprise Desktop

< Back to Support Search

For questions or concerns with the SUSE Knowledgebase please contact: tidfeedback[at]suse.com

SUSE Support Forums

Get your questions answered by experienced Sys Ops or interact with other SUSE community experts.

Join Our Community

Open an Incident

Open an incident with SUSE Technical Support, manage your subscriptions, download patches, or manage user access.

Go to Customer Center

Состояние перевода: На этой странице представлен перевод статьи Samba. Дата последней синхронизации: 20 марта 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Samba — это реализация сетевого протокола SMB. Она облегчает организацию общего доступа к файлам и принтерам между системами Linux и Windows и является альтернативой NFS.

Создание общих ресурсов описано в разделе #Сервер; подключение к общим ресурсам описано в разделе #Клиент.

Сервер

Установка

Установите пакет samba.

Samba настраивается с помощью файла /etc/samba/smb.conf, который подробно документирован на странице руководства smb.conf(5).

В связи с тем, что пакет samba поставляется без данного файла, вам нужно создать его перед запуском smb.service.

Вы можете воспользоваться документированным примером, как в smb.conf.default из git-репозитория Samba для создания /etc/samba/smb.conf.

Примечание:

  • Значение log file в стандартном файле настроек указывает в место, доступное только для чтения, что будет вызывать ошибки. Можно воспользоваться одним из следующих решений:
    • Задайте расположение, доступное для записи: log file = /var/log/samba/%m.log
    • Используйте бекенд для нефайлового журналирования: замените logging = syslog на syslog only = yes или используйте logging = systemd
  • Если требуется; workgroup, указанная в секции [global], должна соответствовать домашней группе (workgroup) Windows (по умолчанию: WORKGROUP).

Совет: Каждый раз, когда вы изменяете файл smb.conf, запускайте команду testparm(1) для проверки файла на синтаксические ошибки.

Включение и запуск служб

Для работы общего доступа к файлам запустите и включите службу smb.service. Смотрите smbd(8) для более подробной информации.

Если вы хотите, чтобы сервер был доступен по имени хоста NetBIOS, пропишите желаемое имя в опции netbios name в smb.conf и запустите и включите службу nmb.service. Смотрите nmbd(8) для более подробной информации.

Примечание: Использовать nmb.service необязательно, однако он нужен для подключения к Samba-серверу по имени хоста (например, smb://hostname/). Если в вашей сети используются только компьютеры с Windows 10 или новее, также стоит установить демон WSD, чтобы Проводник отображал сервер в просмотре сети.

Настройка межсетевого экрана

Если вы используете межсетевой экран, не забудьте открыть необходимые порты (как правило, 137-139 + 445). Для получения информации о полном списке портов, смотрите использование портов Samba.

Правило UFW

Профиль Ufw для SMB/CIFS доступен в стандартной установке UFW в ufw-fileserver.

Разрешите Samba, выполнив команду ufw allow CIFS от имени root.

Если вы удалили профиль, создайте или отредактируйте файл /etc/ufw/applications.d/samba, добавив следующее:

[Samba]
title=LanManager-like file and printer server for Unix
description=The Samba software suite is a collection of programs that implements the SMB/CIFS protocol for unix systems, allowing you to serve files and printers to Windows, NT, OS/2 and DOS clients. This protocol is sometimes also referred to as the LanManager or NetBIOS protocol.
ports=137,138/udp|139,445/tcp

Затем загрузите этот профиль в UFW, запустив команду ufw app update Samba как root.

После этого можно разрешить доступ к Samba, запустив ufw allow Samba от имени root.

Служба firewalld

Для настройки firewalld, чтобы разрешить Samba в зоне home, выполните:

# firewall-cmd --permanent --add-service={samba,samba-client,samba-dc} --zone=home

Эти три службы таковы:

  • samba: для общего доступа к файлам.
  • samba-client: для просмотра общих ресурсов других устройств по сети.
  • samba-dc: для контроллера домена Active Directory.

Параметр --permanent сделает изменения постоянными.

Использование

Управление пользователями

В следующем разделе описывается создание локальной (tdbsam) базы данных пользователей Samba. Для аутентификации пользователей и других целей Samba также может быть привязана к домену Active Directory, может сама служить контроллером домена Active Directory или использоваться с сервером LDAP.

Добавление пользователя

Для работы Samba требуется какой-нибудь Linux-пользователь — вы можете использовать существующего пользователя или создать нового.

Примечание: Пользователь и группа nobody изначально существуют в системе, используются как гостевой аккаунт (guest account) по умолчанию и могут быть использованы в ресурсах для общего доступа с опцией guest ok = yes, благодаря чему пользователям не понадобится логиниться для доступа к таким ресурсам.

Хотя имена пользователей Samba общие с системными пользователями, Samba использует для них отдельные пароли. Чтобы добавить нового пользователя Samba, воспользуйтесь следующей, заменив пользователь_samba на имя нужного пользователя:

# smbpasswd -a пользователь_samba

Будет предложено задать пароль для этого пользователя.

В зависимости от роли сервера может понадобиться изменить разрешения и атрибуты файлов для аккаунта Samba.

Если вы хотите разрешить новому пользователю только доступ к Samba-ресурсам и запретить полноценный вход в систему, можно ограничить возможности входа:

  • отключить командную оболочку — usermod --shell /usr/bin/nologin --lock пользователь_samba
  • отключить вход по SSH — измените опцию AllowUsers в файле /etc/ssh/sshd_config

См. также рекомендации по повышению защищённости системы.

Просмотр списка пользователей

Список добавленных в Samba пользователей можно посмотреть с помощью команды pdbedit(8):

# pdbedit -L -v
Смена пароля пользователя

Чтобы сменить пароль пользователя, используйте smbpasswd:

# smbpasswd пользователь_samba

Создание общего ресурса для анонимных пользователей

1. Создайте пользователя Linux, который будет использоваться для анонимных пользователей Samba:

# useradd guest -s /bin/nologin

Примечание: Имя пользователя может быть любым допустимым именем Linux, не только «guest». Пользователь не обязательно должен быть пользователем Samba.

2. Добавьте в /etc/samba/smb.conf:

/etc/samba/smb.conf
...
[global]
security = user
map to guest = bad user
guest account = guest

[guest]
    comment = guest
    path = /tmp/
    public = yes
    only guest = yes
    writable = yes
    printable = no

Теперь все анонимные пользователи будут использовать Linux-пользователя guest для доступа к каталогам, указанным в guest.path (в данном примере /tmp/).

Убедитесь, что общие ресурсы корректно настроены в соответствии с секцией Share Definitions из smb.conf.default.

Включение следования по символическим ссылкам

Важно: Включение опции follow symlinks может быть риском для безопасности.

/etc/samba/smb.conf
...
[global]
   follow symlinks = yes
   wide links = yes
   unix extensions = no

После изменений перезапустите службу smb.service.

Примечание: При использовании AppArmor, если символическая ссылка указывает за пределы домашнего каталога пользователя или usershare, понадобится изменить разрешения в профиле AppArmor.

Расширенная конфигурация

Создание ресурсов общего доступа от имени обычного пользователя

Примечание: Это опциональная возможность. Можете пропустить этот раздел, если она вам не нужна.

Usershares — это возможность, позволяющая обычным пользователям добавлять, изменять и удалять собственные ресурсы общего доступа.

  1. Создайте каталог, в котором будут храниться описания пользовательских общих ресурсов:
    # mkdir /var/lib/samba/usershares
  2. Создайте группу для пользователей, которые смогут создавать общие ресурсы:
    # groupadd -r sambashare
  3. Измените владельца каталога на root, а группу на sambashare:
    # chown root:sambashare /var/lib/samba/usershares
  4. Измените разрешения каталога usershares, чтобы только пользователи из группы sambashare могли создавать файлы. Эта команда также устанавливает sticky bit, благодаря которому пользователи не смогут удалять чужие общие ресурсы:
    # chmod 1770 /var/lib/samba/usershares

Задайте эти переменные в конфигурационном файле smb.conf:

/etc/samba/smb.conf
[global]
  usershare path = /var/lib/samba/usershares
  usershare max shares = 100
  usershare allow guests = yes
  usershare owner only = yes

Добавьте вашего пользователя в группу sambashare. Замените ваше_имя_пользователя на имя вашего linux-пользователя:

# gpasswd sambashare -a ваше_имя_пользователя

Перезапустите службы smb.service и nmb.service.

Завершите сеанс и войдите снова, чтобы применилось добавление новой группы к вашему пользователю.

Если вы хотите предоставить общий доступ к файлам, находящимся в вашем домашнем каталоге, не забудьте задать доступ как минимум на чтение другим пользователям (chmod a+rX).

Теперь у вас должна появиться возможность настраивать общий доступ samba, используя графический интерфейс. Например, в Thunar или Dolphin вы можете нажать правую кнопку мыши на любом каталоге и предоставить для него общий доступ в сети.

Для настройки общего доступа через командную строку используйте одну из следующих команд:

# net usershare add имя-ресурса абсолютный-путь [комментарий] [пользователь:{R|D|F}] [guest_ok={y|n}]
# net usershare delete имя-ресурса
# net usershare list wildcard-имя-ресурса
# net usershare info wildcard-имя-ресурса

Установка и форсирование прав доступа

Разрешения могут быть применены и к серверу, и к отдельным ресурсам:

/etc/samba/smb.conf
[global]
  ;inherit owner = unix only ; Наследовать владельца родительского каталога для новых файлов и каталогов
  ;inherit permissions = yes ; Наследовать разрешения родительского каталога для новых файлов и каталогов
  create mask = 0664
  directory mask = 2755
  force create mode = 0644
  force directory mode = 2755
  ...

[media]
  comment = Ресурс, доступный для greg и pcusers
  path = /path/to/media
  valid users = greg @pcusers
  force group = +pcusers
  public = no
  writable = yes
  create mask = 0664
  directory mask = 2775
  force create mode = 0664
  force directory mode = 2775

[public]
  comment = Общий ресурс, в котором archie имеет доступ на запись
  path = /path/to/public
  public = yes
  read only = yes
  write list = archie
  printable = no

[guests]
  comment = Ресурс, разрешающий чтение и запись всем пользователям
  path = /path/to/guests
  public = yes
  only guest = yes
  writable = yes
  printable = no

См. smb.conf(5) для более подробной информации о настройке прав доступа.

Ограничение версии протокола для повышения безопасности

Важно: По умолчанию Samba версии 4.11 допускает соединение с использованием устаревшего и небезопасного протокола SMB1. Для этих версий Samba крайне рекомендуется задать опцию server min protocol = SMB2_02 для защиты от ransomware атак. В Samba 4.11 и новее по умолчанию используется SMB2, так что изменения не требуются.

В файле /etc/samba/smb.conf добавьте опции server min protocol и server max protocol для ограничения используемых версий протокола:

/etc/samba/smb.conf
[global]
  server min protocol = SMB2_02
  ; server max protocol = SMB3

См. server max protocol в smb.conf(5) для обзора поддерживаемых протоколов.

Для совместимости со старыми клиентами и/или серверами вам может понадобиться указать client min protocol = CORE или server min protocol = CORE, но имейте в виду, что это делает вас уязвимым в связи с эксплойтами в SMB1, в том числе к ransomware атакам.

Совет: Используйте server min protocol = SMB3_00 если хотите использовать только самый новый протокол SMB3, например с клиентами на Windows 8 и новее.

Клиентам, использующим mount.cifs, может понадобиться указать правильный vers=*, например:

# mount -t cifs //SERVER/имя-ресурса /mnt/точка-монтирования -o username=пользователь,password=пароль,iocharset=utf8,vers=3.1.1

Подробнее см. mount.cifs(8).

Использование шифрования SMB

Нативное шифрование транспорта SMB доступно с версии SMB 3.0. Среди клиентов, поддерживающих такое шифрование, имеются Windows 8 и новее, Windows Server 2012 новее, smbclient в Samba 4.1 и новее.

Для использования шифрования по умолчанию установите параметр server smb encrypt глобально или для отдельных ресурсов. Возможные значения — off, enabled (значение по умолчанию), desired или required:

/etc/samba/smb.conf
[global]
  server smb encrypt = desired

Смотрите smb.conf(5) для более подробной информации, особенно разделы Effects for SMB1 и Effects for SMB2.

Совет: При ручном монтировании ресурса укажите опцию монтирования seal чтобы принудительно включить шифрование.

Отключение общего доступа к принтерам

По умолчанию Samba предоставляет общий доступ к принтерам, настроенным через CUPS.

Если вам это не нужно, используйте следующие опции для отключения:

/etc/samba/smb.conf
[global]
  load printers = no
  printing = bsd
  printcap name = /dev/null
  disable spoolss = yes
  show add printer wizard = no

Запрет определённых расширений файлов в общем ресурсе Samba

Примечание: Использование этой опции влияет на производительность Samba, так как вынуждает проверять все файлы и каталоги на совпадение по мере их сканирования.

Samba предоставляет опцию для блокирования файлов по определённым паттернам, вроде расширений файлов. Её можно использовать для предотвращения распространения вирусов или для того, чтобы пользователи не тратили место на определённые файлы. Более подробную информацию можно найти в smb.conf(5).

/etc/samba/smb.conf
...
[myshare]
  comment = Private
  path = /mnt/data
  read only = no
  veto files = /*.exe/*.com/*.dll/*.bat/*.vbs/*.tmp/*.mp3/*.avi/*.mp4/*.wmv/*.wma/

Увеличение пропускной способности

Важно: Помните, что это может привести к проблемам с подключением и потенциально сломать ваш стек TCP/IP.

Большинству пользователей подойдут настройки по умолчанию. Однако корректное использование ‘socket options’ может улучшить производительность, но ошибки в настройке также могут и ухудшить её. Проверяйте эффекты, прежде чем вносить какие-либо серьезные изменения.

Читайте smb.conf(5) прежде чем применять описанные здесь опции.

Эти опции прописываются в файле /etc/samba/smb.conf в секции [global].

SMB3 multi-channel может улучшить производительности, однако иногда может испортить данные из-за race conditions. В будущих версиях ситуация может улучшиться:

server multi channel support = yes

Ограничение времени бездействия полезно для предотвращения исчерпания ресурсов сервера из-за большого количества неактивных подключений:

deadtime = 30

Использование sendfile улучшает эффективность использования процессора и повышает скорость Samba:

use sendfile = yes

Установка min receivefile size разрешает zero-copy запись непосредственно из буфера сокета в кэш файловой системы (если доступен). Это может улучшить производительность, но требует тестирования:

min receivefile size = 16384

Асинхронное чтение/запись файлов может повысить производительность:

aio read size = 1
aio write size = 1

Увеличение размера буферов приёма/отправки и флаги оптимизации сокетов могут быть полезны для улучшения производительности. Рекомендуется протестировать каждый флаг отдельно, так как они могут вызывать проблемы в некоторых сетях:

socket options = IPTOS_LOWDELAY TCP_NODELAY IPTOS_THROUGHPUT SO_RCVBUF=131072 SO_SNDBUF=131072

Примечание: Для некоторых опций может понадобиться изменить настройки сетевого интерфейса, см. Sysctl#Networking.

Включение доступа для старых клиентов или устройств

Последние версии Samba больше не предлагают старые методы аутентификации и протоколы, которые всё ещё используются некоторыми старыми клиентами (IP-камерами и т.д.). Такие устройства обычно требуют от сервера разрешения аутентификации NTLMv1 и протокола NT1, известного как CIFS. Чтобы эти устройства работали с последней версией Samba, добавьте эти два параметра в секцию [global]:

server min protocol = NT1
ntlm auth = yes

Для анонимного/гостевого доступа достаточно лишь первого параметра. Если старое устройство использует имя и пароль для доступа, то нужен и второй параметр тоже.

Включение поиска Spotlight

Spotlight позволяет поддерживающим его клиентам (например, MacOS Finder) быстро искать общие файлы.

Установите и запустите OpenSearch. Установите fs2es-indexerAUR, настройте каталоги, которые вы хотите индексировать, в /etc/fs2es-indexer/config.yml, и запустите/включите fs2es-indexer.service для периодического индексирования.

Измените smb.conf как описано в Samba wiki и перезапустите smb.service для применения изменений.

Клиент

Установите пакет smbclient, который предоставляет ftp-подобный интерфейс командной строки. Часто используемые команды описаны в smbclient(1).

В качестве легковесной альтернативы (без возможности посмотреть список общих ресурсов и т.д.) можно использовать cifs-utils, который предоставляет команду /usr/bin/mount.cifs.

Некоторые среды рабочего стола также имеют графический интерфейс для доступа к общим ресурсам и управления ими (смотрите #Настройка файлового менеджера).

Примечание:

  • smbclient требует наличия файла /etc/samba/smb.conf (смотрите раздел #Установка); можно просто создать пустой файл командой touch.
  • После установки cifs-utils или smbclient загрузите модуль ядра cifs или перезагрузитесь, чтобы не возникало ошибок монтирования.

Просмотр публичных ресурсов для общего доступа

Чтобы вывести список общедоступных ресурсов на сервере:

$ smbclient -L hostname -U%

Также можно использовать команду $ smbtree -N, которая покажет древовидную диаграмму всех общих ресурсов. Она использует широковещательные (broadcast) запросы и потому не рекомендуется для использования в сетях с большим числом компьютеров, но может быть полезна для проверки правильности имён общих ресурсов. Опция -N (-no-pass) отключает запрос пароля.

Примечание: smbtree использует SMB1 и NetBIOS, что означает, что они должны быть включены на стороне сервера, а на стороне клиента нужно добавить client min protocol = NT1 в smb.conf. Без этого smbtree ничего не выведет.

Имена хостов NetBIOS/WINS

Клиенты Samba обрабатывают имена хостов NetBIOS автоматически по умолчанию (поведение регулируется опцией name resolve order в smb.conf). Другие программы (в том числе mount.cifs) используют Name Service Switch, который не использует NetBIOS по умолчанию.

Пакет smbclient предоставляет драйвер libnss для разрешения имён NetBIOS. Для его использования установите его вместе с пакетом samba (который предоставляет демон winbindd), запустите и включите службу winbind.service и добавьте wins в строку hosts в файле nsswitch.conf(5):

/etc/nsswitch.conf
...
hosts: mymachines resolve [!UNAVAIL=return] files myhostname dns wins
...

Примечание: Из-за текущей ошибки в winbind.service вам нужно вручную изменить файл юнита как описано в этом баг-репорте

Теперь в процессе разрешения имён (например, при использовании mount.cifs или просто ping имя-netbios) демон winbindd будет отправлять запросы с использованием протокола NetBIOS Name Service (NBNS, также известен как WINS).

По умолчанию он отправляет широковещательный (broadcast) запрос в локальную сеть. Если у вас есть WINS-сервер, вы можете добавить wins server = ip-сервера-wins в smb.conf и перезапустить winbind.service, тогда winbindd и другие клиенты Samba станут отправлять unicast-запросы на указанный IP.

Если вы хотите, чтобы разрешение имени локального компьютера (которое указывается в опции netbios name в smb.conf) тоже работало, запустите и включите службу nmb.service, которая будет обрабатывать входящие запросы.

Вы можете протестировать разрешение WINS с помощью nmblookup. По умолчанию он отправляет широковещательные запросы в вашу локальную сеть независимо от значения опции wins server.

Имейте в виду, что WINS использует трафик, приходящий из порта 137.

Отключение поддержки NetBIOS/WINS

Если разрешение имён хостов NetBIOS/WINS не используется, может быть предпочтительно отключение этого протокола:

/etc/samba/smb.conf
[global]
  disable netbios = yes
  dns proxy = no

Затем отключите/остановите winbind.service.

Ручное монтирование

Создайте точку монтирования для ресурса:

# mkdir /mnt/точка_монтирования

Примонтируйте ресурс, в качестве type указав mount.cifs. Не все опции из перечисленных ниже необходимы или желательны:

# mount -t cifs //СЕРВЕР/имя_ресурса /mnt/точка_монтирования -o username=имя_пользователя,password=пароль,workgroup=рабочая_группа,iocharset=utf8,uid=пользователь,gid=группа

Опции uid и gid соответствуют локальному (клиентскому) пользователю/группе, которые получат доступ на чтение и запись по указанному пути.

Примечание:

  • Если используемые uid и gid не соответствуют пользователю на сервере, могут помочь опции forceuid и forcegid. Но имейте в виду, что тогда права доступа, отображаемые на клиенте, могут не соответствовать реальным правам доступа на сервере. Подробности смотрите в разделе File And Directory Ownership And Permissions в mount.cifs(8) § FILE AND DIRECTORY OWNERSHIP AND PERMISSIONS.
  • Для подключения общего ресурса Windows без аутентификации укажите "username=*".

Важно: Использование uid и/или gid может приводить к ошибкам ввода-вывода; вместо этого рекомендуется установить/проверить корректность разрешений и атрибутов файлов.

  • СЕРВЕР — Имя сервера.
  • имя_ресурса — Название каталога с общим доступом.
  • точка_монтирования — Локальный каталог, в который будет примонтирован ресурс.
  • [-o опции] — Смотрите страницу руководства mount.cifs(8) для получения информации.

Примечание:

  • Не используйте слэш / в конце пути. //СЕРВЕР/имя_ресурса/ не будет работать.
  • Если примонтированный вами ресурс работает нестабильно или зависает (freeze), попробуйте включить другую версию протокола SMB, используя опцию vers=. Например, vers=2.0 для Windows Vista.
  • Если при завершении работы системы на примонтированных ресурсах происходят таймауты, смотрите wpa_supplicant#Problem with mounted network shares (cifs) and shutdown.

Хранение пароля от общих ресурсов

Хранение паролей в доступном для чтения файле не рекомендуется. Более безопасным методом является использование файла, например, внутри /etc/samba/credentials:

/etc/samba/credentials/share
username=имя_пользователя
password=пароль

В команде mount замените опции username=myuser,password=mypass на credentials=/etc/samba/credentials/share.

Для безопасности этот файл должен быть доступен только для root:

# chown root:root /etc/samba/credentials
# chmod 700 /etc/samba/credentials
# chmod 600 /etc/samba/credentials/share

Автоматическое монтирование

Примечание: Вам может понадобиться включить службу systemd-networkd-wait-online.service или NetworkManager-wait-online.service (зависит от вашей установки) для корректного запуска системы.

С использованием NetworkManager и GIO/gvfs

NetworkManager может быть настроен на запуск скриптов при изменении состояния сети. Приведённый ниже скрипт использует команду gio, чтобы автоматически монтировать общие ресурсы Samba аналогично тому, как делает ваш файловый менеджер, как описано ниже. Скрипт также безопасно размонтирует их перед отключением сети путём отслеживания событий pre-down и vpn-pre-down. Сделайте скрипт исполняемым после создания.

/etc/NetworkManager/dispatcher.d/30-samba.sh
#!/bin/sh

# Найдите UUID нужного соединения с помощью команды «nmcli con show».
# Поддерживаются все типы соединений NetworkManager: беспроводные, VPN, проводные...
WANTED_CON_UUID="CHANGE-ME-NOW-9c7eff15-010a-4b1c-a786-9b4efa218ba9"

# Пользователь, под которым будет примонтирован общий ресурс
USER="yourusername"
# Путь, который отображается в вашем файловом менеджере, когда вы вручную монтируете нужный общий ресурс
SMB_URL="smb://servername/share"

# Получаем runtime-каталог пользователя. Если его нет, то просто выходим
XDG_RUNTIME_DIR=$(loginctl show-user --property=RuntimePath --value "$USER") || exit 0

if [ "$CONNECTION_UUID" = "$WANTED_CON_UUID" ]; then
    
    # Параметр скрипта $1: название сетевого интерфейса, не используется
    # Параметр скрипта $2: отправленное событие
    
    case "$2" in
        "up")
            su $USER -c "DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus gio mount $SMB_URL"
            ;;
        "pre-down"|"vpn-pre-down")
            su $USER -c "DBUS_SESSION_BUS_ADDRESS=unix:path=$XDG_RUNTIME_DIR/bus gio mount -uf $SMB_URL"
            ;;
    esac
fi

Создайте символическую ссылку в каталоге /etc/NetworkManager/dispatcher.d/pre-down, чтобы скрипт получал события pre-down:

# ln -s /etc/NetworkManager/dispatcher.d/30-samba.sh /etc/NetworkManager/dispatcher.d/pre-down.d/30-samba.sh

Примечание: Так как этот скрипт использует пользовательскую шину, он будет работать, только если у указанного пользователя есть активные сеансы. Это означает, что ресурс не будет примонтирован автоматически после загрузки, если соединение с сетью было установлено до того, как вы залогинились.

С помощью записи в fstab

Простой пример cifs записи в fstab с аутентификацией:

/etc/fstab
//СЕРВЕР/имя_ресурса /mnt/точка_монтирования cifs _netdev,nofail,username=имя_пользователя,password=пароль 0 0

Примечание:

  • Пробелы в именах ресурсов должны быть заменены на 40 (восьмеричный ASCII-код для пробелов). Например, //СЕРВЕР/имя ресурса должно быть заменено на //СЕРВЕР/имя40ресурса в /etc/fstab.
  • Чтобы разрешить монтирование простым пользователям без прав root, когда точка монтирования находится в доступном пользователю каталоге (например, домашнем), добавьте опцию users (обязательно с s на конце).

С помощью юнита systemd

Создайте новый файл .mount в каталоге /etc/systemd/system, например mnt-myshare.mount. Смотрите systemd.mount(5) для более подробной информации.

Примечание: Имя создаваемого файла должно соответствовать точке монтирования, которую вы хотите использовать. Например, имя mnt-myshare.mount должно использоваться для точки монтирования /mnt/myshare. В противном случае вы получите ошибку systemd[1]: mnt-myshare.mount: Where= setting does not match unit name. Refusing..

What= путь к общему ресурсу

Where= путь, куда он будет примонтирован

Options= опции монтирования

Примечание:

  • К сетевым точкам монтирования автоматически добавляются After-зависимости remote-fs-pre.target, network.target и network-online.target, а также Before-зависимость remote-fs.target, если не указана опция nofail; иначе используется Wants.
  • Добавьте noauto в Options для отключения автоматического монтирования (если его не будет монтировать какой-нибудь другой юнит).
  • Если в качестве адреса сервера вы хотите использовать имя хоста вместо IP-адреса, добавьте nss-lookup.target в After. Это может предотвратить ошибки монтироваия при загрузке.
/etc/systemd/system/mnt-myshare.mount
[Unit]
Description=Mount Share at boot

[Mount]
What=//server/share
Where=/mnt/myshare
Options=_netdev,credentials=/etc/samba/credentials/myshare,iocharset=utf8,rw
Type=cifs
TimeoutSec=30

[Install]
WantedBy=multi-user.target

Совет:

  • На случай, если удалённая система станет недоступна, добавьте ForceUnmount=true в секцию [Mount], чтобы разрешить принудительное размонтирование.
  • Если общий ресурс имеет группы с доступом только для чтения, добавьте uid=пользователь или gid=группа в Options=, чтобы указать пользователя/группу, которые имеют право на запись.

Для использования mnt-myshare.mount запустите этот юнит и включите его для автоматического монтирования при загрузке системы.

Автомонтирование

Для автоматического монтирования ресурса (при обращении к нему, как autofs) можно использовать следующий блок automount:

/etc/systemd/system/mnt-myshare.automount
[Unit]
Description=Automount myshare

[Automount]
Where=/mnt/myshare

[Install]
WantedBy=multi-user.target

Остановите и отключите юнит mnt-myshare.mount, а вместо него запустите и включите юнит mnt-myshare.automount.

Совет: Добавьте TimeoutIdleSec для включения автоматического размонтирования при бездействии. Подробнее смотрите systemd.automount(5).

smbnetfs

Примечание: для smbnetfs необходима целая (нетронутая?) (intact) установка сервера Samba. Смотрите выше, как это сделать

Для начала удостоверьтесь, что вам доступны все ресурсы, которые вам нужны для монтирования:

$ smbtree -U удаленный_пользователь

Если это не работает, найдите и измените следующую строку в /etc/samba/smb.conf подобным образом:

domain master = auto

Затем перезапустите smb.service и nmb.service.

Если всё работает как нужно, установите пакет smbnetfs.

Затем добавьте следующую строку в файл /etc/fuse.conf:

user_allow_other

Скопируйте каталог /etc/smbnetfs/.smb в вашу домашнюю директорию:

$ cp -a /etc/smbnetfs/.smb ~

Затем создайте ссылку на файл smb.conf:

$ ln -sf /etc/samba/smb.conf ~/.smb/smb.conf

Если для доступа к каким-либо общим ресурсам нужен пароль, измените файл ~/.smb/smbnetfs.auth, прописав в нём пароли для определённых хостов примерно так:

~/.smb/smbnetfs.auth
auth			"хост" "пользователь" "пароль"

Также можно добавить записи для определённых хостов, которые будут монтироваться smbnetfs, если это необходимо. Более подробную информацию можно найти в ~/.smb/smbnetfs.conf.

Если вы используете Dolphin или GNOME Files, можно добавить следующую опцию ~/.smb/smbnetfs.conf, чтобы избежать предупреждений о переполненном диске, так как smbnetfs по умолчанию сообщает, что свободно 0 байт:

~/.smb/smbnetfs.conf
free_space_size 1073741824

Когда вы закончите настройку, необходимо выполнить

$ chmod 600 ~/.smb/smbnetfs.*

В противном случае smbnetfs пожалуется: ‘insecure config file permissions’.

Наконец, чтобы примонтировать сетевое окружение Samba в каталог по вашему выбору, выполните

$ smbnetfs точка_монтирования
Демон

Пакет в Arch Linux также поддерживает дополнительный «общесистемный» режим для smbnetfs. Чтобы его включить, вам необходимо выполнить указанные изменения в каталоге /etc/smbnetfs/.smb.

Затем вы можете запустить и/или включить в автозагрузку демон smbnetfs обычным способом. Общесистемной точкой монтирования является /mnt/smbnet/.

autofs

Смотрите статью Autofs для получения информации об автомонтировщике ядра (kernel-based) Linux.

Настройка файлового менеджера

GNOME Files, Nemo, Caja, Thunar и PCManFM

Чтобы получить доступ к ресурсам samba через GNOME Files, Nemo, Caja, Thunar или PCManFM, установите пакет gvfs-smb, доступный в официальных репозиториях.

Нажмите Ctrl+l и введите smb://имя_сервера/ресурс в панель адреса, чтобы получить доступ к ресурсу.

Примонтированный ресурс, вероятно, будет представлен в файловой системе по пути /run/user/ваш_UID/gvfs или ~/.gvfs.

KDE

Приложения KDE (например, Dolphin) имеют встроенную возможность просмотра ресурсов Samba, в этом случае нет необходимости в дополнительных пакетах. Используйте адрес smb://имя_сервера/имя_ресурса для подключения и просмотра файлов. Для доступа к файлам из приложений, не являющихся частью KDE, можно установить kio-fuse.

Графический интерфейс настроек предоставляется пакетом kdenetwork-filesharing.

Другие графические окружения

Есть несколько полезных программ, но им могут требоваться пакеты, созданные для них. Это может быть сделано с помощью Arch package build system. Хорошая новость заключается в том, что они не нуждаются в особом окружении, устанавливаемом для их поддержки, так что они «тянут» за собой меньше пакетов.

  • pyneighborhoodAUR доступен AUR.
  • Плагины LinNeighborhood, RUmba, xffm-samba для Xffm недоступен в официальных репозиториях или в AUR. Поскольку они не поддерживаются официально (или поддерживаются, но неофициально), они могут быть устаревшими и не работать в полной мере

Советы и рекомендации

Обнаружение общих сетевых ресурсов

Если о других системах в локальной сети ничего не известно, а инструменты вроде smbnetfs не подходят, можно попробовать поискать ресурсы Samba вручную.

Сперва установите пакеты nmap и smbclient.

Используйте nmap для сканирования локальной сети и поиска систем с открытым TCP-портом 445, который используется протоколом SMB. Имейте в виду, что вам может понадобиться использовать опцию -Pn или задать другой тип пинг-сканирования, так как Windows-системы обычно защищены межсетевым экраном.

$ nmap -p 445 "192.168.1.*"
Starting Nmap 7.92 ( https://nmap.org ) at 2022-03-13 12:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.0011s latency).

PORT    STATE  SERVICE
445/tcp open  microsoft-ds

Nmap scan report for 192.168.1.2
Host is up (0.00011s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Nmap done: 256 IP addresses (2 hosts up) scanned in 2.45 seconds

Первый результат — другая система; второй — клиент, с которого было выполнено сканирование.

Теперь можно подключиться к этим IP-адресам напрямую, но если вы хотите использовать имена хостов NetBIOS, можно использовать nmblookup(1), чтобы узнать имена NetBIOS. Имейте в виду, что это не будет работать, если NetBIOS отключен на стороне сервера.

$ nmblookup -A 192.168.1.1
Looking up status of 192.168.1.1
        PUTER           <00> -         B <ACTIVE>
        HOMENET         <00> - <GROUP> B <ACTIVE>
        PUTER           <03> -         B <ACTIVE>
        PUTER           <20> -         B <ACTIVE>
        HOMENET         <1e> - <GROUP> B <ACTIVE>
        USERNAME        <03> -         B <ACTIVE>
        HOMENET         <1d> -         B <ACTIVE>
        MSBROWSE        <01> - <GROUP> B <ACTIVE>

Независимо от вывода, смотрите на <20>, который обозначает хост с открытыми сервисами.

С помощью smbclient(1) чтобы посмотреть список доступных ресурсов на сервере. Вместо IP-адреса можно использовать NetBIOS-имя (PUTER в данном примере), если оно доступно. Если будет запрошен пароль, можно просто нажать Enter — список общих ресурсов всё равно отобразится:

$ smbclient -L \192.168.1.1
Sharename       Type      Comment
---------       ----      -------
MY_MUSIC        Disk
SHAREDDOCS      Disk
PRINTER$        Disk
PRINTER         Printer
IPC$            IPC       Remote Inter Process Communication

Server               Comment
---------            -------
PUTER

Workgroup            Master
---------            -------
HOMENET               PUTER

Удалённое управление компьютером Windows

Samba предлагает набор инструментов для взаимодействия с Windows. Они могут пригодиться, если доступ к компьютеру Windows через удалённый рабочий стол невозможен, как показано на некоторых примерах.

Отправка команды shutdown с комментарием:

$ net rpc shutdown -C "comment" -I IPADDRESS -U USERNAME%PASSWORD

Принудительное выключение можно вызвать, заменив -C с комментарием на один -f. Для перезапуска можно добавить -r, за которым следует -C или -f.

Остановка и запуск служб:

$ net rpc service stop SERVICENAME -I IPADDRESS -U USERNAME%PASSWORD

Список доступных команд net rpc:

$ net rpc

Решение проблем

Не удаётся запустить Samba SMB/CIFS сервер

  • Проверьте smb.conf на наличие ошибок с помощью testparm(1).
  • Проверьте корректность прав доступа в /var/cache/samba/ и перезапустите smb.service:
# chmod 0755 /var/cache/samba/msg

Проблемы с разрешениями на SELinux

SELinux по умолчанию не позволяет samba получать доступ к домашним каталогам пользователей. Чтобы решить эту проблему, выполните команду:

# setsebool -P samba_enable_home_dirs 1

Аналогично, samba_export_all_ro и samba_export_all_rw дадут доступ к чтению и записи всех файлов.

Проблемы с разрешениями на AppArmor

Если используется путь к ресурсу, расположенному вне домашнего каталога или каталога usershares, внесите его в белый список в /etc/apparmor.d/local/usr.sbin.smbd. Например:

/etc/apparmor.d/local/usr.sbin.smbd
"/data/" rk,
"/data/**" lrwk,

No dialect specified on mount

Клиент использует неподдерживаемую версию SMB/CIFS, которую сервер не принимает.

Смотрите #Ограничение версии протокола для повышения безопасности.

Клиенты Windows продолжают запрашивать пароль, даже если общие ресурсы Samba созданы с правами гостя

Установите опцию map to guest в секции global в файле /etc/samba/smb.conf:

map to guest = Bad User

С версии Samba 4.10.10 используйте Bad Password вместо Bad User.

Проблемы подключения к Windows 7 — mount error(12): cannot allocate memory

Известная ошибка Windows 7 «mount error(12): cannot allocate memory» может быть исправлена установкой пары ключей в реестре системы Windows:

  • HKLMSYSTEMCurrentControlSetControlSession ManagerMemory ManagementLargeSystemCache (установить значение 1)
  • HKLMSYSTEMCurrentControlSetServicesLanmanServerParametersSize (установить значение 3)

В качестве альтернативы можно запустить командную строку от имени Администратора и выполнить следующее:

reg add "HKLMSYSTEMCurrentControlSetControlSession ManagerMemory Management" /v "LargeSystemCache" /t REG_DWORD /d 1 /f
reg add "HKLMSYSTEMCurrentControlSetServicesLanmanServerParameters" /v "Size" /t REG_DWORD /d 3 /f

Выполните одно из следующих действий, чтобы изменения вступили в силу:

  • Перезагрузите Windows
  • Перезапустите службу на сервере через services.msc
  • Выполните в командной строке net stop lanmanserver и net start lanmanserver; после остановки служба может перезапуститься автоматически

Примечание: Поиск решения в интернете подскажет другое решение, рекомендующее пользователям добавить ключ, изменяющий размер «IRPStackSize». Это неправильное решение для устранения проблемы в Windows 7. Не применяйте его.

Исходная статья.

Проблемы подключения к Windows 10 1709 и новее — «Windows cannot access» 0x80004005

Эта ошибка затрагивает некоторые машины под управлением Windows 10 версии 1709 и более поздних версий. Она не связана с отключением SMB1 в этой версии, а связана с тем, что Microsoft отключила небезопасный вход для гостей в этой версии для некоторых.

Чтобы исправить ситуацию, откройте редактор групповой политики (gpedit.msc). Перейдите к настройке Конфигурация компьютераАдминистративные шаблоныСетьРабочая станция Lanman > Включить небезопасные гостевые входы и включите её. В качестве альтернативы измените следующее значение в реестре:

[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstationParameters]
"AllowInsecureGuestAuth"=dword:1

Ошибка: Failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL

Если вы являетесь домашним пользователем, используете samba исключительно для организации общего доступа к файлам с сервера или NAS и не заинтересованы в организации общего доступа к принтерам, вы можете исправить эту ошибку, добавив следующие строки в файл /etc/samba/smb.conf:

/etc/samba/smb.conf
[global]
  load printers = No
  printing = bsd
  printcap name = /dev/null
  disable spoolss = Yes

Перезапустите службу smb.service и проверьте журнал:

# cat /var/log/samba/smbd.log

и больше ошибка не должна появляться.

Не удается предоставить общий доступ к папке

Проблема проявляется в том, что, когда вы пытаетесь предоставить общий доступ к папке через Dolphin (файловый менеджер), и вначале, вроде бы, все работает нормально, после перезапуска Dolphin иконка ресурса исчезла из папки, а в терминале (Konsole) вы видите следующий вывод:

‘net usershare’ returned error 255: net usershare: usershares are currently disabled

Для решения проблемы включите пользовательские общие ресурсы, как это описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя.

И вы используете межсетевой экран (iptables), поскольку не доверяете вашей локальной (школа, университет, отель) сети. Это может происходить по следующей причине: когда smbclient просматривает локальную сеть, он посылает широковещательный запрос на udp-порт 137. Затем серверы сети отвечают вашему клиенту, но, поскольку исходный адрес ответа отличается от адреса назначения, который видел iptables при отправке запроса, iptables не признает ответ как «установленное соединение» («ESTABLISHED») или «относящийся к запросу» («RELATED»), и, следовательно, пакет отбрасывается. Возможное решение — добавление:

iptables -t raw -A OUTPUT -p udp -m udp --dport 137 -j CT --helper netbios-ns

в вашу конфигурацию iptables.

Для Uncomplicated Firewall добавьте nf_conntrack_netbios_ns в конце следующей строки в /etc/default/ufw:

IPT_MODULES="nf_conntrack_ftp nf_nat_ftp nf_conntrack_irc nf_nat_irc"

и затем выполните следующие команды от имени root:

echo 1 > /proc/sys/net/netfilter/nf_conntrack_helper
ufw allow CIFS
ufw reload

Чтобы сделать изменения постоянными, добавьте следующую строку в конце файла /etc/ufw/sysctl.conf:

net.netfilter.nf_conntrack_helper=1

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE

Вероятно, клиент не имеет доступа к общим ресурсам. Удостоверьтесь, что IP-адрес клиента прописан в строке hosts allow = файла /etc/samba/smb.conf.

Также проблема может быть в том, что клиент использует недопустимую версию протокола. Для проверки попробуйте подключиться с помощью smbclient, вручную указав максимальную версию протокола:

$ smbclient -U <пользователь> -L //<сервер> -m <версия протокола, например SMB2> -W <домен>

Если команда выполнится успешно, создайте файл конфигрурации:

~/.smb/smb.conf
[global]
  workgroup = <домен>
  client max protocol = SMB2

Подключение к серверу завершилось неудачей: (Error NT_STATUS_UNSUCCESSFUL)

Вероятно, вы указываете smbclient неправильное имя сервера. Чтобы узнать его, запустите на сервере команду hostnamectl и найдите строку «Transient hostname».

Подключение к серверу завершилось неудачей: (Error NT_STATUS_CONNECTION_REFUSED)

Убедитесь, что сервер запущен.

Protocol negotiation failed: NT_STATUS_CONNECTION_RESET

Вероятно, на сервере запрещён SMB1. Добавьте опцию client max protocol = SMB2 в /etc/samba/smb.conf.
Или просто добавьте -m SMB2 к команде smbclient.

Правильный пароль не подходит (ошибка 1326)

В Samba 4.5 аутентификация NTLMv1 по умолчанию отключена. Рекомендуется установить последние доступные обновления на клиентах и запретить доступ для неподдерживаемых клиентов.

Если вам всё ещё нужна поддержка очень старых клиентов без поддержки NTLMv2 (например, Windows XP), можно включить NTLMv1, однако это не рекомендуется по соображениям безопасности:

/etc/samba/smb.conf
[global]
  lanman auth = yes
  ntlm auth = yes

Если клиенты NTLMv2 не могут пройти аутентификацию при включенном NTLMv1, создайте на клиенте следующий файл:

/home/user/.smb/smb.conf
[global]
  sec = ntlmv2
  client ntlmv2 auth = yes

Это изменение также влияет на общие ресурсы samba, смонтированные с помощью mount.cifs. Если после обновления до Samba 4.5 монтирование не удаётся, добавьте опцию sec=ntlmssp к команде монтирования, например:

mount.cifs //server/share /mnt/point -o sec=ntlmssp,...

Смотрите mount.cifs(8): ntlmssp — Использовать хэширование паролей NTLMv2, заключённое в Raw NTLMSSP сообщении. По умолчанию в основных версиях ядра до версии 3.8 было sec=ntlm. В версии 3.8 значение по умолчанию было изменено на sec=ntlmssp.

Сопоставление зарезервированных символов Windows

Начиная с ядра 3.18, модуль cifs по умолчанию использует опцию «mapposix». При монтировании ресурса с использованием расширений unix и конфигурации Samba по умолчанию, файлы и каталоги, содержащие один из семи зарезервированных символов Windows : * < > ? , отображаются, но доступ к ним невозможен.

Возможные решения:

  • Использовать недокументированную опцию монтирования nomapposix для cifs
# mount.cifs //server/share /mnt/point -o nomapposix
  • Настроить Samba для переадресации символов стиля mapposix («SFM», Services for Mac) на правильные родные символы с помощью fruit
/etc/samba/smb.conf
[global]
  vfs objects = catia fruit
  fruit:encoding = native
  • Написать своё сопоставление запрещённых символов с помощью catia
/etc/samba/smb.conf
[global]
  vfs objects = catia
  catia:mappings = 0x22:0xf022, 0x2a:0xf02a, 0x2f:0xf02f, 0x3a:0xf03a, 0x3c:0xf03c, 0x3e:0xf03e, 0x3f:0xf03f, 0x5c:0xf05c, 0x7c:0xf07c, 0x20:0xf020

Последний подход (использование catia или fruit) имеет недостаток, заключающийся в фильтрации файлов с непечатаемыми символами.

Папка, к которой открыт доступ через графический интерфейс, недоступна для гостей

Этот раздел предполагает, что:

  1. Общие папки настроены, как описано в разделе #Создание ресурсов общего доступа от имени обычного пользователя
  2. Общая папка создана через графический интерфейс и не пользователем root
  3. Включен гостевой доступ для папки
  4. Служба Samba перезапускалась с момента последнего изменения файла /etc/samba/smb.conf

В качестве примера далее используются следующие значения:

  • Общая папка находится внутри домашнего каталога пользователя (/home/yourUser/Shared)
  • Имя общей папки — MySharedFiles
  • Гостевой доступ открыт только для чтения.
  • Пользователи Windows будут иметь доступ к содержимому общей папки без аутентификации

Проверьте правильность конфигурации samba

Выполните следующую команду из терминала, чтобы проверить правильность настроек:

$ testparm

Проверьте правильность создания общей папки

Выполните следующие команды из терминала:

$ cd /var/lib/samba/usershare
$ ls

Если всё хорошо, должен быть файл с именем mysharedfiles

Посмотрите его содержимое:

$ cat mysharedfiles

Содержимое файла должно быть примерно таким:

/var/lib/samba/usershare/mysharedfiles
path=/home/yourUser/Shared
comment=
usershare_acl=S-1-1-0:r
guest_ok=y
sharename=MySharedFiles

Проверьте доступ к папке от имени гостя

Выполните следующую команду из терминала. Если будет запрошен пароль, просто нажмите Enter:

$ smbclient -L localhost

Если всё хорошо, в столбце Sharename должен присутствовать MySharedFiles.

Выполните следующую команду, чтобы получить доступ к общей папке в качестве гостя (анонимный вход)

$ smbclient -N //localhost/MySharedFiles

Если всё хорошо, должно появиться приглашение samba-клиента:

smb: >

Проверьте, что гость может посмотреть содержимое папки:

smb: > ls

Если появится ошибка NTFS_STATUS_ACCESS_DENIED, то проблема скорее всего связана с правами доступа к каталогам Unix. Убедитесь, что пользователь samba имеет доступ к нужной папке и всем родительским папкам. Это можно проверить, войдя в учётную запись нужного пользователя (например, с помощью sudo) и попытавшись перейти в нужный каталог.

Mount error: Host is down

Такая ошибка может появиться при монтировании общих ресурсов Synology NAS. Для решения проблемы используйте опцию vers=1.0.

Примечание: SMB1 имеет уязвимости в безопасности и уже использовался в успешных атаках вымогательского ПО.

Software caused connection abort

Файловые менеджеры, использующие gvfs-smb, могут выдавать ошибку Software caused connection abort при записи файла на общий ресурс/сервер. Это может быть связано с тем, что на сервере используется SMB/CIFS версии 1, которую многие маршрутизаторы используют для организации общего доступа к USB-накопителям (например, маршрутизаторы Belkin). Для записи на эти общие ресурсы укажите версию CIFS с помощью опции vers=1.0. Например:

/etc/fstab
//СЕРВЕР/имя_ресурса /mnt/точка_монтирования cifs _netdev,guest,file_mode=0777,dir_mode=0777,vers=1.0 0 0

Это также может произойти после обновления Samba до версии 4.11, в которой SMB1 отключен по умолчанию. Его можно включить с помощью следующей опции:

/etc/samba/smb.conf
[global]
client min protocol = CORE

Ошибка аутентификации

Убедитесь в отсутствии пробелов перед именем пользователя в настройках Samba:

~/.samba
username= user
password=pass

Правильно так:

~/.samba
username=user
password=pass

Windows 1709 и новее не видит сервер samba при просмотре сети

В Windows 10 версии 1511 поддержка SMBv1 и, соответственно, обнаружение устройств NetBIOS были отключены по умолчанию. Более новые версии Windows, начиная с версии 1709 («Fall Creators Update»), больше не позволяют установить клиент SMBv1. Это приводит к тому, что хосты с Samba не отображаются в просмотре сети в Проводнике. Хотя проблем с подключением нет и Samba будет работать нормально, пользователи могут захотеть, чтобы их хосты Samba всё-таки отображались. wsddAUR реализует демон Web Service Discovery. Благодаря ему (Samba) хосты, такие как NAS, могут быть обнаружены клиентами Web Service Discovery, такими как Windows. Настройки по умолчанию должны работать для большинства установок, и всё, что вам нужно сделать, это запустить и включить службу wsdd.service.

Настройки по умолчанию (представлять себя, используя имя хоста машины и рабочую группу «WORKGROUP») должна подходить в большинстве случаев. Если нужно, вы можете изменить настройки, передав wsdd дополнительные аргументы, добавив их в /etc/conf.d/wsdd (подробности есть в руководстве wsdd).

wsdd2AUR делает то же самое, но написан на C, а не на Python. По умолчанию он берёт параметры netbios name и workgroup из файла smb.conf.

Файлы из IOS больше не могут копироваться в общий ресурс Samba в Arch Linux, начиная с IOS 14.5

Начиная с IOS 14.5 при попытке передачи данных с устройства под управлением IOS с помощью приложения «Файлы» на общий ресурс samba в Arch Linux возникает ошибка:

The operation couldn't be completed
Operation canceled

Чтобы исправить эту проблему, добавьте следующее в секцию [global] файла smb.conf и перезапустите службу smb.service: [1]

## addition for IOS Files transfer-to server
vfs object = fruit streams_xattr

Смотрите также

  • Samba: An Introduction
  • Официальный сайт Samba
  • Samba 3.2.x HOWTO and Reference Guide (устаревшая, но всё ещё самая подробная документация)
  • Википедия
  • Gentoo:Samba/Guide
  • Debian:Samba/ServerSimple
  • KSMBD — Сервер ядра linux, реализующий протокол SMB3 в пространстве ядра для обмена файлами по сети.
  • Ускорение работы Samba[устаревшая ссылка 2022-09-23 ⓘ]

Понравилась статья? Поделить с друзьями:
  • Net usershare returned error 255
  • Net user ошибка 8646 сброс пароля
  • Net user как изменить пароль
  • Net user system error 8646 has occurred
  • Net use системная ошибка 1219