Инструменты пользователя

Инструменты сайта


flip:linux:samba

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
flip:linux:samba [2025/03/20 05:47] – создано flipflip:linux:samba [2025/03/26 19:52] (текущий) flip
Строка 1: Строка 1:
 ====== SAMBA ====== ====== SAMBA ======
  
-Имя пакета: ''samba''+  * Имя пакета: ''samba'' 
 +  * Файл конфигурации: ''/etc/samba/smb.conf'' 
 +  * Используемые порты: TCP: 445, 139; UDP: 137, 138
  
-Файл конфигурации: \\ +==== Создание пользователя в samba ====
-''/etc/samba/smb.conf''+
  
-Автозапуск+<code> 
 +smbpasswd -a username 
 +</code> 
 + 
 +==== Автозапуск ====
  
 <code> <code>
Строка 12: Строка 17:
 </code> </code>
  
-Применение изменений настроек+==== Проверка конфигурации на ошибки ==== 
 + 
 +<code> 
 +testparm 
 +</code> 
 + 
 +==== Применение изменений настроек ====
  
 <code> <code>
Строка 18: Строка 29:
 </code> </code>
  
 +
 +===== Настройка smb.conf =====
 +
 +
 +==== Глобальные настройки [global] ====
 +
 +Эта секция определяет общие параметры сервера Samba.
 +
 +=== Основные параметры ===
 +
 +<code>
 +[global]
 +    workgroup = WORKGROUP           # Имя рабочей группы или домена (по умолчанию WORKGROUP)
 +    server string = Samba Server    # Описание сервера (отображается в сетевом окружении)
 +    netbios name = SERVERNAME       # NetBIOS-имя сервера (макс. 15 символов)
 +    interfaces = lo eth0 192.168.1.0/24  # Сетевые интерфейсы, которые использует Samba
 +    bind interfaces only = yes      # Ограничить работу только указанными интерфейсами
 +    security = user                 # Режим безопасности: user, share, server, domain, ads
 +    encrypt passwords = yes         # Шифрование паролей (рекомендуется yes)
 +    passdb backend = tdbsam         # Хранение паролей: tdbsam, ldapsam, smbpasswd
 +</code>
 +
 +=== Логи и отладка ===
 +
 +<code>
 +    log file = /var/log/samba/log.%m  # Лог-файлы (по одному на клиента)
 +    max log size = 1000             # Макс. размер лог-файла в КБ (0 = без ограничений)
 +    log level = 1                   # Уровень детализации логов (0-10)
 +</code>
 +
 +=== Доступ и аутентификация ===
 +
 +<code>
 +    guest account = nobody          # Учетная запись для гостевого доступа
 +    map to guest = bad user         # Если пользователь не найден: bad user, never, bad password
 +    restrict anonymous = 2          # Ограничить анонимный доступ (2 — запретить)
 +    invalid users = root admin      # Запретить доступ определенным пользователям
 +    valid users = @smbusers         # Разрешить доступ только указанным пользователям/группам
 +</code>
 +
 +=== Сетевые настройки ===
 +
 +<code>
 +    hosts allow = 192.168.1. 127.  # Разрешенные IP-адреса/подсети
 +    hosts deny = 192.168.2.         # Запрещенные IP-адреса/подсети
 +    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192  # Оптимизация TCP
 +</code>
 +
 +=== Домены и Active Directory ===
 +
 +<code>
 +    realm = EXAMPLE.COM             # Realm для Kerberos (в домене Active Directory)
 +    domain master = yes             # Samba как главный браузер домена
 +    preferred master = yes          # Принудительно стать мастер-браузером
 +    wins support = yes             # Включить поддержку WINS-сервера
 +    idmap config * : backend = tdb  # Хранение SID-to-UID/GID
 +    idmap config * : range = 10000-99999
 +</code>
 +
 +
 +==== Настройки общих ресурсов [share_name] ====
 +
 +Каждая секция ''[share_name]'' определяет общий ресурс (папку).
 +
 +=== Основные параметры ===
 +
 +<code>
 +[shared_folder]
 +    comment = Public Share          # Описание ресурса
 +    path = /srv/samba/shared       # Путь к папке на сервере
 +    browseable = yes               # Видимость в сетевом окружении
 +    read only = no                 # Разрешить запись (no = разрешено)
 +    writable = yes                 # Альтернатива read only = no
 +    guest ok = yes                 # Разрешить гостевой доступ
 +    public = yes                   # То же, что guest ok = yes
 +</code>
 +
 +=== Права доступа ===
 +
 +<code>
 +    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   # Доступ только для user1 и членов group1
 +</code>
 +
 +=== Блокировки и кэширование ===
 +
 +<code>
 +    strict locking = yes           # Строгая блокировка файлов
 +    oplocks = yes                  # Оптимизация блокировок для клиентов
 +    kernel oplocks = no            # Отключить ядерные oplocks (лучше no для NFS)
 +</code>
 +
 +=== Специальные настройки ===
 +
 +<code>
 +    hide dot files = yes           # Скрывать файлы, начинающиеся с точки (.bashrc)
 +    veto files = /*.exe/*.bat/     # Запретить доступ к файлам с указанными шаблонами
 +    delete veto files = yes        # Разрешить удаление veto-файлов
 +    follow symlinks = yes          # Разрешить переход по символическим ссылкам
 +    wide links = no                # Запретить переход по ссылкам за пределами path
 +</code>
 +
 +
 +==== Принтеры [printers] ====
 +
 +<code>
 +[printers]
 +    comment = All Printers         # Описание раздела принтеров
 +    path = /var/spool/samba       # Путь к спулу печати
 +    printable = yes               # Разрешить печать
 +    guest ok = no                 # Запретить гостевой доступ
 +    browseable = no               # Скрыть в сетевом окружении
 +    create mask = 0700            # Права на файлы печати
 +</code>
 +
 +
 +==== Домашние директории [homes] ====
 +
 +<code>
 +[homes]
 +    comment = Home Directories     # Автоматический доступ к домашним папкам
 +    browseable = no               # Не отображать в списке общих ресурсов
 +    read only = no                # Разрешить запись
 +    create mask = 0700            # Права на файлы (700 = rwx------)
 +    directory mask = 0700         # Права на папки (700 = rwx------)
 +    valid users = %S              # Доступ только владельцу (%S = имя входа)
 +</code>
 +
 +
 +===== Примеры smb.conf =====
 +
 +**P.S.** Делайте резервные копии!
 +
 +
 +==== Пример с комментариями ====
 +
 +<code>
 +# Блок [global] задает глобальные настройки для последующих блоков
 +[global]
 +# Рабочая группа
 +   workgroup = WORKGROUP
 +# Уровень безопасности на уровне пользователей
 +   security = user
 +# С версии Samba 4.10.10 используйте Bad Password вместо Bad User
 +   map to guest = bad password
 +# Анонимный пользователь будет под именем nobody (нужна учетная запись)
 +   guest account = nobody
 +
 +
 +# Блок [homes] дает доступ к домашнему каталогу пользователя
 +[homes]
 +# Комментарий
 +   comment = Home Directories
 +# Доступность для просмотра - нет
 +   browseable = no
 +# Доступ только для чтения - да
 +   read only = yes
 +# Маска для создания файлов
 +   create mask = 0700
 +# Маска для создания каталогов
 +   directory mask = 0700
 +# Запрещает доступ другим пользователям
 +   valid users = %S
 +</code>
 +
 +
 +==== Пример общедоступного каталога ====
 +
 +<code>
 +# Имя в квадратных скобках может быть любое
 +# Это имя отображается в проводнике
 +[share]
 +# Комментарий
 +   comment = Public Folder
 +# Путь к каталогу
 +# chmod 777 /var/share
 +   path = /var/share
 +# Для общего доступа
 +   public = yes
 +# Разрешение на изменения
 +   writable = yes
 +# Отключено только для чтения
 +   read only = no
 +# Гостевой доступ разрешен
 +   guest ok = yes
 +# Права для создания новых файлов и каталогов
 +   create mask = 0777
 +   directory mask = 0777
 +   force create mode = 0777
 +   force directory mode = 0777
 +</code>
 +
 +
 +==== Пример каталога для зарегистрированных пользователей ====
 +
 +<code>
 +# Имя в квадратных скобках может быть любое
 +# Это имя отображается в проводнике
 +[private]
 +# Комментарий
 +   comment = Private Folder
 +# chmod 777 /var/private
 +   path = /var/private
 +# Не публичный каталог
 +   public = no
 +# Разрешение на изменения
 +   writable = yes
 +# Отключено только для чтения
 +   read only = no
 +# Запрещен доступ анонимным пользователям
 +   guest ok = no
 +# Права для создания новых файлов и каталогов
 +   create mask = 0777
 +   directory mask = 0777
 +   force create mode = 0777
 +   force directory mode = 0777
 +</code>
 +
 +
 +==== Папка для определенных пользователей и групп ====
 +
 +<code>
 +# Имя в квадратных скобках может быть любое
 +# Это имя отображается в проводнике
 +[private2]
 +# Комментарий
 +   comment = Private Folder 2
 +# chmod 777 /var/private2
 +   path = /var/private2
 +# Не публичный каталог
 +   public = no
 +# Запрещает изменения, кроме списка
 +   writable = no
 +# Доступ только для чтения, кроме списка
 +   read only = yes
 +# Запрещен доступ анонимным пользователям
 +   guest ok = no
 +# Список пользователей которым разрешен доступ
 +   valid users = admin, user, user2, @privateusers
 +# Список пользователей с доступом на чтение и запись
 +   write list = admin, user2
 +# Права для создания новых файлов и каталогов
 +   create mask = 0777
 +   directory mask = 0777
 +   force create mode = 0777
 +   force directory mode = 0777
 +# Наследование владельца при создании файлов и каталогов
 +   inherit owner = yes
 +</code>
 +
 +
 +==== Скрыть временные файлы ====
 +
 +<code>
 +hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/~*/
 +</code>
 +
 +
 +===== Конфигурация по умолчанию =====
 +
 +==== Debian ====
 +
 +<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
 +#
 +# Some options that are often worth tuning have been included as
 +# commented-out examples in this file.
 +#  - When such options are commented with ";", the proposed setting
 +#    differs from the default Samba behaviour
 +#  - When commented with "#", the proposed setting is the default
 +#    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
 +# "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 = WORKGROUP
 +
 +#### 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 = yes
 +
 +
 +
 +#### 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
 +
 +# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
 +# Append syslog@1 if you want important messages to be sent to syslog too.
 +   logging = file
 +
 +# Do something sensible when Samba crashes: mail the admin a backtrace
 +   panic action = /usr/share/samba/panic-action %d
 +
 +
 +####### Authentication #######
 +
 +# Server role. Defines in which mode Samba will operate. Possible
 +# values are "standalone server", "member server", "classic primary
 +# domain controller", "classic backup domain controller", "active
 +# directory domain controller"
 +#
 +# Most people will want "standalone server" or "member server".
 +# Running as "active directory domain controller" will require first
 +# running "samba-tool domain provision" to wipe databases and create a
 +# new domain.
 +   server role = standalone server
 +
 +   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 <<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 = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
 +
 +# 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 unsuccessful authentication attempts are mapped
 +# to anonymous connections
 +   map to guest = bad user
 +
 +########## Domains ###########
 +
 +#
 +# The following settings only takes effect if 'server role = primary
 +# classic domain controller', 'server role = backup domain controller'
 +# or '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 = \\%N\profiles\%U
 +# Another common choice is storing the profile in the user's home directory
 +# (this is Samba's default)
 +#   logon path = \\%N\%U\profile
 +
 +# 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
 +
 +# This allows machine accounts to be created on the domain controller via the 
 +# SAMR RPC pipe.  
 +# The following assumes a "machines" group exists on the system
 +; add machine script  = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
 +
 +# This allows Unix groups to be created on the domain controller via the SAMR
 +# RPC pipe.  
 +; add group script = /usr/sbin/addgroup --force-badname %g
 +
 +############ 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
 +
 +# 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
 +;   template shell = /bin/bash
 +
 +# 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.
 +#   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 =======================
 +
 +[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, \\server\username shares can be connected to by anyone
 +# with access to the samba server.
 +# The following parameter makes sure that only "username" can connect
 +# 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]
 +;   comment = Network Logon Service
 +;   path = /home/samba/netlogon
 +;   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]
 +;   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.
 +# You may need to replace 'lpadmin' with the name of the group your
 +# 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
 +</code>
 +
 +==== RedOS ====
 +
 +<code>
 +# See smb.conf.example for a more detailed config file or
 +# read the smb.conf manpage.
 +# Run 'testparm' to verify the config is correct after
 +# 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 = /etc/samba/usershares.conf
 +
 +[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 = /var/lib/samba/drivers
 +        write list = @printadmin root
 +        force group = @printadmin
 +        create mask = 0664
 +        directory mask = 0775
 +</code>
  
  
flip/linux/samba.1742449661.txt.gz · Последнее изменение: 2025/03/20 05:47 — flip

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki