flip:linux:samba
                Различия
Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| flip:linux:samba [2025/03/20 05:47] – создано flip | flip:linux:samba [2025/10/23 06:43] (текущий) – flip | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ====== SAMBA ====== | ====== SAMBA ====== | ||
| - | Имя пакета: | + |   * Имя пакета: | 
| + |   * Файл конфигурации: | ||
| + | * Используемые порты: TCP: 445, 139; UDP: 137, 138 | ||
| - | Файл конфигурации: \\ | + | ==== Создание пользователя в samba ==== | 
| - | ''/ | + | |
| - | Автозапуск | + | < | 
| + | smbpasswd -a username | ||
| + | </ | ||
| + | |||
| + | ==== Автозапуск  | ||
| < | < | ||
| Строка 12: | Строка 17: | ||
| </ | </ | ||
| - | Применение изменений настроек | + | ==== Проверка конфигурации на ошибки ==== | 
| + | |||
| + | < | ||
| + | testparm | ||
| + | </ | ||
| + | |||
| + | ==== Применение изменений настроек  | ||
| < | < | ||
| Строка 18: | Строка 29: | ||
| </ | </ | ||
| + | ==== Посмотреть кем занят файл ==== | ||
| + | |||
| + | < | ||
| + | smbstatus -L | grep < | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== Настройка 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
                
                