URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 4700
[ Назад ]

Исходное сообщение
"Default Unix ACL - проблема"

Отправлено niklep , 29-Сен-10 16:37 
Доброго времени суток. Имеется проблема. Мне необходимо, чтобы все (в том числе вновь создаваемые) файлы в определенной директории имели определенные атрибуты доступа. Делается это с помощью ACL.
В RHEL они по умолчанию установлены, осталось настроить.
Приступим. Пользователь notes должен иметь права rwx для содержимого папки dir2.

[root@true notes]# mkdir dir2
[root@true notes]# ls -l
итого 12
drwxr-xr-x  2 root root 4096 Сен 28 17:22 dir2
[root@true notes]# touch dir2/1.1
[root@true notes]# touch dir2/2.2
[root@true notes]# ls -l dir2
итого 0
-rw-r--r-- 1 root root 0 Сен 28 17:22 1.1
-rw-r--r-- 1 root root 0 Сен 28 17:22 2.2
[root@true notes]# setfacl -m u:notes:rwx dir2
[root@true notes]# setfacl -m u:notes:rwx dir2/*
[root@true notes]# getfacl dir2
# file: dir2
# owner: root
# group: root
user::rwx
user:notes:rwx
group::r-x
mask::rwx
other::r-x

[root@true notes]# getfacl dir2/1.1
# file: dir2/1.1
# owner: root
# group: root
user::rw-
user:notes:rwx
group::r--
mask::rwx
other::r--

[root@true notes]# setfacl -d -m u:notes:rwx,g::r--,o::--- dir2
[root@true notes]# getfacl dir2
# file: dir2
# owner: root
# group: root
user::rwx
user:notes:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:notes:rwx
default:group::r--
default:mask::rwx
default:other::---

[root@true notes]# touch dir2/3.3
[root@true notes]# getfacl dir2/3.3
# file: dir2/3.3
# owner: root
# group: root
user::rw-
user:notes:rwx                  #effective:rw-
group::r--
mask::rw-
other::---

Как видно, несмотря на то, что default маску я попросил rwx, она создалась rw-. Это из-за того, что user::rw-. Можно поправить ситуацию:
[root@true notes]# setfacl -m u::rwx dir2/3.3
[root@true notes]# getfacl dir2/3.3
# file: dir2/3.3
# owner: root
# group: root
user::rwx
user:notes:rwx
group::r--
mask::rwx
other::---

Вуаля. Маска сама изменилась, теперь пользователь notes имеет права rwx. Но не делать же мне вручную или через cron
setfacl -m u::rwx dir2/*

Помогите, буду премного благодарен.
P.S. Мне непонятно, почему ранее созданный файл 1.1 получил необходимые права (см. getfacl dir1/1.1), а вновь созданный 3.3 не получил?


Содержание

Сообщения в этом обсуждении
"Default Unix ACL - проблема"
Отправлено Гайбруш Трипвуд , 29-Сен-10 17:25 
Это не из-за user::rw-, а из-за того, что маска стала mask::rw-. Эффективные ACL не могут быть больше, чем маска. А маска не такая, как в дефолтных ACL, потому что не только дефолтные ACL влияют на права на создааваемые файлы (в частности umask и параметр mode системного вызова). Читайте man acl, в особенности секции CORRESPONDENCE BETWEEN ACL ENTRIES AND FILE PERMISSION BITS и OBJECT CREATION AND DEFAULT ACLs.

"Default Unix ACL - проблема"
Отправлено niklep , 04-Окт-10 12:47 
> Это не из-за user::rw-, а из-за того, что маска стала mask::rw-. Эффективные
> ACL не могут быть больше, чем маска. А маска не такая,
> как в дефолтных ACL, потому что не только дефолтные ACL влияют
> на права на создааваемые файлы (в частности umask и параметр mode
> системного вызова). Читайте man acl, в особенности секции CORRESPONDENCE BETWEEN ACL
> ENTRIES AND FILE PERMISSION BITS и OBJECT CREATION AND DEFAULT ACLs.

Посмотрел ман. И так:
umask мне менять не вариант, поскольку это более глобальная штука, мне нужно поменять права только для конкретной директории.
Параметр mode системного вызова я поменять разве могу? То есть могу, только если пишу софтину, которая сама будет создавать файл. Там явно в коде укажу конкретные права.
Правильно я понимаю? А каким путем мне пойти?
К тому же вот еще... Если я даже укажу umask 000, то для файлов это будет означать права по умолчанию rw_rw_rw_. rwxrwxrwx я могу получить только для каталогов.