так и живём

Всё не так просто как мы думаем. Всё ещё проще

Законы Мэрфи на практике

Previous Entry Share Next Entry
samba + acl = руление доступом из windows
так и живём
mar1ner
как известно, в linux права описываются формулой "я - мы - они", в смысле, доступ к файлу или директории для создателя, группы и всех остальных. в большинстве случаев этого вполне хватает.
но иногда возникает вопрос - а как бы сделать так, чтобы доать доступ ещё и вот этим товарищам, но не вводить их в группу?
всё просто. есть такой пакет acl.
в пакете хранятся утилиты управления списками доступа.

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

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

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

$ sudo vi /etc/fstab
# /etc/fstab: static file system information.
#
#                
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




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


Posts from This Journal by “samba” Tag


  • 1
Скажи мне добрый фей, а может ли при помощи этого, или подобного ему зверя, запретить всем кроме рута убивать симлинк из директории в которой право записи юзера имеют...

и если что то делать с правами на симлинк, то реально права меняются на то место, на которое он ссылается. так что судя по всему облом :(

Так:

> $ sudo umount /dev/hda3
> $ sudo mount /dev/hda3

не правильно. Правильно так:

$ sudo mount -o remount /dev/hda3

Заодно проблема с используемыми разделами решается:)

спасибо, подправил

вообще в SAMBA
Default: acl compatibility = Auto
+ на остальные директивы inherit *
у меня
mbd --version
Version 3.0.25b-1.el5_1.4
вообще ругается :о/

# nmbd --version
Version 3.0.23c

это на рабочем файлсервере, откуда конфиги

а дистрибутив какой?


хммм.... сранно
CentOS 5.1

Огромное спасибо!!!

Благодрю, поднял на днях файлопомойку, а все описания "чтоб с винды, да галочками" были про фриБСД.

Что-то не могу сообразить как сделать. Конфиг взят без изменений отсюда.
Есть папка /share зашаренная в samba.
Права доступа для нее и вложенных подпапок 770.
Задача 1
Нужно сделать доступ на файл для всех групп и пользователей read-only, и одному пользователю full access.
Проблема: файл не редактируем, но удаляем
# file: file.xls
# owner: root
# group: smbusers
user::rwx
user:my_user:rw-
group::r--
mask::rw-
other::---

Задача 2
Нужно сделать доступ на папку для всех групп и пользователей read-only, и двум пользователям full access.
Проблема: Создаваемые файлы (думаю и папки) пользователем full access имею права 770, что дает возможность группе редактировать.
# file: my_share
# owner: root
# group: smbusers
user::rwx
user:my_user1:rwx
user:my_user2:rwx
group::r-x
mask::rwx
other::---

Понятно, что маска отрабатывает, но непонятно где копать. Если я правильно понял у smb своя маска у fs acl своя?

Да, у самбы свой взгляд на права доступа к файлам. Можно в описании шары поиграть параметрами valid users и write users. вроде так.
1) для самбы и никса не разницы между удалением и редактированием.
2) можно завести группу редакторов на эту папку, и включать туда нужных пользователей. А права дать 664
И рекомендую поменять 770 права на 660

Давно я этим не занимался. Вспоминать надо.


на дворе 2017 к концу идёт, а инфа актуальна

Вот начал делать samba4 как файло-шару с вводом её в домен и прочими авторизациями доменных пользователей. А об расширенные acl и управление ими "галочками" из-под винды спотыкаюсь)) Много чего устарело, и много чего изменилось в самбе за номером 4...

Edited at 2017-09-19 06:46 am (UTC)

Re: на дворе 2017 к концу идёт, а инфа актуальна

Да есть такое.
Я тут другую схему доступа на файлопомойке делать буду.

  • 1
?

Log in

No account? Create an account