Добавить samba пользователя: , , , , Red Hat Enterprise Linux, RHCSA, RHCE, RHCE RHCSA, Red Hat Certified System Administrator, Red Hat Certified Engineer, , ,
Как сделать доступ к папкам samba по паролю? — Хабр Q&A
Не могу понять почему не получается зайти в папку, расшаренную с помощью Samba (на ubuntu 12.04).
Пользователя в Samba добавил с помощью smbpasswd
Также добавил пользователя в группу sambashare
Есть папка с гостевым доступом, туда могу зайти, могу записывать файлы.
А если создаю и расшариваю папку, для доступа под паролем, пишет «Нет доступа к … Возможно у вас нет прав на подключение к данному ресурсу» (подключаюсь с windows машины)
Перерыл все логи, записей про неудачную авторизацию или что либо подобное не нашел. Помоги пожалуйста
smb.conf
[global]
workgroup = WORKGROUP
server string = %h server (Samba, Ubuntu)
dns proxy = no
log file = /var/log/samba/log.%m
max log size = 1000
syslog = 0
panic action = /usr/share/samba/panic-action %d
security = user
encrypt passwords = true
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\ n *password\supdated\ssuccessfully* .
pam password change = yes
map to guest = bad user
; domain logons = yes
; logon path = \\%N\profiles\%U
; logon drive = H:
; logon script = logon.cmd
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
; add group script = /usr/sbin/addgroup --force-badname %g
; printing = bsd
; printcap name = /etc/printcap
; printing = cups
; printcap name = cups
; include = /home/samba/etc/smb.conf.%m
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash
; winbind enum groups = yes
; winbind enum users = yes
; usershare max shares = 100
usershare allow guests = yes
;[homes]
; comment = Home Directories
; browseable = no
; read only = yes
; create mask = 0700
; directory mask = 0700
; valid users = %S
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
;[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
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
; write list = root, @lpadmin
;[cdrom]
; comment = Samba server's CD-ROM
; read only = yes
; locking = no
; path = /cdrom
; guest ok = yes
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom
[public]
comment = 320gb
browseable = yes
read only = no
public = yes
path = /media/sdc/public
guest ok = yes
[disk80]
comment = 80gb
browseable = yes
read only = no
path = /media/sdb/disk80
valid users = "user"
write list = "user"
Файловый сервер для Windows на Ubuntu
Развернуть файловый сервер для Windows машин на Ubuntu достаточно просто. Обычно такой сервер используется для организации файловых хранилищ в рамках Active Directory домена.
В то же время можно без труда создавать файловые сервера и в бездоменной сети, в том числе для домашнего применения.
В любом случае воспользуйтесь Samba – установите ее с помощью менеджера пакетов Synaptic или следующей командой:
sudo apt-get install samba
Файловый сервер в составе домена Active Directory
Для создания файлового сервера, интегрированного в домен Active Directory, сначала необходимо ввести Вашу машину с Ubuntu в домен.
Чтобы создать файловый сервер, настройка PAM не потребуется, достаточно добавить доменных пользователей и группы через Winbind в систему.
Войдя в домен, настройте расшаренные ресурсы на компьютере. Учтите, что Samba будет проецировать права на файлы Windows на права Unix, однако принципиальные различия в механизмах присвоения прав скорее всего не дадут ей это сделать. Права на файлы всегда и в любом случае управляются Вашей файловой системой на компьютере с Ubuntu, а Samba может только адаптироваться под них, а менять их поведение — нет.
Так что по умолчанию расшаренные ресурсы будут располагать скромными возможностями контроля доступа, включая назначение разных прав для пользователя, группы и всех остальных. Но Вы можете это без труда исправить, добавив в ФС поддержку POSIX ACL. Тогда можно будет назначать различные права различным пользователям и группам почти как в Windows.
Поддержку POSIX ACL можно найти в ext3/4, и для её активации нужно только добавить к опциям монтирования нужного раздела параметр acl.
Важно! Каталог, который нужно расшарить через Samba, должен лежать на диске, смонтированном с опцией acl. В противном случае будет невозможно нормально применять механизм разграничения прав доступа к файлам на шарах.
Помните еще вот о чем: POSIX ACL не поддерживают наследование прав доступа от родительских каталогов, в то время как в Windows эта возможность есть. Так что в Samba существует дополнительный механизм сохранения информации о наследовании прав доступа, использующий расширенные атрибуты файловой системы. Чтобы Samba корректно обрабатывала наследование прав, кроме acl к опциям монтирования файловой системы добавьте параметр user_xattr, ответственный за включение поддержки расширенных атрибутов.
Например, удобно использовать для организации расшаренных ресурсов отдельные LVM диски. В этом случае строчки в fstab для них выглядят так:
/dev/mapper/data-profiles /var/data/profiles ext3 defaults,noexec,acl,user_xattr 0 2
Опция noexec нужна для перестраховки: что на шарах для Windows 100% не должно быть исполняемых файлов Linux.
Установите пакет необходимх утилит для работы с acl на Ubuntu:
sudo aptitude install acl
Теперь просмотрите расширенные права (т.е. ACL) на файл или каталог следующей командой:
Установите такой командой:
Не забывайте, что механизм POSIX ACL никак не связан с Samba — это только надстройка над стандартным механизмом разграничения прав в Linux. Так что Samba может его использовать, но не способна как-либо изменить или обойти.
Для использования расширенных атрибутов ФС пригодится похожий на acl пакет утилит — attr, поставьте его следующей командой:
sudo aptitude install attr
Чтобы просмотреть расширенные атрибуты, используйте команду:
А для установки выполните:
Следует помнить, что Samba хранит всю информацию о наследовании в бинарном виде в единственном расширенном атрибуте user. SAMBA_PAI. Так что поменять что-то с помощью setfattr не получится, возможно только полное удаление расширенных атрибутов (в некоторых случаях необходимость в этом возникает).
Контролировать наследование прав с Windows машины возможно с помощью штатных инструментов этой системы, или утилитой smbcacls.
Расширенные атрибуты файловой системы позволяют включить в Samba полную поддержку файловых атрибутов DOS (например скрытого, архивного и пр.).
Если в Вашей системе есть каталог, который нужно расшарить через Samba (и он расположен на диске, подмонтированном с поддержкой acl и user_xattr), настройте его расшаривание – введите нужную информацию в файл /etc/samba/smb.conf.
В первую очередь займитесь общими настройками для добавления в секцию [global] этого файла:
# Отключить расшаривание принтеров. Если вы конечно и вправду не хотите их расшаривать.
# Для полного отключения нужно указывать все 4 строки, приведённых ниже
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
# Сделать скрытыми при просмотре с Windows файлы со следующими именами
hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/
# Использовать для шар с публичным доступом следующего UNIX пользователя в качестве Guest
guest account = nobody
# Воспринимать как guest незарегистрированных пользователей
map to guest = Bad User
## Настройки, использующие расширенные атрибуты файловой системы
# Обрабатывать наследования прав с помощью расширенных атрибутов ФС
map acl inherit = yes
# Использовать расширенные атрибуты ФС для хранения атрибутов DOS
store dos attributes = yes
# Отключить маппинг DOS атрибутов на UNIX права, включённый по умолчанию
# Согласно man smb. conf при использовании расширенных атрибутов эти опции обязаны быть отключены
map archive = no
map system = no
map hidden = no
map readonly = no
Затем настройте сам расшаренный ресурс. В примере он указан как profiles, а физически на Ubuntu машине расположен по адресу /var/data/profiles:
[profiles]
# Комментарий
comment = User Profiles
# Путь до папки, которую расшариваем
path = /var/data/profiles/
# Пользователи с неограниченными правами доступа к шаре
# У меня стоит группа администраторов домена.
# Эти пользователи при работе с файлами воспринимаются как локальный root
admin users = "@DOMAIN\Администраторы домена"
# Скрыть папки, к которым у пользователя нет доступа
hide unreadable = yes
# Доступ не только на чтение
read only = no
# Маски для создаваемых файлов - можно задать по желанию
#create mask = 0600
#directory mask = 0700
# Отключение блокировок - лучше отключить
locking = no
Существует ряд других опций – вся подробная информация есть в документации по Samba.
Обязательно поставьте правильного владельца и права доступа на расшариваемую папку, иначе в неё может быть запрещена запись на уровне прав Linux. Можете сделать так:
sudo chmod ug+rwx /var/data/profiles
sudo chown root:"пользователи домена" /var/data/profiles
Внимание! Так как Ваша Ubuntu машина введена в домен, вы можете применять пользователей и группы домена в качестве владельцев файлов прямо в Ubuntu.
Проверьте корректность настройки Samba командой:
Далее перезапустите Samba:
sudo /etc/init.d/samba restart
Теперь получить доступ к расшаренному ресурсу Вы можете с любой машины домена. Но не забывайте про SGID и Sticky биты для каталогов, предназначенные для наследования группы-владельца и запрещения пользователям удаления не своих файлов — это особенно актуально для многопользовательских хранилищ. При этом, в отличие от редактирования прав из Windows, поменять эти биты на папках на расшаренном ресурсе невозможно — только вручную прямо на Ubuntu компьютере.
Samba позволяет хранить предыдущие версии файлов, что может пригодиться при создании общих ресурсов с пользовательскими данными.
Автономный файловый сервер
Далеко не все располагают доменом Active Directory. Поэтому часто появляется необходимость организовать на Linux машине независимое файловое хранилище с собственной системой авторизации. Это несложно.
В этом случае вся информация о пользователях будет храниться в базе данных Samba, а добавлять и удалять пользователей на нее придется вручную.
Главное – нужно определиться с используемым способом доступа к ресурсу. Следует корректно установить значение параметра security в секции [global] файла /etc/samba/smb.conf.
Стандартно применяется значение share или user.
И не забудьте изменить значение параметра workgroup на соответствующее, причем все остальные настройки напрямую будут зависеть от конкретных целей.
Автономный файловый сервер без авторизации
В домашних условиях удобно, когда все видят всех. Для этого просто добавьте 4 строчки в секцию [global] файла /etc/samba/smb.conf (некоторые могут уже быть в наличии):
[global]
workgroup = WORKGROUP
map to guest = Bad User
netbios name = NOTEBOOK
security = user
NOTEBOOK — имя компьютера, которое будет в сети. Также установите дополнительные программы:
sudo apt-get install samba
Дополнительно для kubuntu необходимо установить smb4k . После редактирования настроек перезапустите службы. В systemd (начиная с 15.04) перезапуск осуществляется так:
sudo systemctl restart smbd. service nmbd.service
Посмотрите «шары» через файловый броузер nautilus, konkueror или следующим образом:
Расшаривание папки на Ubuntu
Нужно создать папку для обмена файлов.
Затем добавить в конец файла /etc/samba/smb.conf такие строки, а «yuraku1504» в них замените на имя пользователя компьютера с Samba:
[MyShareWork]
comment = Anonymous Samba Share
path = /home/yuraku1504/share
guest ok = yes
browsable =yes
writable = yes
read only = no
force user = yuraku1504
force group = yuraku1504
Папка будет открыта для чтения и записи.
Как установить и настроить Samba в CentOS 7
Samba – это бесплатная и открытая реализация протокола сетевого обмена файлами SMB/CIFS, который позволяет конечным пользователям получать доступ к файлам, принтерам и другим общим ресурсам.
В этой статье мы покажем, как установить Samba в CentOS 7 и настроить его в качестве автономного сервера для совместного использования файлов в разных операционных системах по сети.
Мы создадим следующие общие ресурсы и пользователей Samba.
Пользователи:
- sadmin – Администратор с правами чтения и записи для всех общих ресурсов.
- andreyex – обычный пользователь со своей личной папкой.
Совместное использование:
- users – этот ресурс будет доступен всем пользователям с правами на чтение/запись.
- andreyex – этот ресурс будет доступен с правами на чтение/запись только пользователям andreyex и sadmin.
Общий доступ к файлам будет доступен со всех устройств в вашей сети. Далее в этой статье мы также предоставим подробные инструкции о том, как подключиться к серверу Samba из клиентов Linux, Windows и macOS.
Предпосылки
Прежде чем начать, убедитесь, что вы вошли в систему CentOS 7 как пользователь с привилегиями sudo.
Установка Samba на CentOS
Samba доступна из стандартных репозиториев CentOS. Чтобы установить его в вашей системе CentOS, выполните следующую команду:
sudo yum install samba samba-client
После завершения установки запустите службы Samba и включите их автоматический запуск при загрузке системы:
sudo systemctl start smb.service sudo systemctl start nmb.service
sudo systemctl enable smb.service sudo systemctl enable nmb.service
Служба smbd обеспечивает совместный доступ к файлам, услуги печати и прослушивает TCP порты 139 и 445. Служба nmbd предоставляет NetBIOS через IP – служб имен для клиентов и прослушивает UDP порт 137.
Настройка брандмауэра
Теперь, когда Samba установлена и запущена на вашем компьютере CentOS, вам нужно настроить брандмауэр и открыть необходимый порты. Для этого выполните следующие команды:
firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --zone=public --add-service=samba
Создание пользователей Samba и структуры каталогов
Для удобства обслуживания и гибкости вместо использования стандартных домашних каталогов ( /home/user) все каталоги и данные Samba будут расположены в каталоге /samba.
Начните с создания каталога /samba:
sudo mkdir /samba
Создайте новую группу с именем sambashare. Позже мы добавим всех пользователей Samba в эту группу.
sudo groupadd sambashare
Установите владельца группы каталогов /samba на sambashare:
sudo chgrp sambashare /samba
Samba использует пользователей Linux и систему разрешений групп, но имеет собственный механизм аутентификации, отличный от стандартной аутентификации Linux. Мы создадим пользователей, используя стандартный инструмент useradd в Linux, а затем установим пароль пользователя с помощью утилиты smbpasswd.
Как мы упоминали во введении, мы создадим обычного пользователя, который будет иметь доступ к своему личному общему файлу и одну административную учетную запись с правами чтения и записи для всех общих ресурсов на сервере Samba.
Создание пользователей Samba
Чтобы создать нового пользователя с именем andreyex, используйте следующую команду:
sudo useradd -M -d /samba/andreyex -s /usr/sbin/nologin -G sambashare andreyex
В опции useradd имеют следующие значения:
- -M – не создавать домашний каталог пользователя. Мы вручную создадим этот каталог.
- -d /samba/andreyex – установить домашний каталог пользователя в /samba/andreyex.
- -s /usr/sbin/nologin – отключить доступ к оболочке для этого пользователя.
- -G sambashare- добавить пользователя в группу sambashare.
Создайте домашний каталог пользователя и установите владельца каталога для пользователя andreyex и группы sambashare:
sudo mkdir /samba/andreyexsudo chown andreyex:sambashare /samba/andreyex
Следующая команда добавит бит setgid в каталог /samba/andreyex, чтобы вновь созданные файлы в этом каталоге наследовали группу родительского каталога. Таким образом, независимо от того, какой пользователь создаст новый файл, он будет иметь владельца группы sambashare. Например, если вы не установите права доступа к каталогу на 2770 а пользователь sadmin создаст новый файл, пользователь andreyex не сможет читать и записывать в этот файл.
sudo chmod 2770 /samba/andreyex
Добавьте учетную запись andreyex пользователя в базу данных Samba, установив пароль пользователя:
sudo smbpasswd -a andreyex
Вам будет предложено ввести и подтвердить пароль пользователя.
New SMB password: Retype new SMB password: Added user andreyex.
После того, как пароль установлен, включите учетную запись Samba, введя:
sudo smbpasswd -e andreyex
Enabled user andreyex.
Для создания другого пользователя повторите тот же процесс, что и при создании пользователя andreyex.
Далее давайте создадим пользователя и группу sadmin. Все члены этой группы будут иметь административные разрешения. Позже, если вы хотите предоставить права администратора другому пользователю, просто добавьте этого пользователя в группу sadmin.
Создайте пользователя с правами администратора, набрав:
sudo useradd -M -d /samba/users -s /usr/sbin/nologin -G sambashare sadmin
Команда выше также создаст группу sadmin и добавит пользователя sadmin и группу sambashare.
Установите пароль и включите пользователя:
sudo smbpasswd -a sadmin sudo smbpasswd -e sadmin
Далее создайте каталог общего доступа Users:
sudo mkdir /samba/users
Установите владельца каталога для пользователя sadmin и группы sambashare:
sudo chown sadmin:sambashare /samba/users
Этот каталог будет доступен всем аутентифицированным пользователям. Следующая команда настраивает доступ на запись/чтение для членов группы sambashare в каталоге /samba/users:
sudo chmod 2770 /samba/users
Конфигурирование Samba
Откройте файл конфигурации Samba и добавьте разделы:
sudo nano /etc/samba/smb.conf
/etc/samba/smb.conf
[users] path = /samba/users browseable = yes read only = no force create mode = 0660 force directory mode = 2770 valid users = @sambashare @sadmin [andreyex] path = /samba/andreyex browseable = no read only = no force create mode = 0660 force directory mode = 2770 valid users = andreyex @sadmin
Опции имеют следующие значения:
- [users] и [andreyex] – имена общих ресурсов, которые вы будете использовать при входе в систему.
- path – путь к общему ресурсу.
- browseable – должна ли акция быть указана в списке доступных акций. Установив no для других пользователей, не сможет увидеть общий ресурс.
- read only – могут ли пользователи, указанные в списке valid users, писать в этот общий ресурс.
- force create mode – устанавливает разрешения для вновь созданных файлов в этой общей папке.
- force directory mode – устанавливает разрешения для вновь созданных каталогов в этой общей папке.
- valid users – список пользователей и групп, которым разрешен доступ к общему ресурсу. Группы имеют префикс с символом @.
После этого перезапустите сервисы Samba:
sudo systemctl restart smb.service sudo systemctl restart nmb.service
В следующих разделах мы покажем вам, как подключиться к общему ресурсу Samba из клиентов Linux, macOS и Windows.
Пользователи Linux могут получить доступ к общему ресурсу samba из командной строки с помощью файлового менеджера или смонтировать общий ресурс Samba.
Использование клиента smbclient
smbclient это инструмент, который позволяет вам получить доступ к Samba из командной строки. Пакет smbclient не предустановлен на большинстве дистрибутивов Linux, так что вам нужно будет установить его с помощью менеджера пакетов распределения.
Для установки smbclient на Ubuntu и Debian, запустите:
sudo apt install smbclient
Для установки smbclient на CentOS и Fedora, выполните:
sudo yum install samba-client
Синтаксис для доступа к общему ресурсу Samba выглядит следующим образом:
mbclient //samba_hostname_or_server_ip/share_name -U username
Например, чтобы подключиться к общему ресурсу с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex, запустите
smbclient //213.159.209.228/andreyex -U andreyex
Вам будет предложено ввести пароль пользователя.
Enter WORKGROUP\andreyex's password:
После того, как вы введете пароль, вы войдете в интерфейс командной строки Samba.
Try "help" to get a list of possible commands. smb: \>
Монтирование общего ресурса Samba
Чтобы смонтировать общий ресурс Samba в Linux, сначала необходимо установить пакет cifs-utils.
На Ubuntu и Debian запустите:
sudo apt install cifs-utils
На CentOS и Fedora работают:
sudo yum install cifs-utils
Далее создайте точку монтирования:
sudo mkdir /mnt/smbmount
Смонтируйте общий ресурс с помощью следующей команды:
sudo mount -t cifs -o username=username //samba_hostname_or_server_ip/sharename /mnt/smbmount
Например, чтобы смонтировать общий ресурс с именем andreyex на сервере Samba с IP-адресом 213.159.209.228 от имени пользователя andreyex до точки монтирования /mnt/smbmount, запустите:
sudo mount -t cifs -o username=andreyex //213.159.209.228/andreyex /mnt/smbmount
Вам будет предложено ввести пароль пользователя.
Password for andreyex@//213.159.209.228/andreyex: ********
Использование GUI
Файлы, файловый менеджер по умолчанию в Gnome имеет встроенную опцию для доступа к общим ресурсам Samba.
- Откройте «Файлы» и нажмите «Другие места» на боковой панели.
- В поле «Подключение к серверу» введите адрес общей папки Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
- Нажмите «Подключиться» и появится следующий экран:
- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Файлы будут показаны на сервере Samba.
В macOS вы можете получить доступ к общим ресурсам Samba либо из командной строки, либо с помощью стандартного менеджера файлов MacOS Finder. Следующие шаги показывают, как получить доступ к общему ресурсу с помощью Finder.
- Откройте «Finder», выберите «Go» и нажмите «Connect To».
- В поле «Подключиться к» введите адрес общего ресурса Samba в следующем формате smb://samba_hostname_or_server_ip/sharename.
- Нажмите «Подключиться»
- Выберите «Зарегистрированный пользователь», введите имя пользователя и пароль Samba и нажмите «Подключиться».
- Файлы будут показаны на сервере Samba.
Подключение к общему ресурсу Samba из Windows
Пользователи Windows также могут подключаться к общему ресурсу Samba как из командной строки, так и из графического интерфейса. В приведенных ниже действиях показано, как получить доступ к общему ресурсу с помощью проводника Windows.
- Откройте проводник и в левой панели щелкните правой кнопкой мыши на «Мой компьютер».
- Выберите «Выбрать пользовательское сетевое расположение» и нажмите «Далее».
- В поле «Интернет или сетевой адрес» введите адрес общего ресурса Samba в следующем формате \\samba_hostname_or_server_ip\sharename.
- Нажмите «Далее», и вам будет предложено ввести учетные данные.
- В следующем окне вы можете ввести собственное имя для сетевого расположения. По умолчанию будет выбран сервер Samba.
- Нажмите «Далее», чтобы перейти к последнему экрану мастера настройки соединения.
- Нажмите «Готово», и файлы на сервере Samba будут показаны.
Заключение
Из этого руководства вы узнали, как установить сервер Samba в CentOS 7 и создать различные типы общих ресурсов и пользователей. Мы также показали, как подключиться к серверу Samba с устройств Linux, macOS и Windows.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
SAMBA 3 в Linux и Windows клиенты.
В этой статье я расскажу как настроить Samba 3.x без LDAP, AD и т.д. Для небольших компаний это идеальный вариант. Суть данного способа заключается в том что, User включив компьютер и при входе в систему Windows введя Login: ХХХХ и Password: XXXX может зайти на SMB сервер в ту папку, которую вы ему разрешите. Важно чтобы пользователь в виндозе был зареган с логином на латинском и паролем не менее 6 а лучше 12 символов.
1. Установка Лезем на офф сайт SAMBA и скачиваем последнюю версию дистрибутива. Копируем в папку где у нас на сервере лежат дистрибы, это как правило /usr/src Распаковываем
tar zxvf samba-3.x.tar.gz
Дальше как обыно:
./configure ./make ./make install
но для начала рекомендую: ./configure —help Для тех кто не любит заморачиваться с исходниками просто ставим rpm пакет либо используем самбу которая входит в дистриб. В CentOS, Mandriva и им подобные можно легко организовать это через приятный графический интерфейс, думаю сами разберётесь. 2. Настройка После установки нужно добавить необходимых пользователей в систему и в самбу, лучше всё это делать через консоль. Как добалять пользователей очень хорошо описано на ibm. com. # useradd user, где user это login пользователя Windows Задаём пароль этому пользователю. Важно чтобы пароль был такой же как при входе в Windows. # passwd user Далее добавляем этого же пользователя в Samba: # smbpasswd -a user (вас попросят ввести пароль два раза, вводим тот же что и в Windows). И включаем доступ пользователю user. smbpasswd -e user отредактируем /etc/samba/smb.conf я не буду описывать что значит каждый параметр, это вы можете найти на офф сайте, приведу свой конфиг. #===== Global Settings ========= [global]
workgroup = MYGROUP # рабочая группа server
string = Samba Server # имя сервера
security = share # аутентификация пользователей так как мы хотели;
hosts allow = 192.168.1. 192.168.2. 127. # эту строчку можно откоментровать и установить свои параметры если хотите разрешать доступ отдельным подсетям (стоит включить при использовании VPN).
; load printers = no # принтеры лучше выключить, т.к. у нас всё рано не будет пинтсервера, для этого есть апаратные решения.
; printcap name = /etc/printcap
; printcap name = lpstat
; printing = cups guest account = nobody # разрешаем гостям заходить на чай и кофе со своим печеньем ;)
log file = /var/log/samba.%m # говорим куда писать логи (кто, куда, зачем и что делал)
max log size = 500 # максимальный размер файла логов в kb.
socket options = TCP_NODELAY # в стандартном конфиге по моему нет, но лучше прописать. Параметр для оптимиации работы Самбы, проверено опытным путём.
; interfaces = 192.168.12.2/24 192.168.13.2/24 # те интерфейсы которые будем слущать, по умолчанию слушаются все, если хотите пропишите конкретные.
encrypt passwords = yes # поддержка шифрованых паролей
#========= Share Definitions =========== # Закоментированные параметры оставил в качестве примера как можно делать.
; [netlogon]
; comment = Network Logon Service
; path = /usr/local/samba/lib/netlogon
; guest ok = yes
; writable = no
; share modes = no
;[Profiles]
; path = /usr/local/samba/profiles
; browseable = no
; guest ok = yes ;[printers]
; comment = All Printers
; path = /var/spool/samba
; browseable = no
; guest ok = no
; writable = no
; printable = yes
;[tmp]
; comment = Temporary file space
; path = /tmp
; read only = no
; public = yes # Для группы пользователей staff group
;[public]
; comment = Public Stuff
; path = /home/samba
; public = yes
; writable = yes
; printable = no
; write list = @staff
;[fredsprn]
; comment = Fred's Printer
; valid users = fred
; path = /homes/fred
; printer = freds_printer
; public = no
; writable = no
; printable = yes
;[fredsdir]
; comment = Fred's Service
; path = /usr/somewhere/private
; valid users = fred
; public = no
; writable = yes
; printable = no
;[pchome]
; comment = PC Directories
; path = /usr/pc/%m
; public = no
; writable = yes
[public] path = /home/ftp public = yes
guest ok = no
writable = yes
printable = no
valid users = User @Groupp # доступна для пользователя User и группы Groupp
;
; path = /2/FISH/ok
; public = yes
; guest ok = yes
; writable = no
; printable = no
;[videofiles]
; path = /home/ftp/video
; public = no
; guest ok = yes
; writable = yes
; printable = no
;[sound]
; path = /home/ftp/unsorted/mp3
; public = no
; guest ok = yes
; writable = yes
; printable = no
;[myshare]
; comment = Mary's and Fred's stuff
; path = /usr/somewhere/shared
; valid users = mary fred
; public = no
; writable = yes
; printable = no
; create mask = 0765
Настройка закончена, сохраняемся и выходим. Делаем рестарт серверу самбы:
# /etc/rc.d/init.d/smb restart
В принципе всё. Те кто не хочет заморачиваться и исправлять в конфиге у себя каждый параметр, сохраните мой кофиг, скопируйте его в /etc/samba, добавьте необходимых пользователей и группы. перезапустите сервер. Поздравляю у Вас работает! P.S. Данный конфиг подходит и для версии 2.x.x
Samba
Samba
Настройка Samba
Используемая литература
1. Карла Шрёдер Рецепты Линукс
2. Статья в интернете SUSE + SAMBA = PDC
3. Руководство (manual) man smb.conf, man smbpasswd
Опробована на Mandriva 2006
Samba 3.0.20
Windows XP PRO SP2
Windows 2000 PRO SP2
Конфигурация smb.conf
[global]
dos charset = CP866
unix charset = KOI8-R
workgroup = SAMBA
netbios name = SAMBASERVER
server string = Samba Server %v
log level = 2
log file = /var/log/samba/log
max log size = 50
add machine script = /usr/sbin/adduser -n -g mach -c «Machine» -d /dev/null -s /bin/false %u
logon script = netlogon. bat
logon path =
logon home = «»
domain logons = Yes
os level = 64
preferred master = Yes
domain master = Yes
ldap ssl = no
idmap uid = 10000-20000
idmap gid = 10000-20000
hosts allow = 127., 192.168.7.
[netlogon]
path = /var/samba/netlogon
guest ok = Yes
browseable = No
Перегрузить samba
#service smb restart
Необходимо добавить root в smbpasswd
#smbpasswd -a root
пароль root можно сделать другим чем при входе в LINUX
подключение рабочей станции к домену производится от пользователя root (если заданы псевдонимы в smbusers то от них, в конфигурации нужно произвести изменения см. man smb.conf)
создать директорию netlogon
#mkdir -m 0775 /var/samba/netlogon
создать группу sadmins и присвоить ей GID=1000 (или другой запланированный)
groupadd -g 1000 sadmins
Задать владельца и группу-владельца директории netlogon
#chown root. sadmins /var/samba/netlogon
Создать пользователя user и присвоить ему GID=1000 (принадлежность группе sadmins), если нужно без домашней директории и без shell
#useradd -d /dev/null -s /bin/false -g 1000 user
если нужно заблокировать пароль
#passwd -l user
добавить в smbpasswd
#smbpasswd -a user
добавить в группу администраторы домена пользователя user
#net group modify ntgroup=»Domain Admins» unixgroup=sadmins
просмотреть
#net group modify list
удалить повторяющиеся
#net group cleanup
в результате в Windows в группе администраторы после подключения к домену появится группа SAMBA\Domain Admins, т.к. пользователь user входит в данную группу, он при входе в систему Windows будет иметь права администратора.
Строки
logon path =
logon home = «»
необходимы для того чтобы отключить перемещаемые профили, если windows все равно их запрашивает то в windows xp необходимо в меню пуск-выполнить набрать gpedit. msc, там перейти последовательно:
— политика локальный компьютер
— конфигурация компьютера
— административные шаблоны
— система
— профили пользователей
затем
— разрешать использование только локальных профилей — включить
Строка
add machine script = /usr/sbin/adduser -n -g mach -c «Machine» -d /dev/null -s /bin/false %u
необходима чтобы не заводить вручную бюджеты машин, они будут автоматически добавляться, взята из man smb.conf
idmap uid = 10000-20000
idmap gid = 10000-20000
из перевода smb.conf, который был вначале до его редактирования.
Опции для использования winbind. Winbind разрешает вам делать все аккаунты и аутентификацию с windows или windows контроллеров домена, создавая аккаунты на лету, и поддерживать windows RIDs в unix uid’s и gid’s. winbind uid и winbind gid единственные обязательные параметры. winbind gid существует в диапозоне uid’s winbind, которые могут использовать отображение RIDs в gid’s.
Узнать версию Samba
#smbclient -V
Можно еще усовершенствовать конфигурацию, для корпоративного использования этого не достаточно.
dos charset = CP866
unix charset = KOI8-R
Для того возможно, что если создаются перемещаемые профили, имеющие названия на русском, чтобы они в Mandriva(е) отображались не иероглифами, а в читаемом виде (возможно в других дистрибутивах изменять unix charset не нужно, по умолчанию UTF-8, dos charset = CP850 посмотреть можно через SWAT).
Настройка сервера Samba — www.cdt-s.com
user@user-desktop:~$ sudo mkdir -p /softvare/{microsoft,linux,virtual} /administ/{olek,andri,artur} /gest/{brochuras,vidios,fotos}
user@user-desktop:~$ sudo chmod 777 /home/user/gest/brochuras
user@user-desktop:~$ sudo chmod 777 /home/user/gest/fotos
user@user-desktop:~$ sudo chmod 777 /home/user/gest/vidios
user@user-desktop:~$ sudo chmod 700 /home/user/administ/olek
user@user-desktop:~$ sudo chmod 700 /home/user/administ/andri
user@user-desktop:~$ sudo chmod 700 /home/user/administ/artur
user@user-desktop:~$ sudo chmod 777 /home/user/softvare/linux
user@user-desktop:~$ sudo chmod 770 /home/user/softvare/microsoft
user@user-desktop:~$ sudo chmod 770 /home/user/softvare/virtual
user@user-desktop:~$ sudo adduser softvare
user@user-desktop:~$ sudo adduser microsoft
user@user-desktop:~$ sudo adduser linux
user@user-desktop:~$ sudo adduser virtual
user@user-desktop:~$ sudo adduser administ
user@user-desktop:~$ sudo adduser olek
user@user-desktop:~$ sudo adduser andri
user@user-desktop:~$ sudo adduser artur
user@user-desktop:~$ sudo adduser gest
user@user-desktop:~$ sudo adduser brochuras
user@user-desktop:~$ sudo adduser vidios
user@user-desktop:~$ sudo adduser fotos
user@user-desktop:~$ sudo chown arthur. arthur /administ/artur
user@user-desktop:~$ sudo chown arthur /administ/artur
user@user-desktop:~$ cat /etc/passwd
——————————
user@user-desktop:~$ sudo nano /etc/samba/smb.conf
………………………………………………………………………….
[softvare]
comment = softvare Folder
path = /home/softvare
valid users = @softvare
read only = No
create mask = 0770
browserable = no
[administ]
comment = administ Folder
path = /home/administ
valid users = @administ
read only = No
create mask = 0700
browserable = no
[gest]
comment = gest Folder
path = /home/gest
valid users = @gest
read only = No
create mask = 0777
browserable = no
——————————
user@user-desktop:~$ testparm
# para testar
———————————————————————————————————
Файл конфигурации Samba по умолчанию (/etc/samba/smb. conf)
позволяет пользователям просматривать свои домашние каталоги как
ресурсы Samba. Служба Samba также позволяет разделять все настроенные в
системе принтеры в виде общих принтеров Samba. Другими словами, вы
можете подключить к своему компьютеру принтер и печатать на нём, работая
в сети на компьютерах с Windows.
На сервере, предоставляющем
доступ к каталогам через Samba, должна работать служба smb.
Определите состояние демона Samba, выполнив следующую
команду:
Запустите демона с помощью следующей команды:
Остановите демона с помощью следующей команды:
Чтобы служба smb запускалась при загрузке,
выполните команду:
Определить службы, запускающиеся при загрузке системы, вы также
можете с помощью chkconfig, ntsysv или средства Настройка
служб (Services Configuration Tool). За подробностями обратитесь к
Поддержка
безопасности вашей системы Red Hat Linux чрезвычайно важна, и один из
способов её обеспечить — аккуратно управлять доступом к системым
службом. Иногда необходимо открыть доступ к некоторым службам вашей
системы (например, httpd, если у вас работает
веб-сервер). Однако, если вам не нужно предоставлять службу клиентам,
следует отключить её, чтобы уменьшить степень воздействия на систему
программ, эксплуатирующих возможные ошибки.
Существует
несколько различных способов управления доступом к системным службам.
Выбирайте подходящий способ, учитывая особенности службы, конфигурацию
системы и уровень ваших знаний Linux.
Самый простой способ запретить доступ к службе —
отключить её. Запускать и останавливать службы, управляемые xinetd, а также службы в иерархии /etc/rc.d/init.d (также называемые службами SysV)
можно с помощью трёх различных приложений:
Использовать эти средства проще, чем
альтернативный способ — редактировать множество ссылок, расположенных в
каталогах: /etc/rc.d вручную или изменять
файлы настроек xinetd в /etc/xinetd.d.
Другой способ управления доступом к системным службам —
использовать iptables для настройки
IP-брандмауэра. Если вы новичок в Linux, вам следует понять, что iptables может оказаться для вас не лучшим
решением. Настройка iptables может быть
непростой задачей, её лучше выполнять опытным системным администраторам
Linux.
С другой стороны, преимуществом использования iptables является гибкость. Например, если вам
нужны особые правила, разрешающие доступ определённых узлов к
определённым службам, вы сможете определить их в iptables.
Обратитесь к Справочному руководству по Red Hat
Enterprise Linux и Руководству по безопасности
Red Hat Enterprise Linux за дополнительной информацией об iptables.
Если же вам нужна утилита для назначения простых правил
доступа к вашему домашнему компьютеру и/или вы мало знакомы с Linux,
попробуйте средство Настройка уровня безопасности
(Security Level Configuration Tool) (system-config-securitylevel),
с помощью которого вы можете выбрать уровень безопасности для своей
системы, так же, как и в диалоге Настройка
брандмауэра (Firewall Configuration) во время установки системы.
За дополнительными сведениями обратитесь к главе
19 Основная настройка брандмауэра. Если вам нужны более
точные правила брандмауэра, обратитесь к разделу iptables
Справочного руководства по Red Hat Enterprise
Linux.
Для
того чтобы суметь правильно настроить доступ к службам, вы должны
понимать, что такое уровни выполнения Linux. Уровень выполнения — это
состояние или режим, который определяется
службами, перечисленными в каталоге /etc/rc.d/rc<x>.d, где <x> — номер уровня выполнения.
Существуют следующие уровни выполнения:
0 — Останов
1 — Режим одного
пользователя2 — Не используется (определяется
пользователем)3 — Полный многопользовательский режим
4
— Не используется (определяется пользователем)5 —
Полный многопользовательский режим (с графическим экраном входа в
систему)6 — Перезагрузка
Если вы
используете текстовый экран входа, вы работаете в уровне выполнения 3.
Если вы используете графический экран, вы работаете в уровне выполнения
5.
Уровень выполнения по умолчанию может быть изменён в файле
/etc/inittab, который содержит в начале
строку, подобную следующей:
Подставьте вместо числа в этой строке требуемый уровень выполнения.
Изменения не вступают в силу до перезапуска системы.
Чтобы изменить уровень выполнения немедленно, выполните
команду telinit, добавив номер уровня
выполнения. Чтобы использовать эту команду, вы должны быть пользователем
root. Команда telinit не меняет файл /etc/inittab, она меняет только текущий уровень
выполнения. После перезагрузки система по-прежнему будет загружать
уровень выполнения, указанный в файле /etc/inittab.
Тут просили опытом поделиться, как я создал файловый
сервер Samba с авторизацией в домене Windows NT 4.0 и раздаю права на
папки на уровне домена.
Что ж. Тогда сразу оговорюсь на чем делал я:
1. Домен Windows NT 4. 0
2. FreeBSD 5.2.1
3. Samba (исходники, в пекеджах не годятся) 2.2.8a (пробовал на ветке
3.х, работало, но были проблемы с выводом списка доменных пользователей и
груп).
И так приступим.
1. Установка
Распаковываем исходники Samba:
tar -zxvf samba-2.2.8a.tar.gz
Конфигурим (параметры для дальнейшей работы критичны!):
cd \samba-2.2.8a\source
configure —with-winbind —with-winbind-auth-challenge
—with-acl-support —with-syslog
Если хотите создавать дисковые квоты, то можно добавить —with-quotas,
но они не будут работать пока вы не перекомпилируете ядро с поддержкой
дисковых квот.
Ждем завершения.
Компилируем.
make
make modules
и инсталлируем
make install
2. Конфигурирование.
Для простоты привожу свой файл smb.conf:
#=======================
[global]
workgroup = FC
netbios name = SVALKA
server string = Garbage
hosts allow = 192.168.14. 192.168. 3. 192.168.17. 192.168.18. 127.
log file = /var/log/log.%m
max log size = 500
security = domain
password server = *
encrypt passwords = yes
socket options = TCP_NODELAY
local master = no
dns proxy = no
dos charset = CP866
display charset = CP866
delete readonly = yes
username map=/usr/local/samba/lib/smbusers
idmap uid=10000-20000
idmap gid=10000-20000
winbind enum users=yes
winbind enum groups=yes
#======== Share Definitions =======
[homes]
comment = Home Directories for %u
browseable = no
writeable = yes
valid users=’@FC\Domain Users’
create mask = 0775
[DiskQ]
comment = DiskQ (%u)
path = /home/mounted/diskq
browseable = no
public = no
writeable = yes
printable = no
valid users=’@FC\Domain Users’
create mask = 6777
directory mask = 6777
veto files = /*.avi/*.mp*/*.jpg/*.bmp/*.gif/*.wav/
[DiskK]
comment = DiskK (%u)
path = /home/diskk
browseable = no
public = no
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\CB_Group’,’@FC\TipaAdmin’
create mask = 0777
directory mask = 0777
[ForAdmins]
comment = Admins Share (%u)
path = /home/mounted/diskx
public = no
browseable = no
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\TipaAdmin’
create mask = 6775
directory mask = 6777
[odbarchive]
comment = CopyGarbage (%u)
path = /home/archive
public = no
browseable = yes
writeable = yes
printable = no
valid users=’@FC\Domain Admins’,’@FC\TipaAdmin’
create mask = 0775
directory mask = 0777
[Users]
comment = User Dir’s (%u)
path = /home/mounted/diskq/exchange/usersdir
public = yes
browseable = yes
writeable = yes
printable = no
valid users=’@FC\Domain Users’
create mask = 6777
directory mask = 6777
veto files = /*. avi/*.mp*/
#=======================
После изменения smb.conf можно попробовать зарегистрироваться в домене
Windows NT.
net join -U имя_администратора_домена
команда запросит у Вас пароль админа и должна ответить положительно.
Joined domain FC. (тут должен стоять Ваш домен)
Запускаем
winbind -d9
и контролируем его работу:
команда wbinfo -p должна вернуть:
‘ping’ to winbindd succeeded
команда wbinfo -t должна вернуть:
checking the trust secret via RPC calls succeeded
Если это не так, заглядываем в логи winbind и разбираемся в чем дело.
Копируем библиотеку libnss_winbind.so в каталог /lib:
cp nsswitch/libnss_winbind.so /lib
создаем символические ссылки на нее:
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.1
ln -s /lib/libnss_winbind.so /lib/libnss_winbind.so.2
Изменяем файл /etc/nsswitch.conf. Он должен содержать строки вида
passwd: files winbind
shadow: files
group: files winbind
Перезапустите winbindd.
Проверяем видимость доменных пользователей и груп:
winbind -u
winbind -g
Вы должны увидеть записи типа:
…..
FC\Username1
FC\User2
FC\Name3
….
Приставка домена с «\» обязательна — иначе нормальная
раздача прав Вам не светит!
3. Автозапуск файлового сервера
Теперь осталось настроить все для автоматического запуска сервера.
Можно запускать демонов самбы при запуске, но разумней (а возможно и
правильней) будет запускать сервисы по мере обращения к ним.
Соответственно мы получим запуск сервисов под учетными записями
пользователей в домене НТ.
Для это в /etc/inetd.conf добавляем (или исправляем):
netbios-ssn stream tcp nowait root /usr/local/samba/sbin/smbd
netbios-ns dgram udp wait root /usr/local/samba/sbin/nmb
А в /etc/rc.local:
/usr/local/samba/sbin/winbindd -B
Кстати если запускать не от рута, то ничего не работает. Почему?
После чего соединяемся с ресурсом со станции Windows уже зашедшего
пользователя домена НТ и делаем на Юниксе команду
top
Вот приблизительній результат:
last pid: 69416; load averages: 0. 08, 0.03, 0.01 up 22+02:29:33
14:08:54
115 processes: 1 running, 114 sleeping
CPU states: 0.0% user, 0.0% nice, 0.0% system, 0.0% interrupt, 0.0%
idle
Mem: 125M Active, 232M Inact, 97M Wired, 28M Cache, 60M Buf, 15M Free
Swap: 1024M Total, 100K Used, 1024M Free
Order to sort: tal, 100K Used, 1024M Free
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
390 root 96 0 23572K 20200K select 8:54 0.20% 0.20% winbin
54341 FC\JackSoft 96 0 13712K 9040K select 1:16 0.00% 0.00% smbd
397 root -8 0 7036K 3408K piperd 0:16 0.00% 0.00% winbin
68680 FC\SurgkoAN 96 0 8924K 4072K select 0:03 0.00% 0.00% smbd
Если есть такая картина и юзер зашел! Идем пить пиво!
4. Раздача прав на папки.
Тут все просто. Раздавайте себе права на уровне Юникса, но
прописывайте сразу доменных юзеров и группы. Например,
chown FC\JackSoft DiskK
chown :FC\Domain Admins ForAdmins
и т.д.
5. Квотирование диска.
Квоты раздаются на уровне ОС FreeBSD в файле /etc/fstab:
# Device Mountpoint FStype Options Dump Pass#
/dev/ad0s1b none swap sw 0 0
/dev/ad0s1a / ufs rw 1 1
/dev/ad0s1f /home ufs rw,userquota,groupquota
/dev/ad0s1e /usr ufs rw 2 2
/dev/ad0s1d /var ufs rw 2 2
/dev/acd0 /cdrom cd9660 ro,noauto 0 0
/dev/ad2s1d /home/mounted/diskq ufs rw,userquota,groupquota
/dev/ad2s1e /home/mounted/diskx ufs rw,userquota,groupquota
проверяем работает ли квота:
quota -v
, а уже потом создаются/меняются для группы и ли пользователя:
edquota FC\JackSoft
man edquota
редактируем тектстовый файл и записываем его.
Все квота изменена.
P.S. Установленная система так работает уже пол-года. Скорость
файлового сервера на
Все будет Samba!
Сергей Ефремов, Издательский
Дом «Комиздат»
У многих начинающих администраторов ОС Linux
возникают те или иные проблемы при настройке и запуске в эксплуатацию
системы Samba. Правильно настроенный пакет позволит избежать головной
боли в дальнейшем. Итак, начнем…
Лучше день потерять,
зато за десять минут
долететь…
(с) Крылья, ноги и хвост
Зачем нужна Samba
Эта служба предоставляет ряд возможностей:
- разделение файловых систем Linux операционными системами Windows
9x/NT; - разделение файловых систем Windows 9x/NT операционной системой
Linux; - совместное использование принтеров, подключенных к системе Linux,
операционными системами Windows 9x/NT; - совместное использование принтеров, подключенных к Windows 9x/NT,
операционной системой Linux; - организации системы доменов для клиентов под управлением ОС Windows.
Samba представляет собой протокол, используемый
Microsoft для разделения файлов и служб печати. Этот протокол был
разработан в 1987 году и позже перенесен на платформы Linux Эндрю
Триджеллом (Andrew Tridgell). Официальный сайт Samba, тут вы всегда найдете
интересующую вас информацию и новые версии пакета.
Что нам надо для счастья
- Операционная система Red Hat Linux 7.2 — на мой взгляд, этот релиз, хоть
он и не самый новый, наиболее оптимален для серверов. - Стабильная версия Samba
— например, версия 2.2.5, пакет samba-2.2.5.tar.gz. - Компилятор зыка С — gcc (рекомендую установить версию gcc 3.1).
- Патч Network Recycle Bin, разработанный в Amherst
College. Как видно из названия, этот пачт позволит расширить стандартную
функциональность поддержкой корзины для удаленных файлов на сетевых
дисках. - Ну и конечно — физический или виртуальный сервер, на который мы
будем устанавливать программу (в моем случае это был Dual PIIIs 866,
512M ECC, SCSI RAID Mylex170, 4 HDD SCSI IBM 18G в RAID5, Teckram 390U +
SCSI 18G Seagate).
Организация дисковых разделов
Для нормального функционирования системы в процессе
эксплуатации нужно заранее определиться с дисковыми разделами, на
которых будет устроен файловый сервер. Для примера я организовал
дисковое пространство следующим образом:
/boot | 100M | Загрузочный раздел |
/ | 3.5G | Корень системы с не выделенным /home /usr |
/tmp | 2G | Раздел для временных файлов |
swap | 1G | Раздел виртуальной памяти |
/var | 6G | Раздел для рабочих данных системных программ и ведения логических журналов программ |
/install | 5.3G | Раздел с инсталляционным ПО и драйверами для машин пользователей |
/FileServer | 40. 6G | Раздел файлового сервера |
/Vol | 17G | Раздел хранения в архивном виде данных пользователей |
Не выделяю отдельно Home, поскольку для задач
пользователей предоставление каждому пользователю отдельного домашнего
каталога совершенно не нужно. Это связано с тем, что работа организована
по отделам,- и, соответственно, пользователи одного отдела должны иметь
доступ к файлам друг друга, для хранения же прочей информации каждый
пользователь использует локальный жесткий диск.
Установка
Все операции проводим под авторизацией root (администратора системы).
Распакуем пакет samba-2.2.5.tar.gz в каталог /usr/src/redhat/SOURCES:
# cat samba-2.2.5.tar.gz | gzip -d | tar xvpf -
Теперь установим поддержку «сетевой корзины». Зачем
нужна «сетевая корзина»? Все операционные системы, имеющие GUI,
предоставляют пользователям (в той или иной мере) так называемую
«корзину», которая служит для временного хранения файлов, удаленных
пользователем на своей рабочей станции. При работе в сети эти функции
обычно недоступны для сетевых ресурсов, поэтому администраторам системы
приходиться делать периодический BackUp файлов пользователей. Но это
перестает быть эффективным, если удаленный файл не был сохранен с
помощью программ, организующих BackUp. Именно для такого случая и нужна
«сетевая корзина».
Еще одно ее достоинство — возможность восстановления
предыдущей версии файла пользователем самостоятельно, без привлечения
администратора сети. Но здесь сразу же стоит сделать некоторые
замечания:
- «сетевая корзина» — это обычная папка, которую можно размещать
как на текущем (классический вид), так и на специализированном ресурсе.
Причем в последнем случае на этом же диске могут находиться и корзины
других пользователей — в виде так называемого Online Backup ресурса; - по умолчанию в патче атрибуты доступа на корзину — 0700. То есть в
эту папку может зайти и что-либо с ней делать только владелец этого
ресурса. Это не вызывает проблем, если пользователь использует сетевой
ресурс один,- но обычно одним ресурсом пользуется несколько
пользователей, и в этом случае возникает ситуация, когда только один
пользователь может удалять файлы. Для решения этой проблемы предлагаю в
файле reply.c.patch изменить строку №15 с «+ int dir_mask=0700;» на «+
int dir_mask=0777;» — это позволит всем пользователям данного ресурса
корректно работать с данной папкой; - если в системе используются квоты (quota), то их установки влияют и
на корзину — так что при расчете квот нужно учитывать этот момент; - в ходе эксплуатации была обнаружена проблема, заключающаяся в том,
что, если в конфигурационном файле указать полный, а не относительный
путь к корзине на ресурсе, то при попытке пользователя удалить файл в
корзине происходило следующее: файл не удалялся, а переименовывался по
формату «имя файла. (Copy #N).расширение» (где N — номер файла с
одинаковыми именами). То есть срабатывал алгоритм, по условиям которого,
если файл с определенным именем есть в корзине, то происходит не замена
старого файла новым, а добавление дополнительного суффикса и
инкрементация его номера. Для решения данной проблемы необходимо в файле
reply. c.patch изменить строку № 38 с «+ if (strcmp (fname,bin)){» на «+
if (access (bin, F_OK)!=-1) {«.
По окончанию описанных мероприятий переходим к
компиляции пакета и его установке, для чего устанавливаем патч:
# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/include/proto.h
/usr/src/readhat/SOURCES/proto.h.patch# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/param/loadparm.c
/usr/src/readhat/SOURCES/loadparm.c.patch# patch /usr/src/redhat/SOURCES
/samba-2.2.5/source/smbd/reply.c
/usr/src/readhat/SOURCES/reply.h.patch
И выполняем конфигурацию пакета инсталляции (полный
перечень всех параметров можно получить по команде./configure —help):
# cd /usr/src/redhat/SOURCES/samba-2.2.5/source
# ./configure --prefix=/usr --with-quota
--with-smbmount --with-msdfs
--with-privatedir=/etc/samba
--with-configdir=/etc/samba
--with-lockdir=/var/lock/samba
--with-piddir=/var/run/samba
--with-logfilebasedir=/var/log/samba
Этим мы дали команду включить в сборку smbmount,
который служит для монтирования SMB-ресурсов в файловую структуру Linux,
включили поддержку квот (quota), а также поддержку Microsoft DFS, и
приказали устанавливаться в каталог /usr;
# make; make install
копируем файл smb. init:
# cp /usr/packaging/RedHat/smb.init /etc/init.d/smb
делаем симлинк на это файл (чтобы при старте сервера у нас всегда
запускалась служба):
# ln -s /etc/init.d/smb /etc/rc3.d/S99samba
и, на всякий случай,- для init 5:
# ln -s /etc/init.d/smb /etc/rc5.d/S99samba
В результате получаем установленный пакет. Начинаем
его настраивать. Основной файл конфигурации и файл паролей пользователей
будет находиться в /etc/samba.
Приступаем к настройке
Для начала определимся со структурой каталогов на разделе /FileServer
— для примера рассмотрим такой вариант:
/FileServer/etc | Папка будет содержать файлы конфигурации Samba |
/FileServer/netlogon | Папка для скриптов входа в домен |
/FileServer/otdel_1 | Папка 1 отдела |
/FileServer/otdel_N | Папка N отдела |
/FileServer/Public | Общий для всех отделов ресурс |
Соответственно, в основном файле конфигурации /etc/samba/smb. conf
прописываем:
include=/FileServer/etc/smb.global
include=/FileServer/etc/%U.conf
— то есть мы будет управлять каждым пользователем
отдельно. Такое управление выбрано как более гибкое, нежели управление
группами пользователей, потому что оно позволяет более жестко
контролировать отдельных пользователей в случае необходимости в таком
контроле. В обычный ситуации я создаю один конфигурационный файл для
всей группы, а для отдельных пользователей делаю на него symlink
(«мягкую» ссылку на файл) по имени пользователя.
При этом не забываем следить, чтобы все указанные в
конфигурационных файлах каталоги и файлы существовали и имели правильные
права. То есть после создания папок на разделе файл-сервера нужно
установить на них атрибуты доступа для пользователей:
# chmod 777 /FileServer/otdel*
# chmod 777 /FileServer/Public*
Теперь сформируем файл /FileServer/etc/smb.global:
[global]
null passwords = false
workgroup=MY_DOMAIN
netbios name=MyServ
server string=File Server
character set=KOI8-R
client code page=866
unix password sync = yes
passwd chat = *new*password* %n\n *new*password*
%n\n *success*
passwd program = /usr/bin/passwd %u
interfaces=eth0
bind interfaces only=True
hosts deny=ALL
hosts allow=192. 168.0.0/255.255.0.0 127.0.0.1
protocol=NT1
security=domain
encrypt passwords=yes
lm interval=0
oplocks=False
level2 oplocks=Nosyslog=1
wins support=Yes
domain master=Yes
local master=Yes
preferred master=Yes
os level=255
log level=0
log file=/dev/null
domain logons=yes
logon script=%U.bat
create mask=0666
directory mask=0777
security mask=0777
force create mode=0777
nt acl support =yes
socket options =SO_KEEPALIVE SO_BROADCAST
TCP_NODELAY
SO_RCVBUF=4096 SO_SNDBUF=4096
domain admin group = root
add user script = /usr/sbin/useradd -d
/dev/null -g
machines -s /bin/false -M %u
logon path = \%L\Profiles\%U[Profiles]
path = /var/lib/samba/profiles
browseable = no
read only = no
create mask = 0600
directory mask = 0700
Проведем анализ — что же мы тут написали. Как видим, у
нас есть два раздела: [global] и [Profiles] — первый отвечает за
информацию непосредственно о сервере и общих настройках, а второй
описывает каталог, в котором будут храниться профили пользователей на
сервере. Соответственно, каталог /var/lib/samba/profiles должен
существовать — и при этом права доступа должны разрешать писать туда
всем (# chmod 777 /var/lib/samba/profiles).
Раздел [global] — главные моменты:
workgroup | Название домена, в котором участвует сервер |
netbios name | Как будет откликаться сервер по NetBIOS-протоколу. Не делайте его таким же, как и имя рабочей группы! |
hosts allow | Список сетей, которым разрешен доступ к серверу |
interfaces | Список сетевых интерфейсов, которым разрешен доступ к серверу |
security | Говорит, какой будет аутентификация |
encrypt passwords | Разрешаем шифрованные пароли |
local master | Samba сразу берет на себя роль мастер-браузера |
preferred master | При запуске устраивает перевыборы с наибольшим шансом для себя |
wins support | Запускаем wins-сервер |
os level | Уровень ОС. Чем выше номер, тем выше вероятность стать главным браузером сети |
domain logons | Разрешаем подсоединения в режиме домена |
logon script | Скрипт, который выполнится при входе в домен |
domain admin group | Какой пользователь может добавлять машины и пользователей в домен |
add user script | Позволяет samba работать как PDC Windows, то есть добавляет имя машины в список зарегистрированных в домене |
Более подробную информацию по командам конфигурации
samba можно получить с помощью # man smb.conf.
Следующим этапом мы создадим файл smb.netlogon со таким содержимым:
[netlogon]
path=/FileServer/netlogon
writeable=no
guest ok=no
browsable=no
available=yes
Здесь описывается «шара» (сетевой ресурс) для
возможности выполнения скрипта при входе в домен.
И последний штрих — пример файла конфигурации для
пользователя user, принадлежащего к отделу № 1, файл user.conf:
include=/FileServer/etc/smb.global
include=/FileServer/etc/smb.netlogon[Otdel]
path=/FileServer/otdel_1
comment=Информация отдела
browsable=yes
available=yes
writeable=yes
recycle bin=/FileServer/otdel_1/.recycled
mangled names=no
directory mask=0777
create mask=0666
fstype=NTFS[Public]
path=/FileServer/Public
comment=Общая информация
browsable=yes
available=yes
writeable=yes
mangled names=no
directory mask=0777
create mask=0666
fstype=NTFS[Inst_Prog]
path=/install
comment=Инсталяционное ПО
browsable=yes
available=yes
writeable=no
mangled names=no
fstype=NTFS[HP_5000]
printer=lp
comment = Queue for HP LaserJet 5000
browseable = yes
printable = yes
public = yes
writable = no
create mode = 0700
Проанализируем, что получилось. Итак, у нас есть
четыре сетевых ресурса, три из них — это дисковые пространства, а
последний — очередь на сетевой принтер. Параметр printer=lp дает нам
ссылку на имя очереди принтера, который предварительно был установлен в
системе и получил имя lp. Менеджер управления принтерами вызывается с
помощью команды:
# /usr/bin/redhat-config-printer
Ресурс [Inst_Prog] предоставляет пользователям
возможность получить доступ к инсталляционным пакетам программ и
драйверам в режиме «только чтение».
Ресурс [Otdel] — это папка отдела, к которому
принадлежит пользователь; при описании этого ресурса была использована
команда для организации на этом ресурсе «сетевой корзины» (recycle
bin=/FileServer/otdel_1/.recycled). Как видно из синтаксиса команды, мы
можем указать в качестве корзины как полный путь, так и относительный
(например: recycle bin=.recycled). При использовании относительного пути
в качестве базы для имени будет использован путь к сетевому ресурсу, в
котором и описано правило по использованию «сетевой корзины».
Следующим шагом будет написание файла скрипта,
который будет выполняться при входе в домен,- обычно в этом файле
производят подключение сетевых ресурсов и синхронизацию времени, хотя
можно выполнять и другие задачи (например, запуск на рабочей станции
программы удаленного администрирования — Remote Admin).
Скрипт /FileServer/netlogon/user.bat:
@echo off
net use h: \MyServ\Otdel
net use i: \MyServ\Public
net use k: \MyServ\Inst_Prog
net time \MyServ /SET /YES
Здесь следует обратить внимание на одну деталь,
связанную с кодовыми таблицами Windows и Linux: созданный в Linux файл
для операционной системы выглядит как одна строка и, соответственно,
написанные нами команды выполняться не будут. Чтобы обойти эту проблему,
воспользуемся программой конвертации файлов из кодовой системы
Linux/Unix в DOS/Windows:
# unix2dos /FileServer/netlogon/user.bat
На выходе получим файл в кодировке DOS, который ОС
Windows сможет правильно интерпретировать.
Нам осталось сделать еще одну маленькую операцию — и
можно будет переходить к тестированию наших настроек.
В процессе эксплуатации «сетевая корзина» будет
заполняться данными, и нам нужно предусмотреть вариант переполнения
корзины и — как следствие — исчерпание дискового пространства,
предоставленного пользователю на сетевом ресурсе.
Для решения этой задачи создадим скрипт
clear_recycled, который поместим в каталог /etc/cron.daily. Это позволит
выполнять скрипту каждую ночь и выполнять запланированные нами действия
над «сетевой корзиной». В тело скрипта поместим следующие строки:
#del after 1 day recycled file
find /FileServer/otdel*/.recycled -type f -atime +1
-exec rm {} \; >& /dev/null
Приведенный скрипт просматривает во всех папках
отделов «сетевую корзину» — и файлы, которые были помещены туда более
одного дня назад, будут удалены. Параметр, отвечающий за данную опцию,-
-atime +1. Здесь вы можете указать любое нужное количество дней. (Более
подробно о возможностях команды find смотрите: man find.)
Графический интерфейс управления Samba
Этот интерфейс называется swat, он является так
называемым веб-интерфейсом (то есть его можно использовать на любом
компьютере, имеющем веб-браузер). Для активации доступа к этой службе
необходимо создать в каталоге /etc/xinetd.d файл swat следующего
содержания:
service swat
{
port = 901
socket-type = stream
wait = no
only_from = <IP адрес рабочей станции
администратора>
user = root
server = /usr/bin/swat
log_on_failure += USERID
disable = no
}
После этого перезапускаем службу xinetd:
# /etc/init.d/xinetd restart
Теперь, если в браузере на рабочей станции
администратора набрать: http://192.168.0.1:901 — получим графический
интерфейс управления пакетом.
Прежде чем начать непосредственное тестирование
установленного пакета, необходимо выполнить следующие операции:
пользователи:
# groupadd otdel_1
. ..
# groupadd otdel_N
пользователей (необходимо для ОС Windows 2000/XP/2003 Server):
# groupadd -g 9999 machines
добавления имен машин в наш домен:
useradd -d /dev/null -c "User PC"
-g machines -s /bin/false
-M $1
passwd -l $1
smbpasswd -a -t $1
В качестве параметра нашему скрипту передается имя
компьютера с добавленным в конце знаком $. Например, для нашего
пользователя user имя его ПК — otdel_n1_user:
# /usr/bin/machine_add "otdel_n1_user$"
своим группам:
# useradd -c "Фамилия Имя Отчество" -g otdel_1 -s
/bin/false user
samba:
# smbpasswd -a user
— с вводом ему первичного пароля. После входа в сеть
пользователь на рабочей станции может самостоятельно сменить себе пароль
— причем, тот должен будет удовлетворять двум условиям: не быть
«пустым» и иметь длину не менее 6-ти символов. Эти условия
контролируются Samba и при их нарушении смена пароля не будет допущена.
Теперь мы можем проверить работоспособность установленного пакета.
Для этого выполним следующий скрипт:
# /etc/init.d/smb start
Проверяем, что демон действительно работает:
# /etc/ini.d/smb status
В результате мы должны получить нечто вроде этого:
smbd (pid 1488) выполняется...
nmbd (pid 1492) выполняется...
Переходим к проверке доступности ресурсов для
пользователей (на примере пользователя user):
# smbclient -L MyServ -U user
added interface ip=192.168.0.2 bcast=192.168.0.255
nmask=255.255.255.0
Got a positive name query response from 192.168.0.1
(192.168.0.1)
Domain=[MY_DOMAIN] OS=[Unix] Server=[Samba 2. 2.5]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server)
ADMIN$ Disk IPC Service (Samba Server)
Otdel Disk Информация отдела
Public Disk Общая информация
Inst_Prog Disk Инсталяционное ПО
HP_5000 Printer Queue for HP LaserJet 5000
Server Comment
--------- -------
MyServ File Server
Workgroup Master
--------- -------
MY_DOMAIN MyServ
Как видно из полученного сообщения, все прошло удачно
и при обращении к samba server пользователь получил свои ресурсы.
Настройка Windows-клиента
Прежде чем ввести компьютер в созданный домен,
необходимо (для ОС Windows 2000/XP/2003 Server) изменить параметры входа
в домен. Под этим подразумевается, что мы отключим некоторые ключи,
использующиеся для задания специального доверительного общения между
доменом, сделанным на базе ОС Windows, и Windows-клиентом. Для упрощения
этого процесса создадим файл domain_fix. reg следующего содержания:
REGEDIT4[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\Netlogon\Parameters]
"requiresignorseal"=dword:00000000
"requirestrongkey"=dword:00000000
"sealsecurechannel"=dword:00000001
"signsecurechannel"=dword:00000001
Следующим шагом будет ввод ПК в домен.
Для ОС Windows 9x все очень просто — необходимо в
Свойствах сети выбрать службу Microsoft и в ее свойствах указать, что
рабочая станция подключается в домен, и указать также его имя.
Для Windows 2000/XP/2003 Server нужно вызвать вкладку
Свойства на Мой компьютер — и выбрать вкладку Имя компьютера. Далее —
команда Изменить (см. рис. 2).
После этого ОС просмотрит текущую сеть на предмет
наличия домена. Если тот будет найден, появится диалоговое окно, в
котором вы (в качестве пользователя) должны указать логин пользователя,
имеющего права для ввода рабочей станции в домен (в нашем случае, и по
умолчанию, это root), и указать его пароль. После того как система
сообщит о вводе рабочей станции в домен, она предложит перезагрузиться.
Здесь мы можем пойти по двум направлениям — имеется
ввиду, что нашему пользователю можно оставить «обычные права», а можно
задать специальные.
Если мы выбираем первый вариант, можно перегрузить
систему и при загрузке просто указать имя пользователя и домен, с
которого будем загружаться. Или же можем добавить пользователя через
Панель управления > Администрирование > Управление
компьютером > Локальные пользователи > Пользователи (создаем
нового пользователя с указанием того, в каком домене он будет проходит
аутентификацию и к какой группе будет принадлежать — например,
Администраторы).
После входа пользователя в домен выполняется скрипт входа в домен, в
нашем примере, подключаются сетевые диски и происходит синхронизация
времени рабочей станции и сервера.
Выводы
Как видим, процесс настройки пакета достаточно сложен
и трудоемок, зато в таком разрезе проходит только один раз —
обслуживание уже настроенного пакета не вызывает никаких трудностей.
Управление пользователями и их ресурсами достаточно прозрачно, и
процессы добавления, изменения или удаления пользователя или ресурса
занимают очень мало времени — буквально пару минут.
Kонфигурация Samba сервера.
автор: Eric Seigne.
Резюме:
Здесь я попробую рассказать вам о том, что надо сделать, для того
чтобы,
использовать linux-samba сервер в качестве контролера домена для Windows
сети.
Также будет рассмотрено управление пользователями и профилями. Этот
документ
относиться к Debian CNU/Linux 2.2 так что ваш smb.conf может отличаться в
зависимости от дистрибутива. Для написания статьи использовалась samba 2.0.7
Инсталяция Samba
Будем считать что вы немного знакомы с samba и он установлен на вашем
сервере. Если это не так, то для быстрой установки попробуйте:
Debian:
apt-get install samba
RedHat(Mandrake): rpm -vih
/mnt/cdrom/RedHat(Mandrake)/RPMS/samba*
Файл конфигурации: основные параметры
Samba использует свой собственный файл конфигурации который состоит
из
секций, таких как приведенная ниже [global] и [tmp].
Файл настройки только для samba! |
<минимальный smb.conf file> |
Если вы запустите samba с этим конфигом, то все windows машины в
вашей
локальной сети смогут увидеть в своем сетевом окружении машину, которая
называется так же как ваш linux сервер и которая имеет разделяемый
ресурс tmp, в
который для всех разрешена запись.
Внимание: когда вы изменяете ваш конфигурационный файл, вы должны
перезапустить samba командой/etc/init.d/samba restart script (для
debian)
Файл конфигурации, идем дальше
Давайте рассмотрим следующие параметры:
- Секция [global]
- netbios name:
Netbios имя вашего сервера (то имя,
которое вы
увидите в сетевом окружении вашей windows машины), если не сделаете
этого,
то будет использовано имя сервера (hostname). - invalid users:
Список пользователей которым
запрещен доступ,
например «root» рекомендуется включить в этот список. - interfaces:
Если машина имеет несколько сетевых
интерфейсов,
то нужно указать какой необходимо использовать samba серверу. - security:
Выбор режима безопасности, при
security=user каждый
пользователь должен иметь учетную запись (account) на GNU/Linux
сервере,
если вы хотите что бы samba сервер управлял доступом и
пользователями, то
используйте security=share. - workgroup:
Рабочая группа. - server string:
Описание вашего компьютера. - socket options:
Опции сокета, с их помощью можно
(и нужно)
оптимизировать работу samba. - encrypt passwords:
Должны ли вы использовать
зашифрованные
пароли? Это важно знать, потому, что каждая версия windows (почти)
использует различные схемы авторизации. - wins support:
Должен ли ваш сервер быть wins
сервером? - os level:
Определяет шансы samba сервера стать
local
mastero`ом для своей рабочей группы (чем выше значение тем меньше у
конкурирующего сервера шансов). - domain master:
Работать как domain master. - local master:
Как local master. - preferred master:
Это опция вместе с domain
master = yes
практически гарантирует, что ваш samba сервер станет domain
master`ом - domain logons:
Тrue если хотите чтобы samba
выполняла функции
ПЕРВИЧНОГО КОНТРОЛЕРА ДОМЕНА (PDC), для дополнительной информации по
этому
вопросу прочтите Samba-PDC-HOWTO. - logon script:
Скрипт, который выполняется, когда
пользователь
успешно логиниться. - logon path:
Путь для скриптов. - logon home:
Тут храним профили юзеров. - name resolve order:
Порядок разрешения имен. - dns proxy:
Будем ли работать как DNS прокси? - preserve case:
- short preserve case:
Эти два параметра решают
вопросы
связанные со строчными и заглавными буквами (как известно в Unix
ситемах это
разные буквы а в Windows — одинаковые) . - unix password sync:
Будет ли samba
синхронизировать Unix и
Samba пароли ? - passwd program:
Программа для синхронизации
паролей. - passwd chat:
«Чат» протокол для смены пароля. - max log size:
Максимальный размер для лог файла.
- netbios name:
- Section [netlogon]
Описываем ресурс netlogon.
- Section [profiles]
Ресурс profiles.
- Section [homes]
Здесь home директории для каждого
пользователя.
Переменные
Переменная | Описание |
Переменные клиента | |
%a | Архитектура клиента Например: Win95, WinNT, Samba . .. |
%I | IP адрес клиента |
%m | NETBIOS имя клиента |
%M | DNS имя клиента |
Переменные пользователя | |
%g | первичная группа |
%H | домашняя директория |
%u | имя юзера |
Переменные расшаренных ресурсов | |
%P | Корневая папка ресурса |
%S | Имя ресурса |
Переменные сервера | |
%h | DNS имя |
%L | NETBIOS имя |
%v | версия Samba |
Другое | |
%T | Текущая дата и время |
Пример использования переменных: в сети где есть windows 3.11 и
windows 98 вы
можете создать 2 конфигурационных файла, по 1 для каждой системы
используя
переменную %a.
Итак: наш конфиг файл
<smb.conf file>
[global]
printing =
bsd
printcap name = /etc/printcap
load printers = yes
guest
account =
nobody
invalid users = root
; указываем netbios имя
netbios
name =
pantoufle
; и подсеть в которой работаем
interfaces =
192. 168.0.1/255.255.255.0
; режим user подразумевает что каждый
пользователь имеет учетную запись на unix сервере
security = user
;
рабочая группа
workgroup = rycks
; описание компьютера
; %h —
DNS имя
сервера, %v версия samba
server string = %h server (Samba %v)
;
samba
ведет свои собственные логи
syslog only = no
syslog = 0;
;
оптимизация соединений
socket options = IPTOS_LOWDELAY TCP_NODELAY
\
SO_SNDBUF=4096 SO_RCVBUF=4096
; используем зашифрованные
пароли !!!!
для этого нужно пропатчить w95 и NT4
encrypt passwords = yes
;
Wins
сервер позволяет использовать разделяемые ресуры нескольких подсетей
wins
support = yes
; OS level. См. выше
os level = 34
;
управление
доменом
local master = yes
preferred master = yes
;
уравление
входом в домен
domain logons = yes
; скрипт выполняемый при
коннекте
клиента (на машине клиента)
logon script = %g. bat
; директория для
скриптов
logon path=\\%L\netlogon
; здесь храним профили
logon
home=\\%L\%U\winprofile
; в этом порядке идет поиск имен
;
ВНИМАНИЕ:
bcast в конце в отличии от windows
name resolve order = lmhosts host
wins
bcast
; работа DNS proxy
dns proxy = no
; регистр букв
!!!!
preserve case = yes
short preserve case = yes
;
синхронизация
samba и unix паролей
unix password sync = yes
; способ
синхронизации
passwd program = /usr/bin/passwd %u
passwd chat =
*Enter\snew\sUNIX\spassword:* \
%n\n *Retype\snew\sUNIX\spassword:*
%n\n
.
; максимальный размер логфайла (строк)
max log size = 1000
;
tine сервер
; сихронизировать будем с помощью .bat файла
time
server =
yes
; ресурс netlogon используется только во время установки
соединения
; поэтому нет необходимости делать его публичным
[netlogon]
path
=
/home/netlogon/%g
public = no
writeable = no
browseable = no
;
каждому клиенту по собственной директории
[homes]
path =
/home/%user
comment = Home Directories
browseable = no
read
only =
no
create mask = 0700
directory mask = 0700
; для удобства
можно
расшарить и FTP
; чтобы доступ осуществлялся не только с помощью FTP
клиента
[ftp]
path = /home/ftp/pub
public = yes
printable = no
guest
ok
= yes
; tmp
[tmp]
path = /tmp
public = yes
printable
=
no
guest ok = yes
writable = yes
; tmp для отдельных юзеров
[bigtemp]
path = /home/bigtemp
public = yes
printable = no
guest
ok = yes
valid users = erics
writable = yes
</smb. conf
file>
Что же должно быть на сервере ?
На сервере мы должны иметь:
- учетные записи для каждого клиента (account)
- smb.conf файл
- директорию /home/netlogon (в моем примере)
- .bat файл для каждого пользователя и группы (примеры см.
ниже) - файл CONFIG.POL для осуществления вашей политики безопасности
(в
директории /home/netlogon). - для создания файла config.pol понадобится poledit.exe.
<file /home/netlogon/admin.bat> <file /home/netlogon/teachers/teachers.bat> <file /home/netlogon/pupils/pupils. bat> <file /home/netlogon/teachers/teachers.reg> <file /home/netlogon/pupils/pupils.reg> |
Эти файлы позволяют при загрузке автоматически подключать
персональный ресурс
как диск P:\ и tmp ресурс как диск T:\ . Так же происходит синхронизация
времени.
ВНИМАНИЕ: .bat файл должен быть в так называемом «DOS mode» (т.е.
иметь все
символы из DOS кодировки), для этого лучше всего создавайте его в
блокноте
(notepad) .
Defining the system security policy (C) (TM) (R)
Безопасночть в Windows почти возможна используя контролеры доменов. |
Этот заголовок взят из документации MS :o).
Итак для воплощения в жизнь вашей политики безопасности (еще я думаю
подойдет
термин настройки системы), например для запрета запуска утилиты regedit,
DOS
программ и т.д., вам необходимо использовать программу POLEDIT из
дистрибутива
поставки Windows 98 .
Запускайте poledit, читайте документацию, пробуйте: но эта статья не
об
этом.
Итак, когда ваш .POL файл создан, скопируйте его в директорию ресурса
[netlogon].
ВНИМАНИЕ: Для Win9X клиентов настройки должны быть в файле
CONFIG.POL
… для WindowsNT он должен иметь другое имя, но я не знаю какое так как
ей не
полюзуюсь:( И пожалуйста не присылайте мне NT даже для теста. Хотя все
равно
спасибо за такие предложения :o)
ЗАМЕЧАНИЕ: PolEdit разрешает создавать пользователей и группы.
Работает, правда, это только с пользователем установленным по умолчанию.
Например, если я создаю группу «admin» в PolEdit, которой можно
запускать
regedit, когда я подсоединяюсь под именем «erics» («admin» является его
личной
группой), regedit у меня не запускается :(.
Хотя, если создать пользователя «erics» в poledit … все работает.
Учитывая то, что нам не очень хочется создавать 1056 пользователей
poledit и
управлять всеми пользоателями сразу намного интереснее, мы предлагаем
следующую
хитрость:
Для осуществления плана мы обошли проблему: мы создали 3 config.pol
файла
только пользователями по умолчанию, итак, на linux сервере
получилось:
/home/netlogon/teachers/CONFIG.POL
/home/netlogon/teachers/teachers.bat
/home/netlogon/pupils/CONFIG.POL
/home/netlogon/pupils/pupils.bat
/home/netlogon/admin/CONFIG.POL
/home/netlogon/admin/admin.bat
И
немного изменили файл smb.conf чтобы она учитывала это:
<smb.conf file>
[netlogon]
; мы добавили %g
чтобы
переместить netlogon в другую дирректорию в зависимости от
; группы
пользователей, к которой файл config.pol обращается в зависимости от
группы
;
пользователей
path = /home/netlogon/%g
public = no
writeable =
no
browseable = no
</smb. conf file>
Настройки компьютеров под Windows
Немного удачи, 20 кликов мыши и перезагрузок наверно хватит для настройки windows! |
Для клиента под Win98
Нажмите на Start/Parameters/Configpanel (Пуск/Панель управленя/Сеть) и
дважды
кликните на Network
Необходимы::
- Клиент для сетей Майкрософт
- Драйвер сетевой карты
- Поддержка TCP/IP и ТОЛЬКО TCP/IP (не ipx или netbios)
- Доступные принтеры и папки
Потом нажмите на закладку «Identification» (Идентификация) и дайте
компьютеру
имя и название группы.
Нажмите на «Access control» и выберите права доступа пользователя
Вернитесь к закладке настроек и нажмите на «Client for MS network»
(Клиент
для сетей Майкрософт)
Не забудьте настроить поддержку TCP/IP:
дважды нажмите на TCP/IP
IP
address:
- IP address для этой машены (пример: 192. 168.0.2)
- Маска подсети (пример: 255.255.255.0)
Настройка
WINS:
- Активизировать WINS разрешение
- Добавить WINS сервер, IP 192.168.0.1 (если это IP address
samba сервера) - Gateway: если есть здесь можно настроить
- Настройки DNS: настроить доступ к DNS
Замечания «скорость/быстродействие?»
Во время работы, обращения проходят довольно быстро потому что
используются
профили windows.
Но, profile полон вещей которые MS считает необходимыми, такие как IE
cache,
OutLook cache, и т.д.
Это значт что около 10 MB будет грузиться при подключении к машине и
10 MB
будет передаватья серверу при отключении.
10 MB для каждого пользователя, для 15 компьютеров («нормальный»
размер
лаборатории, например), получается 150 MB, а если в здании 10 комнат…
можно
подсчитать время отключения от сети в конце рабочего дня.
Поэтому лучше домашней директорией сделать P: (например, P как
Personal) для
каждого и приучить пользователей: «сохраняйте докумнты в P а не в «My
documents», иначе обратно вы их не получите «.
Надо найти софт чтобы настроить закладки в P:\bookmarks.html и т.п.
Я не знаю существует ли это в мире windows!
Юниксе на порядок выше чем тот же сервак на Винде.
Дело стоит заморочек с переносом.
Установка и настройка Samba на CentOS 7
главная
— Статьи — Linux, FreeBSD
Дата обновления: 23.09.2020
Теги: Система Linux Настройка сервера Samba
В статье приведен пример установки файлового сервера Samba в рабочей группе (не в домене) на CentOS 7. Доступ к ресурсам как публичный, так и по логину/паролю. Последнее обновление: 06.09.2017.
Ставим Samba:
# yum install samba samba-client samba-common
Подготовка
# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
Сначала укажем в конфиге то, что мы планируем сделать, а потом уже создадим нужных пользователей, зададим права доступа на директории и пр. Почти все в этом файле как и в примере ниже, выдумывать или менять мало что нужно:
# nano /etc/samba/smb. conf [global] workgroup = WORKGROUP server string = My Samba Server %v netbios name = centos security = user map to guest = bad user passdb backend = tdbsam guest account = samba_guest min protocol = SMB2 ntlm auth = ntlmv2-only dns proxy = no log file = /var/log/samba/log.%m max log size = 50 ; а вот это мы добавляем в конец конфига: [Common] comment = Common share path = /samba/share browsable =yes writable = yes guest ok = yes read only = no
WORKGROUP должно совпадать с названием рабочей группы компьютеров у вас дома;
netbios name = centos
— имя вашего сервера в сети. У меня это имя прописано в dns на роутере mikrotik, вы же при желании можете прописать centos в файл hosts на рабочих станциях в вашей сети. Главное, чтобы ваш сервер был доступен по имени centos (в этом примере). Если вы еще не заблокировали icmp, выполните команду `ping centos` с рабочей станции. Если разрешение имени не работает, у вас будет вариант использовать такую запись <ip-вашего-сервера> вместо centos.
guest account = samba_guest
— определяем имя пользователя (должен быть добавлен в систему), от имени которого будет осуществляться доступ к общим папкам. Этого пользователя мы создадим чуть позже.
map to guest = bad user
— означает, что если был указан логин/пароль и такого логина не существует, то будет произведена попытка войти под учеткой гостя.
ntlm auth = ntlmv2-only (то же, что и ntlm auth = no)
— не разрешать NTLMv1, использовать NTLMv2. С версии Samba 4.5 это дефолт.
Если вы сомневаетесь в значении любого параметра из тех, которые я привел выше, лучше ознакомьтесь с их смыслом на этом этапе, т.к. если что-то пойдет не так, лучше вам заранее понимать, что вы сделали. Тем более, что не так и много сделали. И вообще, я могу опечататься, вы можете что-то не скопировать и др.
Да, и еще, я сразу удалил в этом файле дефолтные группы [homes], [printers], [netlogon], [Profiles] и [public]. Особенно я не хотел бы расшаривать домашние директории пользователей системы.
Несмотря на то, что файл настройки samba один, сами шары могут быть раскиданы по дискам и директориям, при просмотре сетевые пользователи не смогут понять, что шара upload указывает в /var/www/htdocs/upload, а шара docs — на /samba/common_docs. Т.е. ваша фантазия в этом плане вам на руку. Вы можете настроить все так, что файлы, которые вы загрузили по локальной сети, будут доступны посетителям вашего сайта. Ну или что угодно еще можете придумать. Главное, обращайте внимание на права доступа к файлам и директориям, которые вы создаете!
Проверяем, все ли правильно отредактировали:
# testparm
Ранее в конфиге smb.conf мы указали имя пользователя (guest account = samba_guest
), от имени которого будет производиться доступ к общедоступным шарам. Т.е. если мы в описании соответствующей группы укажем guest ok = yes
, то независимо от ваших текущих привилегий доступ к файлам в соотв. шаре будет произведен от имени samba_guest
. Давайте подготовим такого пользователя и директорию с соотв. правами.
# mkdir /samba/share # ls -ldZ /samba/share # chcon -t samba_share_t /samba/share # ls -ldZ /samba/share drwxr-xr-x. root root unconfined_u:object_r:samba_share_t:s0 /samba/share # groupadd smbgrp # useradd -c 'Samba member' -G smbgrp -M -s /sbin/nologin samba_guest # chmod 775 /samba/share # chown samba_guest:smbgrp /samba/share
опция -M указывает не создавать домашнюю директорию;
группа smbgrp будет объединять создаваемых в системе пользователей для Samba.
# systemctl enable smb.service && systemctl enable nmb.service
# systemctl restart smb.service && systemctl restart nmb.service
# firewall-cmd —permanent —zone=public —add-service=samba
# firewall-cmd —reload
Пробуем с рабочей станции в сети открыть шару share и создать пробный файл. Создав, проверьте на сервере, с какими правами создан файл:
# ls -al /samba/share
Если все ок и вы можете войти в публичную шару и создать в ней файл, то можно попробовать создать запароленную директорию для отдельного пользователя. Если что-то не так, скорее всего проблема в правах на папки, iptables или с SELinux.
Шары с паролем
Общая идея такова: если нам надо создать пользователя user1 для шары Samba, нам надо сначала создать пользователя с таким логином в системе Linux, а потом создать такого же пользователя в Samba. По моему разумению, системный пользователь, создаваемый для Samba, не должен иметь возможность входа в систему, а также иметь домашнюю директорию. Собственно, зачем ему это?
# useradd -c ‘Samba member’ -G smbgrp -M -s /sbin/nologin user1
Вообще говоря, пока вы не создадите пароль для этого пользователя, зайти им в систему нельзя, но представьте себе, когда через год или три вы забудете, ставили вы пароль или нет, и при просмотре /etc/passwd конкретно так вздрогнете, если оставить шелл по-умолчанию 😉 Так что в любом случае проверьте файл /etc/passwd после выполнения команды. Хотя бы один разок.
А это уже внутренний пользователь Samba:
# smbpasswd -a user1
Создаем пользовательскую папку. Для директории user1 права можно ставить уже не 775, а 755:
# mkdir /samba/user1 # chcon -t samba_share_t /samba/user1 # chown user1:smbgrp /samba/user1 # chmod 755 /samba/user1 # ls -al /samba/ total 16 drwxr-xr-x. 4 root root 4096 Feb 28 15:50 . dr-xr-xr-x. 21 root root 4096 Feb 28 14:54 .. drwxr-xr-x. 2 user1 smbgrp 4096 Feb 28 15:50 user1 drwxrwxr-x. 2 samba_guest smbgrp 4096 Feb 28 15:12 share
# nano /etc/samba/smb.conf
…
[User1 Share]
comment = User1’s files
path = /samba/user1
;valid users = @smbgrp
valid users = user1
guest ok = no
writable = yes
browsable = yes
create mask = 0640
directory mask = 0750
параметр create mask = 0640 указывает, что создаваемые в этой шаре файлы будут для владельца с правами на запись, для группы — на чтение, всем остальным — фиг;
параметр directory mask = 0750 указывает аналогично, только для директорий.
В принципе, в личной шаре никто не мешает вам использовать маски 0600 и 0700 соотв. Хотите, поиграйтесь 🙂 Но никогда без явно обозначенной цели не делайте маски 0777 ни для чего, даже если после этого все работает.
# systemctl restart smb.service && systemctl restart nmb.service
Проверяйте работу, все должно быть ок. В сетевом окружении должны быть две сетевые папки: share и user1.
Создайте еще пользователя, проверьте, как работают права доступа к пабликам и персональным директориям. Если что-то идет не так, проверяйте права доступа на директории и встроенные механизмы защиты, в данном случае SELinux.
Дополнительно
Ну и напоследок некоторые полезные команды.
Список пользователей Samba:
# pdbedit -L
user1:1001:Samba member
Расширенные данные по пользователям:
# pdbedit -L -v
Смена пароля у существующего пользователя:
# smbpasswd <User_name>
Удаление существующего пользователя:
# smbpasswd -x <User_name>
Приостановление учетной записи без удаления:
# smbpasswd -d <User_name>
Не хотите видеть в сетевой папке всякие временные файлы? В конфиге smb. conf добавьте к группе [User1 Share] что-то вроде:
hide files = /$RECYCLE.BIN/desktop.ini/lost+found/Thumbs.db/~*/
Iptables для Samba
Лучший способ узнать, что нужно разрешить в iptables — это посмотреть, какие порты слушает Samba:
# netstat -tulpn | egrep "samba|smbd|nmbd|winbind" tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 13107/smbd tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 13107/smbd tcp6 0 0 :::139 :::* LISTEN 13107/smbd tcp6 0 0 :::445 :::* LISTEN 13107/smbd udp 0 0 192.168.88.255:137 0.0.0.0:* 13119/nmbd udp 0 0 192.168.88.2:137 0.0.0.0:* 13119/nmbd udp 0 0 0.0.0.0:137 0.0.0.0:* 13119/nmbd udp 0 0 192.168.88.255:138 0. 0.0.0:* 13119/nmbd udp 0 0 192.168.88.2:138 0.0.0.0:* 13119/nmbd udp 0 0 0.0.0.0:138 0.0.0.0:* 13119/nmbd
Соответственно, в iptables надо добавить следующие правила:
-A INPUT -s 192.168.88.0/24 -p udp -m udp --dport 137 -m state --state NEW -j ACCEPT -A INPUT -s 192.168.88.0/24 -p udp -m udp --dport 138 -m state --state NEW -j ACCEPT -A INPUT -s 192.168.88.0/24 -p tcp -m tcp --dport 139 -m state --state NEW -j ACCEPT -A INPUT -s 192.168.88.0/24 -p tcp -m tcp --dport 445 -m state --state NEW -j ACCEPT
где 192.168.88.0/24 — ваша локальная сеть.
LOG-файл Samba
Можно тюнинговать логирование бесконечно долго, но если быстро и достаточно полезно, то приведу пример, как выводить в лог информацию о том, кто, откуда, что переименовал, что смотрел, что удалил. Открываем файл /etc/samba/smb.conf:
... [global] log file = /var/log/samba/log. %m log level = 1 auth_audit:3 auth_json_audit:3 max log size = 10000 [Common] ... vfs objects = full_audit full_audit:prefix = %u|%I full_audit:success = mkdir rmdir read pread write pwrite sendfile rename unlink lock full_audit:failure = mkdir rmdir read write rename unlink full_audit:facility = LOCAL7 full_audit:priority = ALERT ...
# systemctl restart smb.service && systemctl restart nmb.service
Попробуйте открыть файлы на шаре, удалить папку, создать файл. Потом посмотрите файл /var/log/messages:
Sep 4 17:50:19 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/open_server_5_2_5_basic.exe|files/_open_server_5_2_5_basic.exe Sep 4 17:50:40 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/_open_server_5_2_5_basic.exe|files/open_server_5_2_5_basic.exe Sep 4 18:01:11 centos smbd_audit: samba_guest|192.168.3.3|mkdir|ok|files/Новая папка Sep 4 18:01:13 centos smbd_audit: samba_guest|192.168.3.3|rename|ok|files/Новая папка|files/333 Sep 4 18:01:16 centos smbd_audit: samba_guest|192. 168.3.3|rmdir|ok|files/333
Все ясно. Кто-то с ip 192.168.3.3 переименовал файл open_server_5_2_5_basic.exe, причем дважды. Потом создал папку, переименовал ее и удалил.
Играясь со списком «mkdir rmdir read pread write pwrite sendfile rename unlink lock
» можно реагировать на разные события, а можно вообще так full_audit:success = all !open
(все, кроме открытия).
Можно до бесконечности писать про всякие отдельные фишки. Но в целом зада выполнена.
Авторизуйтесь для добавления комментариев!
Samba не может добавить запись пользователя, как это исправить?
Samba не может добавить запись пользователя, как это исправить? — Спросите Ubuntu
Сеть обмена стеков
Сеть Stack Exchange состоит из 176 сообществ вопросов и ответов, включая Stack Overflow, крупнейшее и пользующееся наибольшим доверием онлайн-сообщество, где разработчики могут учиться, делиться своими знаниями и строить свою карьеру.
Посетить Stack Exchange
0
+0
- Авторизоваться
Подписаться
Ask Ubuntu — это сайт вопросов и ответов для пользователей и разработчиков Ubuntu.Регистрация займет всего минуту.
Зарегистрируйтесь, чтобы присоединиться к этому сообществу
Кто угодно может задать вопрос
Кто угодно может ответить
Лучшие ответы голосуются и поднимаются наверх
Спросил
Просмотрено
93k раз
Я настраивал Samba и пытался добавить пользователя домена, но он возвращает следующее:
не удалось добавить запись для пользователя студент
Это команды, которые я уже выполнил:
фрегат @ фрегат-рабочий стол: ~ $ su
Пароль:
корень @ frigate-desktop: / home / frigate # nano / etc / samba / smb.conf
root @ frigate-desktop: / home / frigate # groupadd -g 201 машины
корень @ фрегат-рабочий стол: / home / frigate # mkdir -m 0775 / home / ntlogon
корень @ фрегат-рабочий стол: / home / frigate # mkdir / home / samba / home / samba / profiles
корень @ фрегат-рабочий стол: / дом / фрегат # chmod 1755 / дом / самба / профили /
root @ frigate-desktop: / home / frigate # useradd -m тест
root @ frigate-desktop: / home / frigate # проверка пароля
Введите новый пароль UNIX:
Введите новый пароль UNIX еще раз:
passwd: пароль успешно обновлен
root @ frigate-desktop: / home / frigate # smbpasswd -a тест
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Добавлен пользовательский тест. root @ frigate-desktop: / home / frigate # smbpasswd -a корень
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Добавлен пользователь root.
root @ frigate-desktop: / home / frigate # smbpasswd -a студент
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Не удалось добавить запись для пользователя student.
root @ frigate-desktop: / home / frigate # smbpasswd -a студент
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Не удалось добавить запись для пользователя student.
корень @ фрегат-рабочий стол: / главная / фрегат # smbpasswd -a stu
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Несоответствие - пароль не изменен.Не удалось получить новый пароль.
корень @ фрегат-рабочий стол: / главная / фрегат # smbpasswd -a stu
Новый пароль SMB:
Введите новый пароль SMB еще раз:
Не удалось добавить запись для пользователя stu.
Как мне добавить этого пользователя в Samba?
Томас Уорд ♦
1,900 22 золотых знака148148 серебряных знаков207207 бронзовых знаков
Создан 21 окт.
Бишванатх Дас
40922 золотых знака55 серебряных знаков1515 бронзовых знаков
Вам необходимо создать пользователя UNIX с именем student перед тем, как создать пользователя samba с именем student.
Создан 21 окт.
ммстик
1,9641111 серебряных знаков99 бронзовых знаков
Может ты еще не создавал. Итак, чтобы добавить его в самбу впервые, нужно добавить
-а
вариант
sudo smbpasswd -a тест
Пользователь samba настраивается и добавляется другим способом, чем пользователи unix. Это означает, что не потому, что существует пользователь unix, а пользователь samba существует . Способ добавить пользователя samba — установить его пароль от пользователя unix
Создан 18 июл.
Филипп ГашудФилипп Гашуд
4,89133 золотых знака3434 серебряных знака4545 бронзовых знаков
2
Очень активный вопрос .Заработайте 10 репутации, чтобы ответить на этот вопрос. Требование репутации помогает защитить этот вопрос от спама и отсутствия ответов.
Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками самба или задайте свой вопрос.
Спросите Ubuntu лучше всего работает с включенным JavaScript
Ваша конфиденциальность
Нажимая «Принять все файлы cookie», вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Принимать все куки
Настроить параметры
Samba Server: безопасность = пользователь не отображается
Я пытаюсь использовать сервер Ubuntu для настройки сервера Samba.Однако во всех инструкциях, которые я вижу, говорится, что нужно раскомментировать строку security = user
. Я не вижу этой линии там, где она должна быть. Мне просто добавить это? В чем именно его значение?
Вот мой /etc/samba/smb.conf
#
# Пример файла конфигурации для пакета Samba для Debian GNU / Linux.
#
#
# Это основной файл конфигурации Samba. Вы должны прочитать
# smb.conf (5) справочная страница, чтобы понять перечисленные параметры
# здесь.Samba имеет огромное количество настраиваемых параметров, большинство из которых
# не показаны в этом примере
#
# Некоторые параметры, которые часто стоит настраивать, были включены как
# закомментированных примеров в этом файле.
# - Если такие параметры отмечены знаком ";", предлагаемая настройка
# отличается от поведения Samba по умолчанию
# - при добавлении комментария "#" предлагаемая настройка является значением по умолчанию.
# поведение Samba, но параметр считается важным
# достаточно, чтобы быть упомянутым здесь
#
# ПРИМЕЧАНИЕ: всякий раз, когда вы изменяете этот файл, вы должны запускать команду
# "testparm", чтобы убедиться, что вы не использовали базовый синтаксис.
# ошибки.# ======================= Глобальные настройки =======================
[Глобальный]
## Просмотр / идентификация ###
# Измените это на имя рабочей группы / NT-домена, в которое будет входить ваш Samba-сервер
рабочая группа = SAMBA-СЕРВЕР
# строка сервера эквивалентна полю описания NT
строка сервера =% h сервер (Samba, Ubuntu)
# Раздел поддержки обслуживания имен в Интернете Windows:
# Поддержка WINS - указывает компоненту NMBD Samba включить его WINS-сервер.
# побед поддержка = нет
# WINS Server - сообщает компонентам NMBD Samba, что они являются WINS-клиентом.
# Примечание: Samba может быть либо WINS-сервером, либо WINS-клиентом, но НЕ одновременно
; выигрывает server = w.x.y.z
# Это предотвратит поиск nmbd имен NetBIOS через DNS.
DNS-прокси = нет
#### Сеть ####
# Конкретный набор интерфейсов / сетей для привязки
# Это может быть либо имя интерфейса, либо IP-адрес / сетевая маска;
# имена интерфейсов обычно предпочтительны
; интерфейсы = 127. 0.0.0/8 eth0
# Связывайтесь только с указанными интерфейсами и / или сетями; вы должны использовать
# Опция 'интерфейсы' выше, чтобы использовать это.
# Рекомендуется включить эту функцию, если ваша машина Samba
# не защищен брандмауэром или сам является брандмауэром.Однако это
Параметр # не может правильно обрабатывать динамические или нешироковещательные интерфейсы.
; привязать только интерфейсы = да
#### Отладка / учет ####
# Это указывает Samba использовать отдельный файл журнала для каждой машины
# что соединяет
файл журнала = /var/log/samba/log.%m
# Ограничьте размер отдельных файлов журнала (в КиБ).
максимальный размер журнала = 1000
# Если вы хотите, чтобы Samba регистрировалась только через системный журнал, установите следующие
# параметр на "да".
# только системный журнал = нет
# Мы хотим, чтобы Samba регистрировала минимальный объем информации в системном журнале.Все
# следует вместо этого перейти в /var/log/samba/log.{smbd,nmbd}. Если вы хотите войти
# через syslog вы должны установить для следующего параметра значение выше.
syslog = 0
# Сделайте что-нибудь разумное, когда Samba выйдет из строя: отправьте админу сообщение об ошибке
паническое действие = / usr / share / samba / panic-action% d
####### Аутентификация #######
# Роль сервера. Определяет, в каком режиме будет работать Samba. Возможный
# значения: "автономный сервер", "рядовой сервер", "классический первичный сервер".
# контроллер домена "," классический резервный контроллер домена "," активный "
# контроллер домена каталога ".#
# Большинство людей захотят "автономный сервер" или "рядовой сервер".
# Для запуска в качестве "контроллера домена Active Directory" сначала потребуется
# запуск "samba-tool domain provision" для очистки баз данных и создания
# новый домен.
роль сервера = автономный сервер
# Если вы используете зашифрованные пароли, Samba нужно будет знать, что
# тип базы паролей, который вы используете.
passdb backend = tdbsam
соблюдать ограничения pam = да
# Этот логический параметр определяет, пытается ли Samba синхронизировать Unix
# пароль с паролем SMB, когда зашифрованный пароль SMB в
# passdb изменен.синхронизация паролей unix = да
# Чтобы синхронизация паролей Unix работала в системе Debian GNU / Linux, следующие
# параметры должны быть установлены (спасибо Яну Кахану << [email protected]> за
# отправка правильного сценария чата для программы passwd в Debian Sarge).
программа passwd = / usr / bin / passwd% u
passwd chat = * Введите \ snew \ s * \ spassword: *% n \ n * Введите \ snew \ s * \ spassword: *% n \ n * пароль \ успешно обновлен *.
# Это логическое значение определяет, будет ли PAM использоваться для изменения пароля.
# по запросу клиента SMB вместо программы, указанной в
# 'программа passwd'.По умолчанию - «нет».
изменение пароля pam = да
# Эта опция контролирует, как отображаются неудачные попытки аутентификации
# для анонимных подключений
сопоставить гостю = плохой пользователь
########## Домены ###########
#
# Следующие настройки действуют только в том случае, если 'server role = primary
# классический контроллер домена ',' роль сервера = резервный контроллер домена '
# или 'вход в домен' установлен
#
# Определяет местонахождение пользователя
# каталог профиля с точки зрения клиента) Следующие
# требуется установка общего ресурса [profiles] на сервере Samba (см.
# ниже)
; путь входа в систему = \\% N \ profiles \% U
# Другой распространенный выбор - сохранить профиль в домашнем каталоге пользователя
# (это по умолчанию Samba)
# путь входа = \\% N \% U \ profile
# Следующий параметр действует только в том случае, если установлен «вход в домен»
# Указывает расположение домашнего каталога пользователя (от клиента
# точка зрения)
; диск входа в систему = H:
# logon home = \\% N \% U
# Следующий параметр действует только в том случае, если установлен «вход в домен»
# Указывает сценарий, запускаемый при входе в систему.Скрипт необходимо сохранить
# в общей папке [netlogon]
# ПРИМЕЧАНИЕ: необходимо хранить в формате файла DOS.
; сценарий входа в систему = logon.cmd
# Это позволяет создавать пользователей Unix на контроллере домена через SAMR
# RPC pipe. Пример команды создает учетную запись пользователя с отключенным Unix
# пароль; пожалуйста, адаптируйтесь к вашим потребностям
; добавить пользовательский скрипт = / usr / sbin / adduser --quiet --disabled-password --gecos ""% u
# Это позволяет создавать учетные записи компьютеров на контроллере домена через
# SAMR RPC pipe.# Ниже предполагается, что в системе существует группа "машин"
; добавить скрипт машины = / usr / sbin / useradd -g machines -c "% u учетная запись компьютера" -d / var / lib / samba -s / bin / false% u
# Это позволяет создавать группы Unix на контроллере домена через SAMR
# RPC pipe.
; добавить сценарий группы = / usr / sbin / addgroup --force-badname% g
############ Разное ############
# Использование следующей строки позволяет настроить конфигурацию
# для каждой машины. % M заменяется именем netbios
# машины, которая подключается
; включить = / home / samba / etc / smb.конф.% m
# Некоторые значения по умолчанию для winbind (убедитесь, что вы не используете диапазоны
# для чего-то еще.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; шаблон оболочки = / bin / bash
# Настройте параметры пользовательского доступа, чтобы разрешить пользователям без полномочий root предоставлять общий доступ к папкам
# с помощью команды net usershare.
# Максимальное количество пользователей. 0 (по умолчанию) означает, что совместное использование пользователей отключено.
; максимальное количество пользователей = 100
# Разрешить пользователям, которым предоставлены права совместного использования, создавать
# общедоступных общих ресурсов, а не только аутентифицированных
usershare разрешить гости = да
# ======================= Определения общих ресурсов =======================
# Не комментируйте следующее (и настройте другие настройки ниже, чтобы они подходили)
# для включения общих папок домашнего каталога по умолчанию.Этим поделится каждый
# домашний каталог пользователя как \\ server \ username
; [дома]
; comment = Домашние каталоги
; browseable = нет
# По умолчанию домашние каталоги экспортируются только для чтения. Изменить
# следующий параметр на 'нет', если вы хотите иметь возможность писать им.
; только чтение = да
# Маска создания файла установлена на 0700 из соображений безопасности. Если ты хочешь
# создать файлы с разрешениями group = rw, установить следующий параметр на 0775.
; создать маску = 0700
# Маска создания каталога установлена на 0700 по соображениям безопасности.Если ты хочешь
# создать каталоги. с разрешениями group = rw установите следующий параметр на 0775.
; маска каталога = 0700
# По умолчанию общие ресурсы \\ server \ username могут быть подключены кем угодно
# с доступом к серверу самбы.
# Снимите комментарий к следующему параметру, чтобы убедиться, что только "username"
# можно подключиться к \\ серверу \ имени пользователя
# Это может потребовать настройки при использовании внешних схем аутентификации
; допустимые пользователи =% S
# Не комментируйте следующее и создайте каталог netlogon для входа в домен
# (вам необходимо настроить Samba для работы в качестве контроллера домена.)
; [сетевой вход]
; comment = Служба входа в сеть
; путь = / домой / самба / netlogon
; гость ок = да
; только чтение = да
# Не комментируйте следующее и создайте каталог профилей для хранения
# профилей пользователей (см. параметр "путь для входа" выше)
# (вам также необходимо настроить Samba для работы в качестве контроллера домена.)
# Путь ниже должен быть доступен для записи всем пользователям, чтобы их
# каталог профиля может быть создан при первом входе в систему
; [профили]
; comment = Профили пользователей
; путь = / главная / самба / профили
; гость ок = нет
; browseable = нет
; создать маску = 0600
; маска каталога = 0700
[принтеры]
comment = Все принтеры
browseable = нет
путь = / var / spool / samba
printable = да
гость ок = нет
только чтение = да
создать маску = 0700
# Клиенты Windows ищут это имя общего ресурса как источник загружаемых
# драйверы принтера
[печать $]
comment = Драйверы принтера
путь = / var / lib / samba / printers
browseable = да
только чтение = да
гость ок = нет
# Раскомментируйте, чтобы разрешить удаленное администрирование драйверов печати Windows.# Возможно, вам придется заменить lpadmin на имя группы, в которой
# пользователей с правами администратора являются членами.
# Обратите внимание, что вам также необходимо установить соответствующие разрешения Unix
# в каталог драйверов, чтобы эти пользователи имели права на запись в него
; список записи = корень, @lpadmin
Создать общий ресурс samba, доступный для записи всем, группе или только пользователю — База технических знаний
В этом руководстве рассказывается, как создать общий ресурс samba и сделать его доступным для записи всем, группе или конкретным пользователям.
Установите samba
Debian / Ubuntu и т. Д.
Arch / Manjaro и т. Д.
Создайте пользователя (и, возможно, группу), под которым будет делиться общий доступ
С помощью этого метода мы фактически создаем пользователя (в этом примере мы назовем его ‘ shareuser ‘) и установите папку (для совместного использования), которая будет принадлежать этому пользователю.
useradd --system shareuser chown -R shareuser / media / share
Примечание: мы разделяем папку / media / share
Поделиться по группе
Необязательно: если вы хотите предоставить общий доступ по группе (т.е.е. разрешить всем пользователям доступ к группе), тогда вам нужно будет создать эту группу. Например. чтобы добавить группу sharegroup, а затем сделать пользователя shareuser частью указанной группы, выполните:
sudo group добавить sharegroup sudo useradd shareuser -G sharegroup
Вы можете сделать так, чтобы все новые файлы, создаваемые в папке, принадлежали определенной группе, используя chmod
. Например,
chgrp -R sharegroup / media / share chmod g + s / media / share
изменит все папки и группы владения файлами в / media / share на sharegroup
, а затем применит бит setgid
, чтобы любые новые созданные файлы или папки также имели групповое владение sharegroup
.
Отредактируйте /etc/samba/smb.conf
Теперь нам нужно отредактировать /etc/samba/smb.conf. Ниже приведены несколько примеров в зависимости от того, как вы хотите, чтобы пользователи получали доступ к вашей общей папке smb.
Разрешить всем пользователям доступ и запись в вашу общую папку samba
... # Поделиться [Поделиться] путь = / media / share writeable = да browseable = да public = да создать маску = 0644 маска каталога = 0755 принудительно пользователь = shareuser ...
Разрешить только всем пользователям из группы (Linux) доступ и запись в ваш общий ресурс samba
Примечание: вы должны были создать группу sharegroup (или другую группу), как описано выше.
... # Поделиться [Поделиться] путь = / media / share действительные пользователи = @sharegroup writeable = да browseable = да создать маску = 0644 маска каталога = 0755 принудительно пользователь = shareuser ...
Разрешить только определенным (самба) пользователям доступ и запись в ваш общий ресурс samba
Для этого нам нужно создать пароль samba для пользователя, которого вы создали ранее. Этот пароль samba не обязательно должен совпадать с паролем пользователя Linux:
sudo smbpasswd -a shareuser
Следуйте интерактивным подсказкам, чтобы ввести пароль самбы.
... # Поделиться [Поделиться] путь = / media / share допустимые пользователи = shareuser writeable = да browseable = да создать маску = 0644 маска каталога = 0755 принудительно пользователь = shareuser ...
Добавьте правила, чтобы разрешить трафик самбы через брандмауэр
В вашей сети вам необходимо разрешить трафик самбы через брандмауэр сервера. Если вы используете UFW
, вы можете добавить необходимые правила, выполнив следующие команды. Ниже предполагается, что диапазон адресов внутренней сети равен 10.0.0.0 → 10.0.0.255 (или 10.0.0.0/24 CIDR), поэтому вам нужно будет изменить его в соответствии с вашей внутренней сетью, если она отличается:
sudo ufw разрешить протокол udp на любой порт 137 из 10.0.0.0/24 sudo ufw разрешить протокол udp на любой порт 138 из 10.0.0.0/24 sudo ufw разрешить протокол TCP на любой порт 139 из 10.0.0.0/24 sudo ufw разрешить протокол TCP на любой порт 445 из 10.0.0.0/24
Restart smbd
Чтобы изменения вступили в силу, нам необходимо перезапустить samba.
sudo systemctl перезапуск smbd
Ссылки
- https: // unix.stackexchange.com/questions/206309/how-to-create-a-samba-share-that-is-writable-from-windows-without-777-permission
- https://www.techrepublic.com/article/how -to-set-up-quick-and-easy-file-sharing-with-samba /
- https://askubuntu.com/questions/51951/set-default-group-for-user-when-they-create -new-files
- https://www.ghacks.net/2010/12/29/allow-samba-through-your-linux-firewall-with-ufw/
Статьи по теме
Стр .:
Создать общий ресурс Samba в Ubuntu 13.10
- Убедитесь, что в системе есть доступ в Интернет.
- Убедитесь, что у пользователя есть соответствующие разрешения на установку программного обеспечения в системе.
Для установки программного обеспечения в Ubuntu пользователю необходимо иметь разрешение суперпользователя, поэтому для установки Samba пользователь должен использовать sudo для его установки.
sudo apt-get update
sudo apt-get install samba
Рисунок: Установка Samba на ubuntu
- Добавьте пользователя к samba и назначьте пароль этому пользователю .Следующий шаг демонстрирует метод добавления пользователя в samba и назначения пароля samba для этого пользователя. Этому процессу требуются разрешения sudo.
судо smbpasswd -a турбо
(-a — для добавления пользователя в самбу, а turbo — это имя пользователя, которое будет добавлено в самбу)
Рисунок: Добавление пользователя в samba и назначение пароля samba для пользователя.
smbpasswd добавляет пользователя в samba и назначает ему пароль samba.Пользователь увидит сообщение об ошибке, если пользователь не существует в системе Linux.
Рисунок: Ошибка при добавлении пользователя в samba , поскольку пользователь не существует на машине Linux.
- Тестирование демонов самбы smbd и nmbd. Для этого требуется разрешение sudo.
sudo service smbd restart
sudo service nmbd restart
Рисунок: Перезапуск smbd и nmbd
Добавление папки в общий сетевой ресурс
общих ресурсов Samba можно настроить через / etc / samba / smb.conf, который содержит детали конфигурации для сервера Samba.
- Откройте smb.conf из /etc/samba/smb.conf с помощью редактора VI. Откройте файл с разрешениями sudo, так как пользователю может потребоваться отредактировать файл.
Судо vi /etc/samba/smb.conf
- Например, Пользователь хочет, чтобы SharedFolders присутствовали в / home / turbo / Ephesoft / SharedFolders как совместно используемые на общей папке samba. Пользователь может сделать это, добавив следующую строку в конец файла smb.conf. Но перед этим пользователю нужно будет дать разрешение на чтение, запись и выполнение всем в общих папках, выполнив следующую команду (по умолчанию установщик Ephesoft назначает разрешение rwx всем в SharedFolders):
sudo chmod –R 777 / home / turbo / Ephesoft / SharedFolders
Добавить следующие строки в конец smb.конф.
[ephesoft]
комментарий = ephesoft
путь = / home / turbo / Ephesoft / SharedFolders
с возможностью просмотра = да
с возможностью записи = да
режим создания = 0777
режим каталога = 0777
режим совместного использования = да
гость ok = да
действительные пользователи = turbo
Рисунок: Общий ресурс, созданный с именем ephesoft, который указывает на / home / turbo / Ephesoft / SharedFolders на машине.
Подробная информация о параметрах, добавленных в smb.conf
- Комментарий : комментарий к общей папке.
- путь : указывает путь к общей папке.
- просматриваемый : позволяет просматривать файлы из файловой системы.
- с возможностью записи : делает общую папку доступной для записи
- режим создания : создавать файлы с разрешениями group = rw.
- режим каталога : создать каталоги. с разрешениями group = rw.
- гость ОК : разрешен гостевой доступ
- допустимые пользователи : указывает список допустимых пользователей, которые могут получить доступ к общей папке (пользователи должны быть частью группы пользователей, назначенной общей папке).
- Добавьте нескольких пользователей в список допустимых пользователей, так как одно удостоверение может использоваться одной машиной одновременно.
Пользователь должен будет создать общий ресурс с разрешениями на запись, создание, чтение и просмотр и т. Д. Заявления, упомянутые выше, подтверждают то же самое.
- Сохраните файл smb.conf и перезапустите демонов smbd и nmbd, выполнив следующие команды.
sudo service smbd restart
sudo service nmbd restart
Рисунок: перезапуск демонов samba smbd / nmbd
Теперь пользователь может получить доступ к этой общей папке.
Рисунок: общие папки, доступные в сети
Доступ к общим папкам на разных узлах Ephesoft в настройке с несколькими кластерами
Чтобы настроить SharedFolders на разных узлах Ephesoft в настройке с несколькими кластерами, пользователю потребуется смонтировать общий сетевой ресурс в папке на каждом узле Ephesoft Linux, поскольку Linux не распознает сетевые пути, как это делает Windows, т.е. доступ с помощью \ ip –addr, но в Linux это можно сделать с помощью протокола samba, который работает по-другому.
Примечание: Установщик создаст пустую папку в одном и том же месте на каждом узле Ephesoft, кроме узла, на котором находится фактическая общая папка, т.е. путь к пустой папке будет таким же, как путь к фактической общей папке на машине, где находятся фактические общие папки, например. В приведенной выше конфигурации, где SharedFolder был добавлен в общий ресурс samba, фактическая папка находится в / home / turbo / Ephesoft / SharedFolders, поэтому пустая папка будет создана по тому же пути на каждой машине с помощью установщика Ephesoft.
Теперь пользователю нужно будет смонтировать сетевые общие папки в каждую пустую папку, созданную установщиком на каждом узле Ephesoft.
Подключение общего сетевого ресурса к пустым папкам, созданным установщиком
Пользователь может подключить общий ресурс samba к пустой папке, выполнив следующую команду.
sudo mount -t cifs -o user = turbo, password = Passw0rd //192.168.108.21/ephesoft / home / turbo / Ephesoft / SharedFolders
Здесь пароль — пароль пользователя smbuser, для которого был установлен smbpasswd.
Рисунок: монтирование общего ресурса в пустой папке / home / turbo / Ephesoft / SharedFolders
Рисунок: сетевая общая папка, смонтированная в пустой папке на другом узле Ephesoft.
Пользователь сможет получить доступ к смонтированной общей папке локально, открыв / home / turbo / Ephesoft / SharedFolders, поскольку эта папка действует как точка монтирования для общего сетевого ресурса. Пользователь сможет создавать / изменять файлы / папки локально по этому пути, и изменения будут отражаться в общей сетевой папке и на всех машинах, на которых этот сетевой ресурс был смонтирован.
Рисунок: Пользователь может получить доступ к SharedFolder локально в смонтированной папке.
Рисунок: Пользователь создает папку в смонтированной папке, и эти изменения будут отражены во всех точках монтирования и общей сетевой папке.
Рисунок: Изменения в создании папки, отраженные в общей сетевой папке.
Примечание *: файл свойств Ephesoft META-INF будет содержать путь к локально смонтированным папкам, а не сетевой путь, поскольку Linux не распознает сетевой ресурс, как Windows.Linux использует протокол smb для доступа к общей папке. Следовательно, пользователю придется монтировать сетевые общие папки локально в своей системе, чтобы Ephesoft могла видеть данные по одному и тому же пути в каждой системе.
Как настроить общий ресурс сервера Samba в Ubuntu 20.04 Focal Fossa Linux
- Подробности
- Lubos Rendek
- Ubuntu
Цель этого руководства — настроить базовый сервер Samba в Ubuntu 20.04 для совместного использования домашних каталогов пользователей, а также для предоставления анонимного доступа для чтения и записи к выбранному каталогу.
Существует множество возможных других конфигураций Samba, однако цель этого руководства — познакомить вас с некоторыми основами, которые впоследствии могут быть расширены для реализации дополнительных функций в соответствии с вашими потребностями.
В этом руководстве вы узнаете:
- Как установить сервер Samba
- Как настроить базовый общий ресурс Samba
- Как предоставить общий доступ к домашним каталогам пользователей и общедоступному анонимному каталогу
- Как смонтировать общий ресурс Samba в MS Windows 10
Как настроить общий ресурс Samba Server в Ubuntu 20.04 Focal Fossa Linux
Используемые требования к программному обеспечению и условные обозначения
Категория | Требования, условные обозначения или используемая версия программного обеспечения |
---|---|
Система Focal | установлена или обновлена Fossa |
Программное обеспечение | Samba |
Другое | Привилегированный доступ к вашей системе Linux с правами root или с помощью команды sudo . |
Условные обозначения | # — требует, чтобы данные команды linux выполнялись с привилегиями root либо напрямую как пользователь root, либо с помощью команды sudo $ — требует, чтобы данные команды linux выполнялись как обычные не -privileged user |
Как настроить общий ресурс Samba Server в Ubuntu 20.04, пошаговые инструкции
- Начнем с установки сервера Samba. Это довольно тривиальная задача.Сначала установите команду
tasksel
, если она еще не доступна в вашей системе Ubuntu 20.04. Когда все будет готово, используйтеtasksel
для установки сервера Samba.$ sudo apt install tasksel $ sudo tasksel установить самба-сервер
- Мы начнем со свежего чистого файла конфигурации, а также сохраним файл конфигурации по умолчанию в качестве резервной копии для справочных целей.; «/etc/samba/smb.conf_backup | grep.> /etc/samba/smb.conf ‘
- Samba имеет собственную систему управления пользователями. Однако любой пользователь, существующий в списке пользователей samba, также должен существовать в файле
/ etc / passwd
. Если ваш системный пользователь еще не существует и, следовательно, не может быть расположен в файле/ etc / passwd
, сначала создайте нового пользователя с помощью командыuseradd
, прежде чем создавать любого нового пользователя Samba.После того, как ваш новый пользователь системы, например.
linuxconfig
завершает работу, используйте командуsmbpasswd
для создания нового пользователя Samba:$ sudo smbpasswd -a linuxconfig Новый пароль SMB: Введите новый пароль SMB еще раз: Добавлен пользовательский linuxconfig.
- Следующим шагом будет добавление общего домашнего каталога. Используйте свой любимый текстовый редактор, например. atom, sublime, чтобы отредактировать наш новый файл конфигурации
/etc/samba/smb.conf
samba и добавить следующие строки в конец файла:[дома] comment = Домашние каталоги browseable = да только чтение = нет создать маску = 0700 маска каталога = 0700 допустимые пользователи =% S
- При желании можно добавить новый общедоступный общий ресурс Samba для чтения и записи, доступный анонимным / гостевым пользователям.Сначала создайте каталог, которым хотите поделиться, и измените его права доступа:
$ sudo mkdir / var / samba $ sudo chmod 777 / var / samba /
Когда все будет готово, еще раз откройте файл конфигурации
/etc/samba/smb.conf
samba и добавьте следующие строки в конец файла:[общедоступный] комментарий = публичный анонимный доступ путь = / var / samba / browsable = да создать маску = 0660 маска каталога = 0771 Writable = да гость ок = да
- Проверьте текущую конфигурацию.Ваш файл конфигурации
/etc/samba/smb.conf
samba на этом этапе должен выглядеть примерно так, как показано ниже:[global] рабочая группа = РАБОЧАЯ ГРУППА строка сервера =% h сервер (Samba, Ubuntu) файл журнала = /var/log/samba/log.%m максимальный размер журнала = 1000 logging = файл паническое действие = / usr / share / samba / panic-action% d роль сервера = автономный сервер соблюдать ограничения pam = да синхронизация паролей unix = да программа passwd = / usr / bin / passwd% u passwd chat = * Введите \ snew \ s * \ spassword: *% n \ n * Введите \ snew \ s * \ spassword: *% n \ n * пароль \ успешно обновлен *.изменение пароля pam = да сопоставить гостю = плохой пользователь usershare разрешить гости = да [принтеры] comment = Все принтеры browseable = нет путь = / var / spool / samba printable = да гость ок = нет только чтение = да создать маску = 0700 [печать $] comment = Драйверы принтера путь = / var / lib / samba / printers browseable = да только чтение = да гость ок = нет [дома] comment = Домашние каталоги browseable = да только чтение = нет создать маску = 0700 маска каталога = 0700 допустимые пользователи =% S [общедоступный] комментарий = публичный анонимный доступ путь = / var / samba / browsable = да создать маску = 0660 маска каталога = 0771 Writable = да гость ок = да
- Наша основная конфигурация сервера Samba готова.Не забывайте всегда перезапускать сервер samba после внесения любых изменений в файл конфигурации
/etc/samba/smb.conf
:$ sudo systemctl перезапуск smbd
- (необязательно) Создадим несколько тестовых файлов. После того, как мы успешно смонтируем наши общие ресурсы Samba, в нашем распоряжении должны появиться следующие файлы:
$ touch / var / samba / public-share $ touch / home / linuxconfig / home-share
- На этом этапе мы готовы обратить внимание на MS Windows.Каталоги подключения сетевых дисков могут немного отличаться для каждой версии MS Windows. В этом руководстве MS Windows 10 используется в роли клиента Samba.
Для начала откройте
Проводник Windows
, затем щелкните правой кнопкой мышиСеть
и щелкнитеПодключить сетевой диск ... вкладку
. Выберите букву диска и введите расположение общего ресурса Samba, которое представляет собой IP-адрес вашего сервера Samba или имя хоста, за которым следует имя домашнего каталога пользователя. Убедитесь, что вы отметили
Подключиться с использованием других учетных данных
, если ваше имя пользователя и пароль отличаются от тех, которые были созданы ранее на шаге 3.Введите пароль пользователя, созданный на шаге 3.
Просмотрите домашний каталог пользователя. Вы должны увидеть ранее созданный тестовый файл. Кроме того, вы должны иметь возможность создавать новые каталоги и файлы.
Повторите шаги монтирования также для общедоступного анонимного общего ресурса каталога samba.
Подтвердите, что у вас есть доступ к общедоступному общему каталогу samba.
ПОДПИСАТЬСЯ НА БЮЛЛЕТЕНЬ И RSS
Подпишитесь на RSS и НОВОСТНОЙ БЮЛЛЕТЕНЬ и получайте последние новости Linux, вакансии, советы по карьере и учебные пособия.
Все готово. Теперь не стесняйтесь добавлять дополнительные функции в конфигурацию вашего общего сервера Samba.
Samba в Ubuntu Linux — Добавление пользователей Samba
Это вторая статья из нашей серии об установке, настройке и управлении Samba в Ubuntu Linux. Первый пост можно найти здесь.
В этом посте мы покажем вам, как добавить пользователя Samba, чтобы он мог получить доступ к общим папкам на машине Ubuntu или Linux с удаленного компьютера. Добавление пользователя Samba важно, потому что без него это может помешать пользователю получить доступ к общим папкам с удаленного компьютера.
Samba имеет список управления доступом (файл smbpasswd) пользователей, которые должны иметь доступ к общим ресурсам Samba.Эти пользователи должны быть уже активны на машине Linux, прежде чем их можно будет добавить в список пользователей Samba.
Если у пользователя нет учетной записи на машине, его нельзя добавить в файл smbpasswd.
Добавление пользователя Samba на сервер Ubuntu
Чтобы добавить пользователя Samba на сервер Ubuntu, откройте терминал и выполните следующие команды.
smbpasswd -a имя пользователяИмя пользователя
следует заменить фактическим именем учетной записи пользователя.
Когда вы запустите приведенную выше команду, она должна предложить вам создать пароль для пользователя.Создайте его, возможно, тот, который соответствует паролю вашей учетной записи Ubuntu.
Затем, чтобы предоставить пользователю доступ к конкретному общему ресурсу, откройте файл smb.conf по адресу /etc/samba/smb.conf и создайте общий ресурс, как показано ниже.
[база данных]comment = Файл базы данныхпуть = / данные / база данныхдействительных пользователей = имя пользователяpublic = нетзаписываемый = дазамените имя пользователя фактическим именем учетной записи и сохраните файл.
Добавление пользователя Samba на рабочий стол Ubuntu
Вышеупомянутые шаги также должны работать на настольных компьютерах Ubuntu. Однако, поскольку большинство пользователей настольных компьютеров используют графический интерфейс для управления данными, откройте Samba из Unity Dash.
Далее выберите Preferences -> Samba Users
Затем нажмите «Добавить» и выберите существующую учетную запись пользователя, затем создайте имя пользователя и пароль Windows для учетной записи.Это то же самое, что мы сделали для настройки сервера Ubuntu.
Чтобы предоставить пользователю доступ к общим ресурсам, создайте общий ресурс и выберите вкладку Access , затем выберите имя пользователя, которому вы хотите получить доступ к общим ресурсам, и сохраните его.
Так создаются пользователи Samba и получают доступ к ресурсам.
Наслаждайтесь!
Глава 21. Первая учетная запись пользователя samba
Глава 21.samba первая учетная запись пользователя
Мы создадим пользователя для нашего файлового сервера samba и сделаем этого пользователя владельцем каталога и всех его файлов. Этот анонимный пользователь получает четкое описание, но не получает оболочку входа в систему.
[root @ RHEL52 samba] # useradd -s / bin / false sambanobody [root @ RHEL52 samba] # usermod -c "Анонимный доступ к Samba" sambanobody [root @ RHEL52 samba] # passwd sambanobody Смена пароля для пользователя sambanobody. Новый пароль UNIX: Введите новый пароль UNIX еще раз: passwd: все токены аутентификации успешно обновлены.Мы можем использовать этого пользователя в качестве владельца файлов и каталогов вместо использования учетной записи root. Этот подход более понятен и безопасен.
[root @ RHEL52 samba] # chown -R sambanobody: sambanobody / srv / samba / [root @ RHEL52 samba] # ls -al / srv / samba / Writable / всего 12 drwxrwxrwx 2 sambanobody sambanobody 4096 21 января, 06:11. drwxr-xr-x 6 sambanobody sambanobody 4096 21 января, 06:11 .. -rwxr - r-- 1 sambanobody sambanobody 6 21 января 06:16 hoi.txtУчетная запись пользователя sambanobody, которую мы создали в предыдущих примерах, еще не используется samba.Ему просто принадлежат файлы и каталоги, которые мы создали для наших общих ресурсов. Цель этого раздела — заставить владение файлами, созданными через общий ресурс samba, принадлежать нашему пользователю sambanobody. Помните, что наш сервер по-прежнему доступен для всех, никому не нужно знать эту учетную запись пользователя или пароль. Нам просто нужен чистый Linux-сервер.
Для этого мы сначала должны сообщить Samba об этом пользователе. Мы можем сделать это, добавив учетную запись в smbpasswd .
[root @ RHEL52 samba] # smbpasswd -a sambanobody Новый пароль SMB: Введите новый пароль SMB еще раз: Добавлен пользователь sambanobody.Чтобы узнать, где Samba хранит эту информацию (на данный момент), используйте smbd -b . Переменная PRIVATE_DIR покажет вам, где находится база данных smbpasswd.
[root @ RHEL52 samba] # smbd -b | grep ЧАСТНЫЙ ЧАСТНЫЙ_КАТАЛОГ: / etc / samba [root @ RHEL52 samba] # ls -l smbpasswd -rw ------- 1 root root 110 21 января 06:19 smbpasswdВы можете использовать простой cat для просмотра содержимого базы данных smbpasswd . У пользователя sambanobody есть пароль (это секрет).
[root @ RHEL52 samba] # cat smbpasswd sambanobody: 503: AE9 ... 9DB309C528E540978: [U]: LCT-4976B05B:Обратите внимание, что в последних версиях Samba tdbsam по умолчанию используется для параметра passdb backend .
root @ ubu1110: ~ # testparm -v 2> / dev / null | grep 'passdb backend' passdb backend = tdbsamТеперь, когда Samba знает об этом пользователе, мы можем настроить наш доступный для записи общий ресурс, чтобы принудительно владеть файлами, созданными с его помощью. Для этого мы используем параметры форсированного пользователя и форсированной группы .Теперь мы можем быть уверены, что все файлы в доступном для записи ресурсе Samba принадлежат одному и тому же пользователю sambanobody.
Ниже приведено обновленное определение нашей доли в smb.conf.
[pubwrite] путь = / SRV / самба / для записи комментарий = файлы для записи заставить пользователя = sambanobody группа сил = sambanobody только чтение = нет гость ок = даКогда вы повторно подключаетесь к общему ресурсу и записываете файл, этот пользователь sambanobody будет владеть только что созданным файлом (и никому не нужно знать пароль).
практика: первая учетная запись пользователя samba
1. Создайте учетную запись пользователя для использования с samba.
2. Добавьте этого пользователя в базу данных samba.
3. Создайте доступный для записи общий каталог и используйте директивы «force user» и «force group» для принудительного владения файлами.
4. Протестируйте работу принудительного пользователя с помощью smbclient, net use и Windows Explorer.
решение: первая учетная запись пользователя samba
1. Создайте учетную запись пользователя для использования с samba.
useradd -s / bin / false smbguestusermod -c 'samba guest'passwd smbguest2.Добавьте этого пользователя в базу данных samba.
smbpasswd -a smbguest3. Создайте доступный для записи общий каталог и используйте директивы force user и force group для принудительного владения файлами.
[userwrite] путь = / srv / samba / userwrite comment = все записывают файлы, принадлежащие smbguest только чтение = нет гость ок = да заставить пользователя = smbguest группа силы = smbguest4.