Samba/Usershares: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
{{DISPLAYTITLE:Usershares}}
{{DISPLAYTITLE:Usershares}}
С версии Samba 3.0.23 появилась возможность непривилегированным пользователям (non-root) создавать, модифицировать и удалять свои собственные ресурсы для публикации их в сети.
Usershare — возможность непривилегированным пользователям (non-root) создавать, модифицировать и удалять свои собственные ресурсы для публикации их в сети.


Рассмотрим создание такого ресурса на примере Alt Workstations 9. Создадим папку и дадим доступ всем на просмотр (без аутентификации).
Возможность публиковать свои папки пользователем настроена по умолчанию в дистрибутивах Альт, поэтому чаще всего первый раздел данной статьи можно пропустить.  


Приводим конфигурационный файл Samba ({{path|/etc/samba/smb.conf}}) к следующему виду:
== Предварительная настройка ==
<source lang="ini">[global]
 
Для создания общего ресурса пользователем:
# В конфигурационном файле Samba ({{path|/etc/samba/smb.conf}}) должны быть заданы следующие переменные:
#:<syntaxhighlight lang="ini">[global]
# ----------------------- User Shares Options -------------------------
         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
        workgroup = WORKGROUP
</syntaxhighlight>
        server string = Samba Server Version %v
#:где {{path|/var/lib/samba/usershares}} — каталог, в котором будут храниться описания пользовательских общих ресурсов.
        log file = /var/log/samba/log.%m
# Пользователь должен входить в группу sambashare:
        max log size = 50
#:<syntaxhighlight lang="bash">
        security = user
$ groups
        passdb backend = tdbsam
user wheel uucp proc cdrom floppy cdwriter audio radio users sambashare camera vboxusers xgrp scanner
        load printers = yes
</syntaxhighlight>
        cups options = raw
 
        map to guest = Bad User
{{Note| Для добавления пользователя в группу sambashare, нужно выполнить команду:
[homes]
 
        comment = Home Directories
<syntaxhighlight lang="bash"># gpasswd -a <имя_пользователя> sambashare</syntaxhighlight>
        browseable = no
 
        writable = yes
и перезапустить службы smbd и nmbd:
[printers]
 
        comment = All Printers
<syntaxhighlight lang="bash"># systemctl restart smb
        path = /var/spool/samba
# systemctl restart nmb</syntaxhighlight>
        browseable = no
 
        guest ok = no
Далее следует завершить сеанс и войти в него вновь. }}
        writable = no
 
        printable = yes</source>
== Управление пользователями ==


Данный конфигурационный файл отличается от конфигурации по-умолчанию в Alt WS 9 добавлением опции "map to guest = Bad User" (не берем в расчет комментарии и пустые строки). Данная опция позволяет воспользоваться опубликованным ресурсом без аутентификации, в режиме Гостя.
{{Note|В данном разделе описывается работа с локальной (tdbsam) базой данных пользователей Samba.}}


Как видно из конфигурации, пользователи могут создавать и публиковать свои папки в директории '''/var/lib/samba/usershares'''.
Samba использует отдельную от системной базу данных пользователей. Для возможности доступа пользователя к папке (если запрещен гостевой доступ) необходимо внести его в базу данных Samba и установить пароль для доступа к общим ресурсам (он может совпадать с основным паролем пользователя). Следует учитывать, что в базу данных Samba можно добавлять пользователей, которые уже есть в системе.  


Смотрим права на эту папку:
Добавить пользователя в базу данных Samba можно, выполнив команду:
<source lang="text">alt-ws-9 ~ # ls -la /var/lib/samba/usershares
итого 36
drwxrwx--T 6 root sambashare 4096 дек 19 11:50 .</source>


В этой директории создавать папки могут только члены группы '''sambashare'''.
<syntaxhighlight lang="bash"># smbpasswd -a <имя_пользователя></syntaxhighlight>


Добавляем пользователя в эту группу:
Например:
<source lang="text">alt-ws-9 ~ # usermod -aG sambashare user
<syntaxhighlight lang="bash"># smbpasswd -a user
alt-ws-9 ~ # groups user
New SMB password:
user : user wheel uucp proc cdrom floppy cdwriter audio radio users scanner xgrp vboxusers video camera sambashare vmusers</source>
Retype new SMB password:
Added user user.</syntaxhighlight>


Также для подключения в режиме Гость устанавливаем следующие права на папку:
Можно создать отдельного пользователя, которому разрешить только доступ к Samba-ресурсам и запретить полноценный вход в систему:
<source lang="text">alt-ws-9 ~ # chmod 1775 /var/lib/samba/usershares</source>
<syntaxhighlight lang="bash"># useradd user_samba -d /dev/null -s /usr/bin/nologin
# smbpasswd -a user_samba</syntaxhighlight>


После добавление пользователя в группу необходимо перелогиниться.
Просмотр списка пользователей Samba:
После перезагрузки пользователь может создавать и публиковать папки.
<syntaxhighlight lang="bash"># pdbedit -L
user_samba:501:</syntaxhighlight>


== Добавление папки через интерфейс командной строки ==
Смена пароля пользователя Samba:
===== Все действия выполняем с правами пользователя =====
<syntaxhighlight lang="bash"># smbpasswd <имя_пользователя></syntaxhighlight>


