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

Исходное сообщение
"Проблема с ACL на centos5.4"

Отправлено 9090 , 17-Мрт-10 17:53 
Добрый день.

Подскажите, пожалуйста, чего недопонимаю. Есть родительская директория:

# file: cache
# owner: apache
# group: group1
user::rwx
group::r-x
group:group1:rwx
group:group2:rwx
mask::rwx
other::r-x
default:user::rwx
default:group::r-x
default:group:group1:rwx
default:group:group2:rwx
default:mask::rwx
default:other::r-

Т.е. по идее все дочерние объекты, создаваемые в этой директории, могут быть удалены любым пользователем, состоящим в группе group1 или group2, т.к. права и маска по умолчанию для этих объектов будет: rwx.

На деле получается не так:
Процесс, запущенный от apache:group1, создает директорию user, а в ней файл index.html с такими ACL:

# file: user
# owner: apache
# group: group1
group::r-x
group:group1:rwx        #effective:r-x
group:group2:rwx        #effective:r-x
mask::r-x
other::r-x
default:user::rwx
default:group::r-x
default:group:group1:rwx
default:group:group2:rwx
default:mask::rwx
default:other::r-x

# file: index.html
# owner: apache
# group: group1
user::rw-
group::r-x            #effective:r--
group:group1:rwx        #effective:rw-
group:group2:rwx        #effective:rw-
mask::rw-
other::r--

Я - пользователь, входящий в обе из этих групп, не могу удалить ни файл index.html, ни директорию user.

$ id
uid=600(user1) gid=601(user1) группы=502(group1),520(group2)

Подскажите, пожалуйста, как добиться того, что мне нужно.
Делаю это следующими командами:

setfacl -d -R -m g:group1:rwx,g:group2:rwx cache
setfacl -R -m g:group1:rwx,g:group2:rwx cache
setfacl -R -d -m m::rwx cache
setfacl -R -m m::rwx cache

ФС: ext3fs (acl в fstab)
Ядро: 2.6.18-164.11.1.el5
Версия пакета acl: acl-2.2.39-3.el5

Заранее благодарю.


Содержание

Сообщения в этом обсуждении
"Проблема с ACL на centos5.4"
Отправлено Гайбруш Трипвуд , 17-Мрт-10 18:20 
У вас на директории user маска r-x, а это значит, что для групп group1 и
group2 права становятся r-x (вместо rwx).
Нужно маску изменить на rwx.
Видимо, apache при создании папки пытается сделать на неё права g=rx.
Если процесс меняет права для группы с помощью chmod() и для этого файла есть acl, то этот chmod() будет действовать на маску, а не на группу.


"Проблема с ACL на centos5.4"
Отправлено 9090 , 17-Мрт-10 18:42 
>У вас на директории user маска r-x, а это значит, что для
>групп group1 и
>group2 права становятся r-x (вместо rwx).

Ясно. А почему она r-x, ведь default же rwx, т.е. она по идее должна была
унаследовать родительские  acl.

>Нужно маску изменить на rwx.

Т.е. вручную изменить? Дело в том, что директория cache - это просто кэш ),
т.е. файлы и директории в ней постоянно удаляются (юзерами) и создаются
сервером. И каждый раз изменять вручную - не подходит. Поэтому и связался
с default acl.

>Видимо, apache при создании папки пытается сделать на неё права g=rx.
>Если процесс меняет права для группы с помощью chmod() и для этого
>файла есть acl, то этот chmod() будет действовать на маску, а
>не на группу.

Я так понял что acl перекрывают обычные unix access modes, а получается что нет.

Спасибо за ответ, но честно говоря так и не понял что мне нужно сделать, чтобы
на создаваемые объекты назначались права, достаточные для их удаления
пользователями, входящими в те две группы.


"Проблема с ACL на centos5.4"
Отправлено 9090 , 17-Мрт-10 18:51 
>У вас на директории user маска r-x, а это значит, что для
>групп group1 и
>group2 права становятся r-x (вместо rwx).
>Нужно маску изменить на rwx.
>Видимо, apache при создании папки пытается сделать на неё права g=rx.
>Если процесс меняет права для группы с помощью chmod() и для этого
>файла есть acl, то этот chmod() будет действовать на маску, а
>не на группу.

На всякий случай попробовал добавить в команду изменения acl rwx для группы:

sudo setfacl -d -R -m g:group1:rwx,g:group2:rwx,g::rwx cache
sudo setfacl -R -m g:group1:rwx,g:group2:rwx,g::rwx cache

Но ничего не изменилось. Стабильно маска меняется на r-x.


"Проблема с ACL на centos5.4"
Отправлено tux2002 , 17-Мрт-10 19:51 
А с каким umask работает apache?


"Проблема с ACL на centos5.4"
Отправлено 9090 , 17-Мрт-10 20:24 
>А с каким umask работает apache?

как это узнать? в явном виде нигде это не указано.
я пробовал добавлять umask 002 в envvars и в rc-скрипт в /etc/init.d но ничего не поменялось.
файлы создаются с теми же правами.


"Проблема с ACL на centos5.4"
Отправлено tux2002 , 18-Мрт-10 11:17 
>как это узнать? в явном виде нигде это не указано.

#umask
Судя по всему у вас 0022, т.е. на группу маскируется w

umask 0002 && /etc/init.d/apache start что-нибудь меняет?


"Проблема с ACL на centos5.4"
Отправлено 9090 , 18-Мрт-10 13:44 
>>как это узнать? в явном виде нигде это не указано.
>
>#umask
>Судя по всему у вас 0022, т.е. на группу маскируется w
>
>umask 0002 && /etc/init.d/apache start что-нибудь меняет?

нет. залогинился под рутом. сделал umask 2 и рестартанул apache.
ситуация не изменилась, но при это umask показывает значение 2.
более того, как я уже писал ранее, пробовал менять значение umask
в rc-скрипте apache и в файле envvars, который он, судя по
содержимому rc-скрипта, тоже вычитывает.