samba + acl = руление доступом из windows

как известно, в linux права описываются формулой “я – мы – они”, в смысле, доступ к файлу или директории для создателя, группы и всех остальных. в большинстве случаев этого вполне хватает.
но иногда возникает вопрос – а как бы сделать так, чтобы доать доступ ещё и вот этим товарищам, но не вводить их в группу?
всё просто. есть такой пакет acl.
в пакете хранятся утилиты управления списками доступа.

ставится этот пакет традиционно:



$ sudo apt-get update
$ sudo apt-get install acl

теперь объясним системе. что у нас на файловой системе есть расширенное управление правами:

$ sudo vi /etc/fstab

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
/dev/hda1       /               ext3    defaults,errors=remount-ro 0       1
/dev/hda3       /home           ext3    defaults,acl    0       2
/dev/hda2       /var            ext3    defaults        0       2
/dev/hdd        /media/cdrom0   iso9660 ro,user,noauto  0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

в столбик options дописываем параметр acl (выделено красным)
после чего либо перемонтируем соответствующие разделы,

$ sudo mount -o remount /dev/hda3

либо перегружаем всю систему.

ну что, разделы с нужной опцией примонтировались?

как расширенные права выглядят с точки зрения системы можно посмотреть командой

$ getfacl tmp

# file: tmp
# owner: root
# group: root
user::rwx
group::rwx
other::rwx

это, что называется по умолчанию
добавим кому ни будь доступ

$ sudo setfacl -m u:username:rx tmp

смотрим что получилось

$ getfacl tmp
# file: tmp
# owner: root
# group: root
user::rwx
user:username:r-x
group::rwx
mask::rwx
other::rwx

для чего это надо непосредственно в линуксе я пока не придумал – задач не стояло.

перейдём к более практическому применению – расширенные права в samba.

пробовали назначать права доступа к файлам и каталогам на самбовской шаре? ну как? а с использованием acl всё гораздо интереснее.

добавляем расширенные права в конфиг самбы
$ sudo vi /etc/samba/smb.conf

[global]
...
 acl compatibility = auto

[sharename]
   comment = Share
   path = /path/to/directory
   browseable = yes
   writable = yes
   create mask = 0664
   directory mask = 0777
   inherit acls = yes
inherit owner = yes
inherit permissions = yes
map acl inherit = yes

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



Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>