Создаем папку:
== Настройка общего доступа ==
<source lang="text">user@alt-ws-9 ~ $ mkdir /var/lib/samba/usershares/folder2</source>
=== В файловом менеджере ===
Предоставление общего доступа к папке:
* Файловый менеджер Thunar:
*# В контекстном меню папки выбрать пункт «Свойства»;
*# В открывшемся окне на вкладке «Общий доступ» отметить пункт «Разрешить общий доступ к этой папке», настроить параметры публикации и нажать кнопку «ОК»
*:[[Изображение:Samba_usershare_thunar.png|Thunar. Предоставление общего доступа к папке]]
* Файловый менеджер Caja:
*# В контекстном меню папки выбрать пункт «Опции публикации»;
*# В открывшемся окне отметить пункт «Разрешить общий доступ к этой папке», настроить параметры публикации и нажать кнопку «ОК»
*:[[Изображение:Samba_usershare_caja.png|Caja. Предоставление общего доступа к папке]]


Публикуем папку:
=== В консоли ===
<source lang="text">user@alt-ws-9 ~ $ net usershare add share2 /var/lib/samba/usershares/folder2 "Комментарий" "Everyone:R" "guest_ok=y"</source>


* share2 - название опубликованного ресурса
{{Note|Все действия выполняются с правами пользователя.}}
* /var/lib/samba/usershares/folder2 - опубликованная папка
 
* "Everyone:R" - права доступа
Команды для настройки общего доступа:
* "guest_ok=y" - возможность подключения без аутентификации
 
<syntaxhighlight lang="bash">$ net usershare add <имя_ресурса> <путь> [комментарий] [пользователь:{R|D|F}] [guest_ok={y|n}]
$ net usershare delete <имя_ресурса>
$ net usershare list
$ net usershare info</syntaxhighlight>
 
Например, открыть доступ к папке {{path|Общедоступные}}:
<syntaxhighlight lang="bash">$ net usershare add Share /home/user/Общедоступные/ "" "Everyone:R" "guest_ok=y"</syntaxhighlight>
 
* Share — название опубликованного ресурса;
* /home/user/Общедоступные — опубликованная папка;
* "" — пустой комментарий;
* "Everyone:R" права доступа;
* "guest_ok=y" возможность подключения без аутентификации.


Просмотр списка опубликованных ресурсов:
Просмотр списка опубликованных ресурсов:
<source lang="text">user@alt-ws-9 ~ $ net usershare list</source>
<syntaxhighlight lang="bash">$ net usershare list
Share
</syntaxhighlight>


Просмотр информации об опубликованных ресурсах:
Просмотр информации об опубликованных ресурсах:
<source lang="text">user@alt-ws-9 ~ $ net usershare info</source>
<syntaxhighlight lang="bash">$ net usershare info
[Share]
path=/home/user/Общедоступные
comment=
usershare_acl=Everyone:R,Unix User\user:F,
guest_ok=y
</syntaxhighlight>
 
Отменить публикацию папки:
<syntaxhighlight lang="bash">$ net usershare delete Share
</syntaxhighlight>
 
== Просмотр публичных ресурсов ==
=== В файловом менеджере ===
 
Для подключения к общей папке достаточно выбрать закладку «Обзор сети»/«Просмотр сети» в файловом менеджере и затем нужный компьютер.
 
Также можно указать в адресной строке файлового менеджера протокол и адрес сервера (smb://<имя_сервера>/<имя_ресурса> или smb://<IP_сервера>/<имя_ресурса>) и нажать {{button|Enter}}. Будут показаны ресурсы с общим доступом:


== Добавление папки через графический интерфейс ==
[[Изображение:Samba_usershare_thunar2.png|Thunar. Просмотр публичных ресурсов]]
Открываем проводник (Caja):
Меню - Мой компьютер


Заходим в директорию /var/lib/samba/usershares, создаем папку и публикуем ее:
Для доступа к папке, к которой запрещен анонимный доступ, необходимо указать имя и пароль пользователя Samba:  


[[Изображение:Samba usershare Screenshot1-1.png|Добавление папки]]
[[Изображение:Samba_usershare_thunar3.png|Thunar. Параметры подключения к общей папке]]


[[Файл:Samba usershare Screenshot1-2.png|Публикация папки]]
=== В консоли ===
Просмотр списка доступных ресурсов на сервере:
<syntaxhighlight lang="bash">$ smbclient -L <имя_сервера> -U%</syntaxhighlight>


{{Attention|Важно чтобы имя папки и имя публикации было разным!}}
Например:
<syntaxhighlight lang="bash">$ smbclient -L 192.168.0.124 -U%</syntaxhighlight>
или:
<syntaxhighlight lang="bash">$ smbclient -L host-01.local -U%</syntaxhighlight>


После этого пользователи в сети могут подключаться к сетевому ресурсу.
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}
{{Category navigation|title=Samba|category=Samba|sortkey={{SUBPAGENAME}}}}

Версия от 15:03, 9 июня 2022

Usershare — возможность непривилегированным пользователям (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 можно, выполнив команду:

# 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

Просмотр списка пользователей 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. Параметры подключения к общей папке

В консоли

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

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

Например:

$ smbclient -L 192.168.0.124 -U%

или:

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