Samba/Usershares

Материал из ALT Linux Wiki

Usershares — возможность непривилегированным пользователям (non-root) создавать, модифицировать и удалять свои собственные ресурсы для публикации их в сети.

Возможность публиковать свои папки пользователем настроена по умолчанию в дистрибутивах Альт, поэтому чаще всего первый раздел данной статьи можно пропустить.

Предварительная настройка

Для создания общего ресурса пользователем:

  1. В конфигурационном файле Samba (/etc/samba/smb.conf) должны быть заданы следующие переменные:
    [global]
    # ----------------------- User Shares Options -------------------------
            usershare path = /var/lib/samba/usershares
            usershare max shares = 100
            usershare allow guests = yes
            usershare owner only = yes
    
    где /var/lib/samba/usershares — каталог, в котором будут храниться описания пользовательских общих ресурсов.
  2. Пользователь должен входить в группу sambashare:
    $ groups
    user wheel uucp proc cdrom floppy cdwriter audio radio users sambashare camera vboxusers xgrp scanner
    
Примечание: Для добавления пользователя в группу sambashare, нужно выполнить команду:
# gpasswd -a <имя_пользователя> sambashare

и перезапустить службы smbd и nmbd:

# systemctl restart smb
# systemctl restart nmb
Далее следует завершить сеанс и войти в него вновь.


Управление пользователями

Примечание: В данном разделе описывается работа с локальной (tdbsam) базой данных пользователей Samba.


Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.

Добавить пользователя в базу данных Samba можно, выполнив команду (должен быть установлен пакет samba-client):

# smbpasswd -a <имя_пользователя>

Например:

# smbpasswd -a user
New SMB password:
Retype new SMB password:
Added user user.

Можно создать отдельного пользователя, которому разрешить только доступ к Samba-ресурсам и запретить полноценный вход в систему:

# useradd user_samba -d /dev/null -s /usr/bin/nologin
# smbpasswd -a user_samba
Примечание: Специальный файловый ресурс [homes] в /etc/samba/smb.conf используется для подключения домашних каталогов пользователей:
[homes]
    comment = Home Directories
    browseable = no
    writable = yes

Для возможности использования данного ресурса, необходимо добавить каждого локального пользователя в список пользователей Samba.


Просмотр списка пользователей Samba:

# pdbedit -L
user_samba:501:

Смена пароля пользователя Samba:

# smbpasswd <имя_пользователя>

Настройка общего доступа

В файловом менеджере

Предоставление общего доступа к папке:

  • Файловый менеджер Thunar:
    1. В контекстном меню папки выбрать пункт «Свойства»;
    2. В открывшемся окне на вкладке «Общий доступ» отметить пункт «Разрешить общий доступ к этой папке», настроить параметры публикации и нажать кнопку «ОК»
    Thunar. Предоставление общего доступа к папке
  • Файловый менеджер Caja:
    1. В контекстном меню папки выбрать пункт «Опции публикации»;
    2. В открывшемся окне отметить пункт «Разрешить общий доступ к этой папке», настроить параметры публикации и нажать кнопку «ОК»
    Caja. Предоставление общего доступа к папке

В консоли

Примечание: Все действия выполняются с правами пользователя.


Команды для настройки общего доступа:

$ net usershare add <имя_ресурса> <путь> [комментарий] [пользователь:{R|D|F}] [guest_ok={y|n}]
$ net usershare delete <имя_ресурса>
$ net usershare list
$ net usershare info

Например, открыть доступ к папке Общедоступные:

$ net usershare add Share /home/user/Общедоступные/ "" "Everyone:R" "guest_ok=y"
  • Share — название опубликованного ресурса;
  • /home/user/Общедоступные — абсолютный путь к опубликованной папке;
  • "" — пустой комментарий;
  • "Everyone:R" — права доступа;
  • "guest_ok=y" — возможность подключения без аутентификации.

Просмотр списка опубликованных ресурсов:

$ net usershare list
Share

Просмотр информации об опубликованных ресурсах:

$ net usershare info
[Share]
path=/home/user/Общедоступные
comment=
usershare_acl=Everyone:R,Unix User\user:F,
guest_ok=y

Отменить публикацию папки:

$ net usershare delete Share

Просмотр публичных ресурсов

В файловом менеджере

Для подключения к общей папке достаточно выбрать закладку «Обзор сети»/«Просмотр сети» в файловом менеджере и затем нужный компьютер.

Также можно указать в адресной строке файлового менеджера протокол и адрес сервера (smb://<имя_сервера>/<имя_ресурса> или smb://<IP_сервера>/<имя_ресурса>) и нажать Enter. Будут показаны ресурсы с общим доступом:

Thunar. Просмотр публичных ресурсов

Для доступа к папке, к которой запрещен анонимный доступ, необходимо указать имя и пароль пользователя Samba:

Thunar. Параметры подключения к общей папке

Примечание: Обращение к домашней папке пользователя выполняется по имени пользователя smb://<имя_сервера>/<имя_пользователя> (например, smb://192.168.0.120/user). При каждом таком обращении Samba сначала ищет имя запрошенного ресурса в списке общих ресурсов, и если имя не найдено проверяет наличие в конфигурации (/etc/samba/smb.conf) секции [homes]. Есть такая секция есть, то имя трактуется как имя пользователя, и проверяется по базе данных пользователей сервера Samba. Если имя найдено в базе данных пользователей, то Samba предоставляет в качестве общего ресурса домашний каталог этого пользователя:

Thunar. Доступ к домашней папке пользователя


В консоли

Просмотр списка доступных ресурсов на сервере:

$ smbclient -L <имя_сервера> -U%

Например:

$ smbclient -L 192.168.0.124 -U%

или:

$ smbclient -L host-01.local -U%