flip:linux:samba
Различия
Показаны различия между двумя версиями страницы.
Следующая версия | Предыдущая версия | ||
flip:linux:samba [2025/03/20 05:47] – создано flip | flip:linux:samba [2025/03/26 19:52] (текущий) – flip | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== SAMBA ====== | ====== SAMBA ====== | ||
- | Имя пакета: | + | * Имя пакета: |
+ | * Файл конфигурации: | ||
+ | * Используемые порты: TCP: 445, 139; UDP: 137, 138 | ||
- | Файл конфигурации: \\ | + | ==== Создание пользователя в samba ==== |
- | ''/ | + | |
- | Автозапуск | + | < |
+ | smbpasswd -a username | ||
+ | </ | ||
+ | |||
+ | ==== Автозапуск | ||
< | < | ||
Строка 12: | Строка 17: | ||
</ | </ | ||
- | Применение изменений настроек | + | ==== Проверка конфигурации на ошибки ==== |
+ | |||
+ | < | ||
+ | testparm | ||
+ | </ | ||
+ | |||
+ | ==== Применение изменений настроек | ||
< | < | ||
Строка 18: | Строка 29: | ||
</ | </ | ||
+ | |||
+ | ===== Настройка smb.conf ===== | ||
+ | |||
+ | |||
+ | ==== Глобальные настройки [global] ==== | ||
+ | |||
+ | Эта секция определяет общие параметры сервера Samba. | ||
+ | |||
+ | === Основные параметры === | ||
+ | |||
+ | < | ||
+ | [global] | ||
+ | workgroup = WORKGROUP | ||
+ | server string = Samba Server | ||
+ | netbios name = SERVERNAME | ||
+ | interfaces = lo eth0 192.168.1.0/ | ||
+ | bind interfaces only = yes # Ограничить работу только указанными интерфейсами | ||
+ | security = user # Режим безопасности: | ||
+ | encrypt passwords = yes # Шифрование паролей (рекомендуется yes) | ||
+ | passdb backend = tdbsam | ||
+ | </ | ||
+ | |||
+ | === Логи и отладка === | ||
+ | |||
+ | < | ||
+ | log file = / | ||
+ | max log size = 1000 # Макс. размер лог-файла в КБ (0 = без ограничений) | ||
+ | log level = 1 # Уровень детализации логов (0-10) | ||
+ | </ | ||
+ | |||
+ | === Доступ и аутентификация === | ||
+ | |||
+ | < | ||
+ | guest account = nobody | ||
+ | map to guest = bad user # Если пользователь не найден: | ||
+ | restrict anonymous = 2 # Ограничить анонимный доступ (2 — запретить) | ||
+ | invalid users = root admin # Запретить доступ определенным пользователям | ||
+ | valid users = @smbusers | ||
+ | </ | ||
+ | |||
+ | === Сетевые настройки === | ||
+ | |||
+ | < | ||
+ | hosts allow = 192.168.1. 127. # Разрешенные IP-адреса/ | ||
+ | hosts deny = 192.168.2. | ||
+ | socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 | ||
+ | </ | ||
+ | |||
+ | === Домены и Active Directory === | ||
+ | |||
+ | < | ||
+ | realm = EXAMPLE.COM | ||
+ | domain master = yes # Samba как главный браузер домена | ||
+ | preferred master = yes # Принудительно стать мастер-браузером | ||
+ | wins support = yes # Включить поддержку WINS-сервера | ||
+ | idmap config * : backend = tdb # Хранение SID-to-UID/ | ||
+ | idmap config * : range = 10000-99999 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Настройки общих ресурсов [share_name] ==== | ||
+ | |||
+ | Каждая секция '' | ||
+ | |||
+ | === Основные параметры === | ||
+ | |||
+ | < | ||
+ | [shared_folder] | ||
+ | comment = Public Share # Описание ресурса | ||
+ | path = / | ||
+ | browseable = yes # Видимость в сетевом окружении | ||
+ | read only = no # Разрешить запись (no = разрешено) | ||
+ | writable = yes # Альтернатива read only = no | ||
+ | guest ok = yes # Разрешить гостевой доступ | ||
+ | public = yes # То же, что guest ok = yes | ||
+ | </ | ||
+ | |||
+ | === Права доступа === | ||
+ | |||
+ | < | ||
+ | create mask = 0644 # Права на создаваемые файлы (644 = rw-r--r--) | ||
+ | directory mask = 0755 # Права на создаваемые папки (755 = rwxr-xr-x) | ||
+ | force create mode = 0644 # Принудительные права на файлы | ||
+ | force directory mode = 0755 # Принудительные права на папки | ||
+ | force user = smbuser | ||
+ | force group = smbgroup | ||
+ | valid users = user1, @group1 | ||
+ | </ | ||
+ | |||
+ | === Блокировки и кэширование === | ||
+ | |||
+ | < | ||
+ | strict locking = yes # Строгая блокировка файлов | ||
+ | oplocks = yes # Оптимизация блокировок для клиентов | ||
+ | kernel oplocks = no # Отключить ядерные oplocks (лучше no для NFS) | ||
+ | </ | ||
+ | |||
+ | === Специальные настройки === | ||
+ | |||
+ | < | ||
+ | hide dot files = yes # Скрывать файлы, начинающиеся с точки (.bashrc) | ||
+ | veto files = / | ||
+ | delete veto files = yes # Разрешить удаление veto-файлов | ||
+ | follow symlinks = yes # Разрешить переход по символическим ссылкам | ||
+ | wide links = no # Запретить переход по ссылкам за пределами path | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Принтеры [printers] ==== | ||
+ | |||
+ | < | ||
+ | [printers] | ||
+ | comment = All Printers | ||
+ | path = / | ||
+ | printable = yes # Разрешить печать | ||
+ | guest ok = no # Запретить гостевой доступ | ||
+ | browseable = no # Скрыть в сетевом окружении | ||
+ | create mask = 0700 # Права на файлы печати | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Домашние директории [homes] ==== | ||
+ | |||
+ | < | ||
+ | [homes] | ||
+ | comment = Home Directories | ||
+ | browseable = no # Не отображать в списке общих ресурсов | ||
+ | read only = no # Разрешить запись | ||
+ | create mask = 0700 # Права на файлы (700 = rwx------) | ||
+ | directory mask = 0700 # Права на папки (700 = rwx------) | ||
+ | valid users = %S # Доступ только владельцу (%S = имя входа) | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Примеры smb.conf ===== | ||
+ | |||
+ | **P.S.** Делайте резервные копии! | ||
+ | |||
+ | |||
+ | ==== Пример с комментариями ==== | ||
+ | |||
+ | < | ||
+ | # Блок [global] задает глобальные настройки для последующих блоков | ||
+ | [global] | ||
+ | # Рабочая группа | ||
+ | | ||
+ | # Уровень безопасности на уровне пользователей | ||
+ | | ||
+ | # С версии Samba 4.10.10 используйте Bad Password вместо Bad User | ||
+ | map to guest = bad password | ||
+ | # Анонимный пользователь будет под именем nobody (нужна учетная запись) | ||
+ | guest account = nobody | ||
+ | |||
+ | |||
+ | # Блок [homes] дает доступ к домашнему каталогу пользователя | ||
+ | [homes] | ||
+ | # Комментарий | ||
+ | | ||
+ | # Доступность для просмотра - нет | ||
+ | | ||
+ | # Доступ только для чтения - да | ||
+ | read only = yes | ||
+ | # Маска для создания файлов | ||
+ | | ||
+ | # Маска для создания каталогов | ||
+ | | ||
+ | # Запрещает доступ другим пользователям | ||
+ | valid users = %S | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Пример общедоступного каталога ==== | ||
+ | |||
+ | < | ||
+ | # Имя в квадратных скобках может быть любое | ||
+ | # Это имя отображается в проводнике | ||
+ | [share] | ||
+ | # Комментарий | ||
+ | | ||
+ | # Путь к каталогу | ||
+ | # chmod 777 /var/share | ||
+ | path = /var/share | ||
+ | # Для общего доступа | ||
+ | | ||
+ | # Разрешение на изменения | ||
+ | | ||
+ | # Отключено только для чтения | ||
+ | read only = no | ||
+ | # Гостевой доступ разрешен | ||
+ | guest ok = yes | ||
+ | # Права для создания новых файлов и каталогов | ||
+ | | ||
+ | | ||
+ | force create mode = 0777 | ||
+ | force directory mode = 0777 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Пример каталога для зарегистрированных пользователей ==== | ||
+ | |||
+ | < | ||
+ | # Имя в квадратных скобках может быть любое | ||
+ | # Это имя отображается в проводнике | ||
+ | [private] | ||
+ | # Комментарий | ||
+ | | ||
+ | # chmod 777 / | ||
+ | path = / | ||
+ | # Не публичный каталог | ||
+ | | ||
+ | # Разрешение на изменения | ||
+ | | ||
+ | # Отключено только для чтения | ||
+ | read only = no | ||
+ | # Запрещен доступ анонимным пользователям | ||
+ | guest ok = no | ||
+ | # Права для создания новых файлов и каталогов | ||
+ | | ||
+ | | ||
+ | force create mode = 0777 | ||
+ | force directory mode = 0777 | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Папка для определенных пользователей и групп ==== | ||
+ | |||
+ | < | ||
+ | # Имя в квадратных скобках может быть любое | ||
+ | # Это имя отображается в проводнике | ||
+ | [private2] | ||
+ | # Комментарий | ||
+ | | ||
+ | # chmod 777 / | ||
+ | path = / | ||
+ | # Не публичный каталог | ||
+ | | ||
+ | # Запрещает изменения, | ||
+ | | ||
+ | # Доступ только для чтения, | ||
+ | read only = yes | ||
+ | # Запрещен доступ анонимным пользователям | ||
+ | guest ok = no | ||
+ | # Список пользователей которым разрешен доступ | ||
+ | valid users = admin, user, user2, @privateusers | ||
+ | # Список пользователей с доступом на чтение и запись | ||
+ | write list = admin, user2 | ||
+ | # Права для создания новых файлов и каталогов | ||
+ | | ||
+ | | ||
+ | force create mode = 0777 | ||
+ | force directory mode = 0777 | ||
+ | # Наследование владельца при создании файлов и каталогов | ||
+ | | ||
+ | </ | ||
+ | |||
+ | |||
+ | ==== Скрыть временные файлы ==== | ||
+ | |||
+ | < | ||
+ | hide files = / | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Конфигурация по умолчанию ===== | ||
+ | |||
+ | ==== Debian ==== | ||
+ | |||
+ | < | ||
+ | # | ||
+ | # 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 | ||
+ | # | ||
+ | # Some options that are often worth tuning have been included as | ||
+ | # commented-out examples in this file. | ||
+ | # - When such options are commented with ";", | ||
+ | # differs from the default Samba behaviour | ||
+ | # - When commented with "#", | ||
+ | # behaviour of Samba but the option is considered important | ||
+ | # enough to be mentioned here | ||
+ | # | ||
+ | # NOTE: Whenever you modify this file you should run the command | ||
+ | # " | ||
+ | # errors. | ||
+ | |||
+ | # | ||
+ | |||
+ | [global] | ||
+ | |||
+ | ## Browsing/ | ||
+ | |||
+ | # Change this to the workgroup/ | ||
+ | | ||
+ | |||
+ | #### Networking #### | ||
+ | |||
+ | # The specific set of interfaces / networks to bind to | ||
+ | # This can be either the interface name or an IP address/ | ||
+ | # interface names are normally preferred | ||
+ | ; | ||
+ | |||
+ | # Only bind to the named interfaces and/or networks; you must use the | ||
+ | # ' | ||
+ | # It is recommended that you enable this feature if your Samba machine is | ||
+ | # not protected by a firewall or is a firewall itself. | ||
+ | # option cannot handle dynamic or non-broadcast interfaces correctly. | ||
+ | ; bind interfaces only = yes | ||
+ | |||
+ | |||
+ | |||
+ | #### Debugging/ | ||
+ | |||
+ | # This tells Samba to use a separate log file for each machine | ||
+ | # that connects | ||
+ | log file = / | ||
+ | |||
+ | # Cap the size of the individual log files (in KiB). | ||
+ | max log size = 1000 | ||
+ | |||
+ | # We want Samba to only log to / | ||
+ | # Append syslog@1 if you want important messages to be sent to syslog too. | ||
+ | | ||
+ | |||
+ | # Do something sensible when Samba crashes: mail the admin a backtrace | ||
+ | panic action = / | ||
+ | |||
+ | |||
+ | ####### Authentication ####### | ||
+ | |||
+ | # Server role. Defines in which mode Samba will operate. Possible | ||
+ | # values are " | ||
+ | # domain controller", | ||
+ | # directory domain controller" | ||
+ | # | ||
+ | # Most people will want " | ||
+ | # Running as " | ||
+ | # running " | ||
+ | # new domain. | ||
+ | | ||
+ | |||
+ | obey pam restrictions = yes | ||
+ | |||
+ | # 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 << | ||
+ | # sending the correct chat script for the passwd program in Debian Sarge). | ||
+ | | ||
+ | | ||
+ | |||
+ | # This boolean controls whether PAM will be used for password changes | ||
+ | # when requested by an SMB client instead of the program listed in | ||
+ | # ' | ||
+ | pam password change = yes | ||
+ | |||
+ | # This option controls how unsuccessful authentication attempts are mapped | ||
+ | # to anonymous connections | ||
+ | map to guest = bad user | ||
+ | |||
+ | ########## Domains ########### | ||
+ | |||
+ | # | ||
+ | # The following settings only takes effect if ' | ||
+ | # classic domain controller', | ||
+ | # or ' | ||
+ | # | ||
+ | |||
+ | # 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 = \\%N\profiles\%U | ||
+ | # Another common choice is storing the profile in the user's home directory | ||
+ | # (this is Samba' | ||
+ | # logon path = \\%N\%U\profile | ||
+ | |||
+ | # The following setting only takes effect if ' | ||
+ | # 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 ' | ||
+ | # It specifies the script to run during logon. The script must be stored | ||
+ | # in the [netlogon] share | ||
+ | # NOTE: Must be store in ' | ||
+ | ; 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 = / | ||
+ | |||
+ | # This allows machine accounts to be created on the domain controller via the | ||
+ | # SAMR RPC pipe. | ||
+ | # The following assumes a " | ||
+ | ; add machine script | ||
+ | |||
+ | # This allows Unix groups to be created on the domain controller via the SAMR | ||
+ | # RPC pipe. | ||
+ | ; add group script = / | ||
+ | |||
+ | ############ | ||
+ | |||
+ | # 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 | ||
+ | ; | ||
+ | |||
+ | # Some defaults for winbind (make sure you're not using the ranges | ||
+ | # for something else.) | ||
+ | ; idmap config * : backend = tdb | ||
+ | ; idmap config * : range = 3000-7999 | ||
+ | ; idmap config YOURDOMAINHERE : backend = tdb | ||
+ | ; idmap config YOURDOMAINHERE : range = 100000-999999 | ||
+ | ; | ||
+ | |||
+ | # Setup usershare options to enable non-root users to share folders | ||
+ | # with the net usershare command. | ||
+ | |||
+ | # Maximum number of usershare. 0 means that usershare is disabled. | ||
+ | # | ||
+ | |||
+ | # Allow users who've been granted usershare privileges to create | ||
+ | # public shares, not just authenticated ones | ||
+ | | ||
+ | |||
+ | # | ||
+ | |||
+ | [homes] | ||
+ | | ||
+ | | ||
+ | |||
+ | # By default, the home directories are exported read-only. Change the | ||
+ | # next parameter to ' | ||
+ | read only = yes | ||
+ | |||
+ | # File creation mask is set to 0700 for security reasons. If you want to | ||
+ | # create files with group=rw permissions, | ||
+ | | ||
+ | |||
+ | # Directory creation mask is set to 0700 for security reasons. If you want to | ||
+ | # create dirs. with group=rw permissions, | ||
+ | | ||
+ | |||
+ | # By default, \\server\username shares can be connected to by anyone | ||
+ | # with access to the samba server. | ||
+ | # The following parameter makes sure that only " | ||
+ | # to \\server\username | ||
+ | # 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] | ||
+ | ; | ||
+ | ; path = / | ||
+ | ; guest ok = yes | ||
+ | ; read only = yes | ||
+ | |||
+ | # 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] | ||
+ | ; | ||
+ | ; path = / | ||
+ | ; guest ok = no | ||
+ | ; | ||
+ | ; | ||
+ | ; | ||
+ | |||
+ | [printers] | ||
+ | | ||
+ | | ||
+ | path = / | ||
+ | | ||
+ | guest ok = no | ||
+ | read only = yes | ||
+ | | ||
+ | |||
+ | # Windows clients look for this share name as a source of downloadable | ||
+ | # printer drivers | ||
+ | [print$] | ||
+ | | ||
+ | path = / | ||
+ | | ||
+ | read only = yes | ||
+ | guest ok = no | ||
+ | # Uncomment to allow remote administration of Windows print drivers. | ||
+ | # You may need to replace ' | ||
+ | # admin users are members of. | ||
+ | # Please note that you also need to set appropriate Unix permissions | ||
+ | # to the drivers directory for these users to have write rights in it | ||
+ | ; write list = root, @lpadmin | ||
+ | </ | ||
+ | |||
+ | ==== RedOS ==== | ||
+ | |||
+ | < | ||
+ | # See smb.conf.example for a more detailed config file or | ||
+ | # read the smb.conf manpage. | ||
+ | # Run ' | ||
+ | # you modified it. | ||
+ | # | ||
+ | # Note: | ||
+ | # SMB1 is disabled by default. This means clients without support for SMB2 or | ||
+ | # SMB3 are no longer able to connect to smbd (by default). | ||
+ | |||
+ | [global] | ||
+ | workgroup = SAMBA | ||
+ | security = user | ||
+ | |||
+ | passdb backend = tdbsam | ||
+ | |||
+ | printing = cups | ||
+ | printcap name = cups | ||
+ | load printers = yes | ||
+ | cups options = raw | ||
+ | |||
+ | # Install samba-usershares package for support | ||
+ | include = / | ||
+ | |||
+ | [homes] | ||
+ | comment = Home Directories | ||
+ | valid users = %S, %D%w%S | ||
+ | browseable = No | ||
+ | read only = No | ||
+ | inherit acls = Yes | ||
+ | |||
+ | [printers] | ||
+ | comment = All Printers | ||
+ | path = /var/tmp | ||
+ | printable = Yes | ||
+ | create mask = 0600 | ||
+ | browseable = No | ||
+ | |||
+ | [print$] | ||
+ | comment = Printer Drivers | ||
+ | path = / | ||
+ | write list = @printadmin root | ||
+ | force group = @printadmin | ||
+ | create mask = 0664 | ||
+ | directory mask = 0775 | ||
+ | </ | ||
flip/linux/samba.1742449661.txt.gz · Последнее изменение: 2025/03/20 05:47 — flip