Це питання добре підходить для Linux acl. Оскільки ви не заявляєте свою ОС, я припускаю Linux у наступному. Ось приклад сесії.
Я не знаю дійсно хорошого aclпідручника, але ви можете зробити гірше, ніж http://www.vanemery.com/Linux/ACL/linux-acl.html
Зауважте, що за замовчуванням aclповодиться як локальний umask. Оскільки принаймні в Linux умаски застосовуються в усьому світі, це єдиний спосіб, який я знаю, щоб отримати ефект локальної умаски. Чомусь це маловідома особливість. Мережа заповнена людьми, які запитують про перебір місцевого умаску, але майже ніхто не думає використовувати 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