Автор Тема: Samba и монтирование ресурсов под разными пользователями  (Прочитано 4287 раз)

Оффлайн Sandro

  • Начинающий
  • *
  • Сообщений: 20
    • Email
Прошу помощи у знающих людей. Гуглить умею, но решения не нашёл.

Имеем в локальной сети (домена нет и не будет, соответственно krb тоже):

    1 сервер на Alt Linux, на нём крутится Samba на 100 пользователей. Расшарен ресурс на сервере по пути /shareall в нём папки с разграниченными правами чтения и записи индивидуально для пользователей входящие в группы (отделы);
    50 клиентских компьютеров, на каждом компьютере созданы 100 одинаковых пользователей, т.е. на каждом компьютере от user1 до user100. На сервере настроил разграничения пользователей к файлам и папкам.

Как сделать так, чтобы авторизовался пользователь на клиентском компьютере и папка монтировалась автоматически (не под root, а именно под user1 и права к файлам были соответственно как для user1). А если авторизовался как user2, то папка автоматически монтировалась под user2 и права к файлам были соответственно как для user2. И всё это делалось без запуска пользователями терминала для ввода команды монтирования, в которой указан логин или пароль.

Встречал в интернете много решений через fstab, но минус в том, что в файле надо указывать конкретного одного пользователя, а у меня их 50. Встречал решения, где пользователю надо ввести команды в терминал, что не приемлемо, слишком много движений. Встречал через pammount, но такие решения завязаны на доменную авторизацию через krb, а домена нет.

Помогите с такой вот жизненной задачкой в IT.

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 925
    • Домашняя страница
    • Email
Андрей Черепанов (cas@)

Оффлайн Sandro

  • Начинающий
  • *
  • Сообщений: 20
    • Email
https://docs.altlinux.org/ru-RU/archive/8.0/html/alt-workstation/ch33s06s02.html
"В этом случае заданный ресурс подключается с заданного сервера автоматически при каждом входе доменным пользователем"
Ну вот, не вчитались в мою проблему, увидев pammount дали ссылку. А то что домена нет, krb5 тоже работать не будет не смущает?

Оффлайн Skull

  • Глобальный модератор
  • *****
  • Сообщений: 19 925
    • Домашняя страница
    • Email
А подумать, что это будет и без доменного работать?
Андрей Черепанов (cas@)

Оффлайн Sandro

  • Начинающий
  • *
  • Сообщений: 20
    • Email
Попробую сегодня, отпишусь, работает ли это решение без домена.


Оффлайн Sandro

  • Начинающий
  • *
  • Сообщений: 20
    • Email
https://forum.altlinux.org/index.php?topic=44033.msg350421#msg350421
Спасибо! Буду примного благодарен Вам, если напишите настройки smb.conf (ведь от него тоже зависит), потом на стороне сервера samba надо ввести что-то типо:
sudo smbpasswd -a user1
sudo smbpasswd -e user1
sudo smbpasswd -a user2
sudo smbpasswd -e user2
Правильные настройки smb.conf для такой задачи, где в локальной сети только Linux далеко не шаблонные.
Какие?

На стороне клиента:
apt-get install autofs cifs-utils
users=user1 && pass=Qwerty_1 && domains=WORKGROUP
(у меня нет домена пишу WORKGROUP, вообще не понял куда это писать)


Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 041
  • ITS
https://forum.altlinux.org/index.php?topic=44374.0

# cat /etc/samba/smb.conf

Цитировать
Hosts Allow/Hosts Deny lets you restrict who can connect, and you can
# specifiy it as a per share option as well
#
   workgroup = MYGROUP
   server string = Samba Server Version %v
   
;   netbios name = MYSERVER
   
;   interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
;   hosts allow = 127. 192.168.12. 192.168.13.

domains=WORKGROUP - это сетевая группа в которую входит виндовая шара, для самбы она указывается в linux в строчке workgroup = MYGROUP
Домен я тоже не пользую.

Оффлайн rits

  • Завсегдатай
  • *
  • Сообщений: 1 041
  • ITS
Для управления учётными записями предназначена утилита smbpasswd; полный список её
возможностей можно узнать из соответствующей man-страницы, здесь же рассмотрим
наиболее частые методы использования.

Создание нового пользователя:
# smbpasswd -a <User_name>
Смена пароля у существующего пользователя:
# smbpasswd <User_name>
Удаление существующего пользователя:
# smbpasswd -x <User_name>
Приостановление учётной записи без удаления:
# smbpasswd -d <User_name>
Подключение данного компьютера к существующему домену:
# smbpasswd -j <Domain_name> -U <Administrator_name>

Также добавить пользователя можно и командой pdbedit:
# pdbedit -a <User_name>
Удаление существующего пользователя:
# pdbedit -x <User_name>

ACL - Использование (Access control list - cписки контроля доступа)

1) Добавить опцию монтирования acl к файловой системе в fstab
# cat /etc/fstab

UUID=c49f8dac-...   /mnt/smb/documents   ext4   rw,relatime,acl      1   2

2) В файл smb.conf внести параметры

[global]
...
[Документы]
# наследовать ACL
inherit acls = yes
# наследовать владельца (вышестоящей директории)
inherit owner = yes
# наследовать права
inherit permissions = yes
# позвоялет редактору прав из windows корректно обрабатывать
# наследуемые права
map acl inherit = yes
...



Общий рабочий файл SAMBA Version 4.12.10
# nano -b /etc/samba/smb.conf

[global]
# Рабочая группа
workgroup = GP
# имя машины в "сетевом окружении"
#netbios name = nasdoc
printing = CUPS
printcap name = CUPS
show add printer wizard = No
#wins support = yes
[Документы]
comment = Documents
path = /mnt/smb/documents
# Доступ к шаре только на чтение
read only = No
browseable = yes
# маска для создаваемых файлов
create mask = 0660
# маска для создаваемых директорий
directory mask = 0770
   # наследовать ACL
   inherit acls = yes
   # наследовать владельца (вышестоящей директории)
   inherit owner = yes
   # наследовать права
   inherit permissions = yes
   # позвоялет редактору прав из винды корректно обрабатывать
   # наследуемые права
   map acl inherit = yes

##Recycle Bin Configuration File##
#подключаем vfs обьект Корзина
vfs objects = recycle
#относительный путь к каталогу корзины
recycle:repository =/mnt/smb/documents/RECYCLER/%U
#сохранять каталоги
recycle:keeptree = Yes
#задаёт изменение времени доступа к файлу при его помещении в корзину
recycle:touch  = Yes
#делать версии файлов, если имена одинаковы
recycle:versions = Yes
#исключения для удаления (файлы с такими расширениями не будут помещены в корзину)
#recycle:exclude = *.tmp *.temp *.o *.obj ~$* *.~?? *.log *.trace
#максимальный размер файла для помещения в корзину
recycle:maxsize = 10485760
#исключения для удаления каталогов (анологично exclude )
#recylce:excludedir = tmp temp cache
#исключения для новых версий (эти файлы не будут сохранены при удалении нескольких копий)
#recycle:noversions = *.doc *.xls *.ppt

# список пользователей которым можно пользоваться шарой
valid users = user1 user2 user3
# или valid users = user1 user2 user3 вставить в файл /etc/samba/validusers и
# include = /etc/samba/validusers

recycle:repository = ... - это путь к папке-корзине, которую надо создать.

Права на каталоги указывать не стал, нужно самостоятельно пробовать. С ACL шара более гибко и проще настраивается на мой взгляд. В боевом режиме пока не пробовал, только на тестах.