Почему при изменении прав ACL файла у него изменяются традиционные права доступа, хотя не должны?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

Аватара пользователя
жучара
Сообщения: 1051
ОС: астралинукс

Почему при изменении прав ACL файла у него изменяются традиционные права доступа, хотя не должны?

Сообщение жучара »

Друзья! Прямо бесит. Я заметил, что изменяются права доступ на группу. Пример. Имеем простой файл foo, уберём на фиг у него все традиционные права, чтобы не путались под ногами и назначим права доступа ACL, а потом посмотрим, что стало с традиционными:

Файл foo создаём, права обнуляем:

Shell

$ touch foo
$ chmod 000 foo
$ ls -l foo
---------- 1 user user 0 авг 30 01:46 foo
$
$


Смотрим, что пользователь bar отношения к файлу foo не имеет:

Shell

$ cat /etc/group | grep bar
bar:x:1005:
$


Смотрим права ACL на файл foo

Shell

$ getfacl foo
# file: foo
# owner: user
# group: user
user::---
group::---
other::---

$


Меняем их- разрешаем пользователю bar читать файл foo и удостоверяемся в этом:

Shell

$ sudo setfacl -m u:bar:r foo
$
$
$ getfacl foo
# file: foo
# owner: user
# group: user
user::---
user:bar:r--
group::---
mask::r--
other::---

$


А теперь смотрим традиционные права на файл foo:

Shell

$ ls -l foo
----r-----+ 1 user user 0 авг 30 01:46 foo
$


Занавес. Откуда оно вообще тут берётся, это r? Спасибо, кто откликнется. Debian 12
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 21036
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: Почему при изменении прав ACL файла у него изменяются традиционные права доступа, хотя не должны?

Сообщение Bizdelnick »

жучара писал(а):
30.08.2024 00:09

Shell

mask::r--
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
жучара
Сообщения: 1051
ОС: астралинукс

Re: Почему при изменении прав ACL файла у него изменяются традиционные права доступа, хотя не должны?

Сообщение жучара »

Bizdelnick писал:
30.08.2024 00:28
жучара писал(а):
30.08.2024 00:09

Shell

mask::r--
я так понимаю, какое значение в mask, то и в group. А почему? Не ну серьёзно, почему бы например, значению mask не переносится на те права, которые "other" или на "owner"? Всё рано права эти не соблюдаются- члены группы не имеют права на чтение по факту- отказано в доступе- хотя r стоит (почему так тоже ещё один возникший вопрос.).
Я просто читаю маны.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5372
ОС: Gentoo

Re: Почему при изменении прав ACL файла у него изменяются традиционные права доступа, хотя не должны?

Сообщение /dev/random »

жучара писал(а):
30.08.2024 00:44
я так понимаю, какое значение в mask, то и в group. А почему? Не ну серьёзно, почему бы например, значению mask не переносится на те права, которые "other" или на "owner"? Всё рано права эти не соблюдаются- члены группы не имеют права на чтение по факту- отказано в доступе- хотя r стоит (почему так тоже ещё один возникший вопрос.).
man 5 acl.

При использовании ACL "обычные" биты прав всего лишь позволяют быстро посмотреть/изменить определённые биты ACL, и больше ни для чего не используются. "Групповые" биты при этом показывают не ACL_GROUP_OBJ (групповые права), а ACL_MASK (маску, ограничивающую индивидуальные и групповые права, что бы в них ни было выставлено). Это документировано в мане.

Почему именно разработчики так сделали, в мане не написано (там только факты, а не мысли разработчиков), но я думаю, это потому, что маска в этом плане гораздо важнее групповых прав. Права владельца (ACL_USER_OBJ) видеть важно, может ли кто попало обращаться к файлу (ACL_OTHER) - тоже. Маска тоже очень важна: она позволяет сказать chmod 600 файл и быть уверенным, что к файлу ни у кого, кроме владельца, нет доступа, что бы там ни было прописано в ACL. А вот групповые права (ACL_GROUP_OBJ) - это просто редко используемые "дополнительные" права, ничуть не более важные, чем индивидуальные права пользователей/групп в ACL. Так что те, кому они нужны, могут за ними и в getfacl слазить.
Спасибо сказали: