Samba/Usershares: различия между версиями
мНет описания правки |
(+ samba-usershares) |
||
Строка 6: | Строка 6: | ||
== Предварительная настройка == | == Предварительная настройка == | ||
Для создания общего ресурса пользователем: | В ОС Альт c {{pkg|samba}}, начиная с версии 4.16.7-alt5, существует пакет {{pkg|samba-usershares}}, который предоставляет файл конфигурации, группу и каталоги для поддержки общих ресурсов пользователей. | ||
# В конфигурационном файле Samba ({{path|/etc/samba/smb.conf}}) | |||
Для создания общего ресурса пользователем должны быть выполнены следующие условия: | |||
# Установлен пакет {{pkg|samba-usershares}}: | |||
#:<syntaxhighlight lang="bash"># samba-usershares</syntaxhighlight> | |||
# В конфигурационном файле Samba ({{path|/etc/samba/smb.conf}}) в секции [global] подключён файл {{path|/etc/samba/usershares.conf}}: | |||
#:<syntaxhighlight lang="ini">[global] | |||
include = /etc/samba/usershares.conf</syntaxhighlight> | |||
# В конфигурационном файле ({{path|/etc/samba/usershares.conf}}) заданы следующие переменные: | |||
#:<syntaxhighlight lang="ini">[global] | #:<syntaxhighlight lang="ini">[global] | ||
usershare path = /var/lib/samba/usershares | usershare path = /var/lib/samba/usershares | ||
usershare max shares = 100 | usershare max shares = 100 | ||
usershare allow guests = yes | usershare allow guests = yes | ||
usershare owner only = yes | usershare owner only = yes | ||
usershare prefix deny list = /etc /dev /sys /proc | |||
usershare prefix allow list = /home /srv /mnt /media /var | |||
</syntaxhighlight> | </syntaxhighlight> | ||
#:где {{path|/var/lib/samba/usershares}} — | #:где | ||
# Пользователь должен входить в группу | #:*''usershare path'' — указывает каталог, в котором будут храниться описания пользовательских общих ресурсов (по умолчанию {{path|/var/lib/samba/usershares}}); | ||
#:*''usershare max shares'' — задаёт максимальное количество определяемых пользователями общих ресурсов. При достижении этого числа, общие каталоги не будут создаваться (''net usershare add: maximum number of allowed usershares (10) reached''). Если данный параметр закомментирован или его значение равно нулю, пользователи не смогут создавать общие ресурсы (''net usershare: usershares are currently disabled''); | |||
#:*''usershare allow guests'' — определяет можно ли общим ресурсам разрешить гостевой доступ. Если данный параметр закомментирован или его значение равно '''no''', пользователи не смогут разрешать общим ресурсам гостевой доступ; | |||
#:*''usershare owner only'' — определяет возможно ли предоставить общий доступ каталогу не его владелец. Если данный параметр закомментирован или его значение равно '''yes''', пользователи смогут предоставлять общий доступ только тем каталогам, владельцами которых они являются (''net usershare add: cannot share path /tmp/user5 as we are restricted to only sharing directories we own''); | |||
#:*''usershare prefix deny list'' — определяет список запрещённых каталогов (абсолютных путей), подкаталогам которых пользователи не смогут предоставлять общий доступ (''info_fn: Error was Path is denied'' — при попытке создания общего ресурса в подкаталоге из списка запрета); | |||
#:*''usershare prefix allow list'' — определяет список разрешённых каталогов (абсолютных путей), подкаталогам которых пользователи могут предоставлять общий доступ (''info_fn: Error was Path not allowed'' — при попытке создания общего ресурса вне подкаталога из списка разрешений). | |||
#:Если настроен список запрещенных каталогов ''usershare prefix deny list'', и список разрешенных каталогов ''usershare prefix allow list'', сначала обрабатывается список запрета, а затем уже список разрешений. | |||
# Пользователь должен входить в группу usershares: | |||
#:<syntaxhighlight lang="bash"> | #:<syntaxhighlight lang="bash"> | ||
$ groups | $ groups | ||
user wheel uucp proc cdrom floppy cdwriter audio radio users | user wheel uucp proc cdrom floppy cdwriter audio radio users usershares camera vboxusers xgrp scanner | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Note| Для добавления пользователя в группу | {{Note| Для добавления пользователя в группу usershares, нужно выполнить команду: | ||
<syntaxhighlight lang="bash"># gpasswd -a <имя_пользователя> | <syntaxhighlight lang="bash"># gpasswd -a <имя_пользователя> usershares</syntaxhighlight> | ||
и перезапустить службы smbd и nmbd: | и перезапустить службы smbd и nmbd: | ||
Строка 32: | Строка 47: | ||
Далее следует завершить сеанс и войти в него вновь. }} | Далее следует завершить сеанс и войти в него вновь. }} | ||
{{Note| В дистрибутивах с {{pkg|samba}} до версии 4.16.7-alt5 в конфигурационном файле Samba ({{path|/etc/samba/smb.conf}}) должны быть заданы следующие переменные: | |||
<syntaxhighlight lang="ini">[global] | |||
# ----------------------- User Shares Options ------------------------- | |||
usershare path = /var/lib/samba/usershares | |||
usershare max shares = 100 | |||
usershare allow guests = yes | |||
usershare owner only = yes | |||
</syntaxhighlight> | |||
Пользователь должен входить в группу sambashare.}} | |||
== Управление пользователями == | == Управление пользователями == |
Версия от 11:55, 14 марта 2023
Usershares — возможность непривилегированным пользователям (non-root) создавать, модифицировать и удалять свои собственные ресурсы для публикации их в сети.
Возможность публиковать свои папки пользователем настроена по умолчанию в дистрибутивах Альт, поэтому чаще всего первый раздел данной статьи можно пропустить.
Предварительная настройка
В ОС Альт c samba, начиная с версии 4.16.7-alt5, существует пакет samba-usershares, который предоставляет файл конфигурации, группу и каталоги для поддержки общих ресурсов пользователей.
Для создания общего ресурса пользователем должны быть выполнены следующие условия:
- Установлен пакет samba-usershares:
# samba-usershares
- В конфигурационном файле Samba (/etc/samba/smb.conf) в секции [global] подключён файл /etc/samba/usershares.conf:
[global] include = /etc/samba/usershares.conf
- В конфигурационном файле (/etc/samba/usershares.conf) заданы следующие переменные:
[global] usershare path = /var/lib/samba/usershares usershare max shares = 100 usershare allow guests = yes usershare owner only = yes usershare prefix deny list = /etc /dev /sys /proc usershare prefix allow list = /home /srv /mnt /media /var
- где
- usershare path — указывает каталог, в котором будут храниться описания пользовательских общих ресурсов (по умолчанию /var/lib/samba/usershares);
- usershare max shares — задаёт максимальное количество определяемых пользователями общих ресурсов. При достижении этого числа, общие каталоги не будут создаваться (net usershare add: maximum number of allowed usershares (10) reached). Если данный параметр закомментирован или его значение равно нулю, пользователи не смогут создавать общие ресурсы (net usershare: usershares are currently disabled);
- usershare allow guests — определяет можно ли общим ресурсам разрешить гостевой доступ. Если данный параметр закомментирован или его значение равно no, пользователи не смогут разрешать общим ресурсам гостевой доступ;
- usershare owner only — определяет возможно ли предоставить общий доступ каталогу не его владелец. Если данный параметр закомментирован или его значение равно yes, пользователи смогут предоставлять общий доступ только тем каталогам, владельцами которых они являются (net usershare add: cannot share path /tmp/user5 as we are restricted to only sharing directories we own);
- usershare prefix deny list — определяет список запрещённых каталогов (абсолютных путей), подкаталогам которых пользователи не смогут предоставлять общий доступ (info_fn: Error was Path is denied — при попытке создания общего ресурса в подкаталоге из списка запрета);
- usershare prefix allow list — определяет список разрешённых каталогов (абсолютных путей), подкаталогам которых пользователи могут предоставлять общий доступ (info_fn: Error was Path not allowed — при попытке создания общего ресурса вне подкаталога из списка разрешений).
- Если настроен список запрещенных каталогов usershare prefix deny list, и список разрешенных каталогов usershare prefix allow list, сначала обрабатывается список запрета, а затем уже список разрешений.
- Пользователь должен входить в группу usershares:
$ groups user wheel uucp proc cdrom floppy cdwriter audio radio users usershares camera vboxusers xgrp scanner
# gpasswd -a <имя_пользователя> usershares
и перезапустить службы smbd и nmbd:
# systemctl restart smb
# systemctl restart nmb
[global]
# ----------------------- User Shares Options -------------------------
usershare path = /var/lib/samba/usershares
usershare max shares = 100
usershare allow guests = yes
usershare owner only = yes
Управление пользователями
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]
comment = Home Directories
browseable = no
writable = yes
Для возможности использования данного ресурса, необходимо добавить каждого локального пользователя в список пользователей Samba.
Просмотр списка пользователей Samba:
# pdbedit -L
user_samba:501:
Смена пароля пользователя Samba:
# smbpasswd <имя_пользователя>
Настройка общего доступа
В файловом менеджере
Предоставление общего доступа к папке:
- Файловый менеджер Thunar:
- В контекстном меню папки выбрать пункт «Свойства»;
- В открывшемся окне на вкладке «Общий доступ» отметить пункт «Разрешить общий доступ к этой папке», настроить параметры публикации и нажать кнопку «ОК»
- Файловый менеджер 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. Будут показаны ресурсы с общим доступом:
Для доступа к папке, к которой запрещен анонимный доступ, необходимо указать имя и пароль пользователя Samba:
В консоли
Просмотр списка доступных ресурсов на сервере:
$ smbclient -L <имя_сервера> -U%
Например:
$ smbclient -L 192.168.0.124 -U%
или:
$ smbclient -L host-01.local -U%