Этот вопрос хорошо подходит для Linux acl
. Поскольку вы не указали свою ОС, я буду считать Linux следующим. Вот пример сеанса.
Я не знаю действительно хорошего acl
учебника, но вы могли бы сделать хуже, чем http://www.vanemery.com/Linux/ACL/linux-acl.html
Обратите внимание, что по умолчанию acl
ведет себя как локальный umask. Поскольку, по крайней мере, в Linux, маски umask применяются глобально, я знаю, что это единственный способ получить эффект локального маски umask. По какой-то причине это малоизвестная особенность. В сети полно людей, спрашивающих о локальном переопределении umask, но почти никто, кажется, не думает об использовании acl
.
Также обратите внимание, что вам нужно смонтировать раздел, в котором вы работаете с acl
поддержкой, например.
/dev/mapper/debian-acl /mnt/acl ext3 defaults,acl 0 2
Сессия следует:
/mnt/acl$ mkdir foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: faheem
user::rwx
group::r-x
other::r-x
Установите группу, foo
чтобы быть staff
, и установите ACL группы и пользователя, foo
чтобы rwx
.
/mnt/acl$ chgrp staff foo
/mnt/acl$ setfacl -R -m u::rwx,g::rwx foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: staff
user::rwx
group::rwx
other::r-x
Установите также acls по умолчанию для пользователя и группы rwx
. Это определяет разрешения, от которых наследуются файлы и каталоги foo
. Таким образом, все файлы и каталоги, созданные в foo, будут иметь групповые разрешения rw
.
/mnt/acl$ setfacl -d --set u::rwx,g::rwx,o::- foo
/mnt/acl$ getfacl foo
# file: foo
# owner: faheem
# group: staff
user::rwx
group::rwx
other::r-x
default:user::rwx
default:group::rwx
default:other::---
Теперь создайте несколько файлов в foo
качестве пользователей faheem
и john
.
/mnt/acl$ cd foo
/mnt/acl/foo$ touch bar
# switch to user john for this next command.
/mnt/acl/foo$ touch baz
Список файлов. Обратите внимание, что как файлы, принадлежащие, так faheem
и файлы, принадлежащие им john
, создаются с правами группы rw
.
/mnt/acl/foo$ ls -la
total 3
drwxrwxr-x+ 2 faheem staff 1024 May 9 01:22 .
drwxr-xr-x 4 faheem faheem 1024 May 9 01:20 ..
-rw-rw---- 1 faheem faheem 0 May 9 01:20 bar
-rw-rw---- 1 john john 0 May 9 01:22 baz