Если я правильно понимаю эту картинку http://www.vanemery.com/Linux/ACL/img1.gif из этого руководства http://www.vanemery.com/Linux/ACL/POSIX_ACL_on_Linux.html, установка 700
через chmod сделает
user::rwx
mask::---
other::---
(и это действительно так).
Но это означает, что я не могу создать каталог и 2 или более пользователей, так что подкаталоги будут с 700
права для каждого пользователя в ACL default
. Из факта следует, что user:some_user:...
и group:someuser:...
будет пересекаться с маской (в этом случае с 0 и результат также будет 0).
Я прав?
Простой пример: MySQL создает каталоги для баз данных с 0700
прав. И я хочу сделать резервную копию своего пользователя (ни mysql
ни root
). Значит, я хочу получить 700
права на мои mysqlbackup
пользователь подкаталогов, созданных mysql
пользователь в директории MySQL. MySQL создает их при создании баз данных.
root@248261c6cbcc:/var/lib/mysql# getfacl .
# file: .
# owner: mysql
# group: mysql
user::rwx
user:mysqlbackup:rwx
group::---
mask::rwx
other::---
default:user::rwx
default:user:mysqlbackup:rwx
default:group::---
default:mask::rwx
default:other::---
root@248261c6cbcc:/var/lib/mysql# sudo -u mysql -H mkdir -m 700 it_must_be_database_dir
root@248261c6cbcc:/var/lib/mysql# getfacl it_must_be_database_dir/
# file: it_must_be_database_dir/
# owner: mysql
# group: mysql
user::rwx
user:mysqlbackup:rwx #effective:---
group::---
group:mysqlbackup:rwx #effective:---
mask::---
other::---
default:user::rwx
default:user:mysqlbackup:rwx
default:group::---
default:group:mysqlbackup:rwx
default:mask::rwx
default:other::---
Как видите, действующие права ---
, ничего.
Итак, могу ли я установить ACL таким образом, чтобы каталоги, созданные с помощью 700
будет доступен для mysqlbackup
пользователь?
Нет, не можешь. Используя 700 разрешений, вы используете маску ---, и система соблюдает вашу директиву.
Вам просто нужно использовать более разрешающую маску (например, rwx) и контролировать эффективное право доступа только через записи ACL.