LINUX.ORG.RU

Проблема с ACL. Разное значение mask при создании и копировании файлов.

 , ,


0

3

Папка /share/test: drwxrwx--x+

# getfacl /share/test

# file: test
# owner: user
# group: user
user::rwx
user:someone:rwx
group::r-x
mask::rwx
other::--x
default:user::rwx
default:user:someone:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

Из примера видно, что маска по-умолчанию - rwx. Далее я создам файл 1.txt сразу на test (touch /share/test/1.txt), а второй 2.txt в своей папке, а уже потом скопирую в test (touch 2.txt; cp 2.txt /share/test/). Вот результат:

getfacl /share/test/1.txt

# file: 1.txt
# owner: user
# group: user
user::rw-
user:someone:rwx #effective:rw-
group::r-x #effective:r--
mask::rw-
other::r--

getfacl /share/test/2.txt

# file: 2.txt
# owner: user
# group: user
user::rw-
user:someone:rwx #effective:r--
group::r-x #effective:r--
mask::r--
other::r--

В итоге пользователь someone не может редактировать файл 2.txt.

Вопрос. Почему при создании файла - маска rw, а при создании и копировании - маска r-, если по-умолчанию все новые файлы с каталоге test должны создаваться с маской rwx?

Сделайте starce процесса, копирующего файл и посмотрите, что кроме open() и write(), он делает с файлом.

mky ★★★★★ ()
Ответ на: комментарий от mky

Ну тут вопрос не на каком этапе это происходит, а почему это происходит? Куда копать? Либо я в принципе не понимаю назначение ACL-прав, либо это мега-баг, который делает файл-сервер на linux нефункциональным. Неужели никто не сталкивался?

c55fun ()
Ответ на: комментарий от c55fun

Куда копать я не подскажу, но в общем, проблема из-за необходимости совместого существования Posix ACL и ″классических″ прав доступа.

Например, команда ″chmod g-rw foo″ помимо смены прав доступа сменит и mask у файла foo, что даст ожидаемый результат для админа, не знающего про ACL (всем, кроме владельца будет запрещено запись/чтение, независимо от того, что там прописано в ACL).

И общая философия такая, что при выполнении каких-то операций с классическими правами user-group-other сделать так, чтобы не воникло расширения этих прав из-за прописаного в ACL. Поэтому нужно смотреть с каким правами создаёт файл команда ″cp″. Сделать файл автоматически «более доступным» чем это указывает cp с помощью ACL, ИМХО, нельзя.

mky ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.