Данная конфигурация будет содержать общую папку obmen, в которую будут иметь доступ авторизованные пользователи. И каждый пользователь будет иметь свою папку, которая доступна только ему и администратору сервера.
Реализация
Автоматически права на пользовательские каталоги и файлы выставляются в 775, что означает – разрешать записывать читать и выполнять файлы только пользователю и группе, остальным только чтение.
Каждый новый пользователь включается в группу администратора для того, что бы он мог редактировать изменения администратора. Так же включаются в общую группу для доступа к общей папке. Администратор при создании новых пользователей включается в их группу для возможности редактирования файлов и каталогов пользователя. В каждый пользовательский сетевой каталог разрешается доступ пользователю и администратору.
Автоматически права на каталоги и файлы в общем каталоги выставляются в 777, что означает – все пользователи могут читать, записывать и выполнять файлы. Доступ к общей папке разрешается общей группе и администратору.
Настройка сервера
Создайте структуру каталогов. Лучше использовать отдельный раздел с содержанием всех сетевых директорий, например /srv.
Переведите SeLinux в режим disabled.
nano /etc/selinux/config
Заменив текст SELINUX=enforcing
на SELINUX=disabled
Более подробно см.ссылку
Не забудьте включить selinux после завершения настройки.
Создайте общий каталог.
# mkdir /srv/obmen
Создайте приватный каталог пользователя
# mkdir /srv/user1
Создайте пользователя user1 и adminsmb
# useradd -d /dev/null -s /usr/sbin/nologin user1 # useradd -d /dev/null -s /usr/sbin/nologin adminsmb
Задайте пароль пользователю user1 и adminsmb
# smbpasswd -a user1 # smbpasswd -a adminsmb
Создайте общую группу пользователей
# groupadd obmen
Добавьте пользователя user1 в группу obmen. Последующих пользователей, так же добавляйте в эту группу. Это позволит им подключаться к общей сетевой папке obmen. Пользователя adminsmb в группу пользователя user1.
# usermod -a -G obmen user1 # usermod -a -G user1 adminsmb
Проверьте успешное добавление
# groups user1
Установите группу obmen в качестве владельца папки /srv/obmen и предоставьте право на запись
# chown -R :obmen /srv/obmen # chmod 777 /srv/obmen
Так же установите права и группу на каталог пользователя user1.
# chown -R user1 /srv/user1 # chmod 777 /srv/user1
Проверить права и владельцев можно следующей командой
# ll /srv/
В файл /etc/samba/smb.conf добавьте разделы для созданных сетевых папок.
# nano /etc/samba/smb.conf
[global] workgroup = WORKGROUP # имя рабочей группы server string = Samba Server %v # описание сервера netbios name = redos #netbios-имя сервера security = user passdb backend = tdbsam # Создаем лог файл log file = /var/log/samba/log.%m max log size = 50
[obmen] comment = Obmen share with authenticated access path = /srv/obmen browsable = yes writable = yes guest ok = no valid users = @obmen adminsmb # указываем группу и конкретное имя пользователя для доступа force directory mode = 0777 force create mode = 0676 vfs objects = full_audit
[user1] comment = Private share with user #описание общей папки path = /srv/personal/user1 browsable = yes # «yes» — означает, что общая папка не будет скрытой writable = yes # общая папка доступна для записи guest ok = no # разрешен ли гостевой доступ valid users = user1 adminsmb # указываем доступ для пользователей force directory mode = 0775 force create mode = 0674
Перезагрузите службу samba для вступления изменений в силу.
# sudo systemctl restart smb
# sudo systemctl enable smb
Алгоритм создания новых пользователей
Создайте приватный каталог
# mkdir /srv/user2
Создайте самого пользователя
# useradd -d /dev/null -s /usr/sbin/nologin user2
Задайте пароль пользователю
# smbpasswd -a user2
Добавьте созданного пользователя в группу obmen и пользователя adminsmb в группу созданного пользователя.
# usermod -a -G obmen user2 # usermod -a -G user2 adminsmb
Так же установите права и группу на каталог пользователя.
# chown -R user2. /srv/user2 # chmod 777 /srv/user2
В файл /etc/samba/smb.conf добавьте раздел для созданной сетевой папки.
# nano /etc/samba/smb.conf [user2] comment = Private share with user path = /srv/user2 browsable = yes writable = yes guest ok = no valid users = user2 adminsmb force directory mode = 0775 force create mode = 0674
Перезагрузите службу samba для вступления изменений в силу.
# systemctl restart smb
Анонимный доступ
- Создадим папку /srv/guest и настроим ее для анонимного доступа.
mkdir /srv/guest
- Назначим пользователя и группу nobody владельцем и группой для папки /srv/guest. Данный пользователь и группа автоматически присваиваются samba анонимным пользователям.
chown -R nobody:nobody /srv/guest
- Укажем права на директорию, разрешающие пользователю и группе читать и писать в папку.
chmod 775 /srv/guest
- Настройте конфигурацию samba. Файл конфигурации samba находится в /etc/samba/smb.conf. Он состоит из разделов. Приведите его к следующему виду:
[global] workgroup = WORKGROUP server string = Samba Server %v netbios name = redos security = user passdb backend = tdbsam map to guest = bad user #опция bad user означает, что доступ будет предоставлен от имени пользователя nobody [guest] comment = Share with anonymous access path = /srv/guest browsable = yes writable = yes guest ok = yes