Автор Тема: [РЕШЕНО] Файл-сервер на Samba в школе  (Прочитано 7267 раз)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #15 : 14.03.2012 19:29:22 »
Ну и хорошо  :)
В шапке [решено] поставьте тогда.
P.S. Хотя можно было, наверно, 770, чтоб уж наверняка :-)
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #16 : 14.03.2012 19:37:44 »
тек-с, проблемка
В каталог mo1 заходит пользователь mo, создаёт свой каталог (mo 222), а в нём текстовый файл mo. Получаем:

Цитировать
ls -l /home/testshare/mo1
итого 8
-rwxrwx--x 1 mo school32    5 Мар 14 21:28 11
drwxrwx--x 2 mo school32 4096 Мар 14 21:29 mo 222

Теперь пользователь dir заходит в шару mo/mo 222/ и НЕ МОЖЕТ редактировать текстовый файл, созданный ранее пользователем mo. Но свой файл (dir22) в этой папке создать может. И удалить файл и каталог, созданные пользователем mo может.

Цитировать
ls -l /home/testshare/mo1/mo\ 222/
итого 8
-rwxr--r-- 1 direktor school32 2 Фев 16 15:41 dir22
-rwxr--r-- 1 mo       school32 5 Мар 14 21:25 mo

Попробую про 770 (правда, не знаю, с чем это едят) :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #17 : 14.03.2012 19:53:19 »
> Попробую про 770 (правда, не знаю, с чем это едят)
Это можно и для всех файлов и папок сделать, впринципе, даже для shara. Запретить читать/писать всем остальным, кроме группы и владельца.

Попробуйте, добавить для каждой шары:
create mask = 0770
directory mask = 0770
« Последнее редактирование: 14.03.2012 19:55:07 от berkut_174 »
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #18 : 14.03.2012 19:58:02 »
Немного проще поясню, в чём проблема.

Пользователь создаёт каталог со своим именем <username>_folder или файл <username>_file.
В корневой шаре можно создавать каталоги и файлы, но другие пользователи с правом доступа к этой шаре уже не могут редактировать файл или создавать файл во вложенном каталоге.

Пример: пользователь direktor заходит в каталог mo1 и создаёт там свой каталог dir_folder, а в нём файл dir_file Получаю
Цитировать
[root@server32 mo1]# ls -l
итого 8
drwxr-xr-x 2 direktor school32 4096 Мар 14 21:42 dir_folder

Цитировать
[root@server32 dir_folder]# ls -l
итого 4
-rwxr--r-- 1 direktor school32 2 Фев 16 15:41 dir_file

Теперь пользователь mo заходит в шару mo1 и создает каталог mo_folder, а в нём mo_file.
Пользователь mo может зайти в dir_folder, но не может редактировать в ней dir_file или создать свой файл.
И пользователь direktor, снова зайдя в mo1,
Цитировать
[root@server32 mo1]# ls -l
итого 8
drwxr-xr-x 2 direktor school32 4096 Мар 14 21:42 dir_folder
drwxr-xr-x 2 mo       school32 4096 Мар 14 21:44 mo_folder
может зайти в mo_folder, но не может создавать там файлы.

Как сделать-то, чтобы любой пользователь мог иметь полный доступ к файлам и каталогам в доступной ему шаре? Делать маску 777 ?

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #19 : 14.03.2012 20:07:24 »
>Делать маску 777 ?
Да.
create mask = 0777
directory mask = 0777
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #20 : 14.03.2012 20:19:32 »
Да!!! Получилось!! Спасибо Вам, друг berkut_174!

Ещё вопросик, в примерах не нашёл: как ограничить время логина пользователя к каталогу? Например, после входа пользователя в шару, чтобы через 15 минут снова вылезло окошка логина? А то учитель откроет свой "секретный" каталог и оставит, а там любой ученик сядет и сделает что хошш.

И ещё. Если в smb.conf добавить
Цитировать
   hide dot files = yes
   inherit permissions = yes
   vfs objects = recycle
   recycle:repository = .recycle/%m
   recycle:keeptree = yes
   recycle:versions = yes
   recycle:touch = yes
   recycle:directory_mode = 0777
   recycle:subdir_mode = 0700
Поможет при случайном удалении файлов?

Оффлайн asket

  • Участник
  • *
  • Сообщений: 355
  • просто пользователь..
Re: Файл-сервер на Samba: нужна помощь
« Ответ #21 : 14.03.2012 23:42:02 »
..........

Как сделать-то, чтобы любой пользователь мог иметь полный доступ к файлам и каталогам в доступной ему шаре? Делать маску 777 ?
Другой вариант -создать группу и внести в нее пользователей шары, а в конфиг шары добавить
force group = somegroup
« Последнее редактирование: 14.03.2012 23:43:38 от asket »

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: Файл-сервер на Samba: нужна помощь
« Ответ #22 : 15.03.2012 00:17:10 »
Ну что же, благодаря помощи я получил +1 к линукс-админству :) Спасибо огромное пользователю berkut_174 за подробные объяснения!

Напишу поэтапно (для себя), а может, кому из новичков пригодится.

1) Создал 4 пользователей в системе и вошёл под именем каждого из них (у каждого получился свой раздел в /home)
Добавил своих пользователей в группу school32 командой
Цитировать
#groupadd school32
#usermod -G school32 direktor
Кажись, здесь что-то не так. Пробовал ключ -g, но получал ошибку. С ключом -G пользователи admin32 и direktor вышли из группы администратора, пришлось через ЦУС их туда возвращать, поставив галочку.
Собственно, не уверен, надо ли было объединять всех в одну спец-группу именно в моём случае.

2) Создал /home/testshare/. В нём - 3 каталога для именного доступа (dir1, mo1, teach1) и 1 - для общего (shara). Каждому каталогу сменил владельца (не уверен, что это надо было) дал права на чтение и запись командами:
Цитировать
#chown -R direktor:school32 /home/testshare/dir1/
#chmod -R 777 /home/testshare/dir1

3) Создал 4 пользователей самбы с помощью утилиты system-config-samba (поставил из реп) и присвоил им те же пароли, какие дал при добавлении этих пользователей в систему.
В этой же утилите присвоил пользователям соответствующие "именные" каталоги.

Затем доработал руками и в итоге получился такой smb.conf
[global]
workgroup = 32
server string = Samba Server 32
log file = /var/log/samba/log.%m
max log size = 50
os level = 65
usershare allow guests = Yes
usershare max shares = 100
guest ok = Yes

[Общая]
comment = Общая
path = /home/testshare/shara/
create mask = 0777
directory mask = 0777
read only = No
veto files = /.snap/
hide dot files = yes
inherit permissions = yes
vfs objects = recycle
recycle:repository = .recycle/%m
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:directory_mode = 0777
recycle:subdir_mode = 0700

[Администрация]
comment = Администрация
path = /home/testshare/dir1/
create mask = 0777
directory mask = 0777
valid users = admin32, direktor
read only = No
veto files = /.snap/
hide dot files = yes
inherit permissions = yes
vfs objects = recycle
recycle:repository = .recycle/%m
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:directory_mode = 0777
recycle:subdir_mode = 0700

[МО]
comment = МО
path = /home/testshare/mo1/
create mask = 0777
directory mask = 0777
valid users = admin32, direktor, mo
read only = No
veto files = /.snap/
hide dot files = yes
inherit permissions = yes
vfs objects = recycle
recycle:repository = .recycle/%m
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:directory_mode = 0777
recycle:subdir_mode = 0700

[Учителя]
comment = Учителя
path = /home/testshare/teach1/
create mask = 0777
directory mask = 0777
valid users = admin32, direktor, mo, teacher
read only = No
veto files = /.snap/
hide dot files = yes
inherit permissions = yes
vfs objects = recycle
recycle:repository = .recycle/%m
recycle:keeptree = yes
recycle:versions = yes
recycle:touch = yes
recycle:directory_mode = 0777
recycle:subdir_mode = 0700

Каждому расшаренному каталогу добавил (подсмотрел у знакомого линуксоида):
Цитировать
   vfs objects = recycle
   recycle:repository = .recycle/%m
   recycle:keeptree = yes
   recycle:versions = yes
   recycle:touch = yes
   recycle:directory_mode = 0777
   recycle:subdir_mode = 0700

Не знаю ,что означает первая строчка, но в итоге получаем, что при удалении файлов/каталогов в расшаренных ресурсах создаётся скрытый каталог .recycle, в котором сохраняется сначала каталог с сетевым именем компа, с которого был вход, а в нём - удалённые файлы и каталоги.

Осталось только разобраться, как "разлогиниваться"  из каталога через 15 минут бездействия. И как сократить время автоматического выключения при нажатии "Power" с 30 секунд до 5, но это к другой теме :)

Оффлайн berkut_174

  • Мастер
  • ***
  • Сообщений: 7 152
Re: Файл-сервер на Samba: нужна помощь
« Ответ #23 : 15.03.2012 07:41:58 »
Ещё вопросик, в примерах не нашёл: как ограничить время логина пользователя к каталогу? Например, после входа пользователя в шару, чтобы через 15 минут снова вылезло окошка логина? А то учитель откроет свой "секретный" каталог и оставит, а там любой ученик сядет и сделает что хошш.
Ни разу не задавался таким вопросом.... интересно...
Вот тут посмотрите http://www.vanderboot.ru/soft/samba.php вдруг что-то найдете.
Сноси Винду, переходи на Линукс ! :)

Оффлайн Компутерный Паша

  • Участник
  • *
  • Сообщений: 74
  • Школьный сисадминишка и эникейщик
Re: [РЕШЕНО] Файл-сервер на Samba в школе
« Ответ #24 : 19.03.2012 21:44:54 »
Кстати, увидел, почему не работало расшаривание каталогов в /var/samba/usershares/мои_каталоги. Видать, слишком глубокое вложение (?).
Сократил путь до /var/моя_шара с соответствующей правкой smb.conf - и всё заработало!