Похоже, вы описываете функциональность бита setgid, когда когда каталог, в котором он установлен, заставит любые новые файлы, созданные в нем, установить свою группу в ту же группу, которая установлена в родительском каталоге.
пример
$ whoami
saml
$ groups
saml wheel wireshark
настроить каталог с перми + владения
$ sudo mkdir --mode=u+rwx,g+rs,g-w,o-rwx somedir
$ sudo chown saml.apache somedir
$ ll -d somedir/
drwxr-s---. 2 saml apache 4096 Feb 17 20:10 somedir/
коснитесь файла как saml в этом каталоге
$ whoami
saml
$ touch somedir/afile
$ ll somedir/afile
-rw-rw-r--. 1 saml apache 0 Feb 17 20:11 somedir/afile
Это даст вам примерно то, что звучит так, как вы хотите. Если вы действительно хотите именно то, что вы описали, я думаю, вам придется прибегнуть к функциональности списков контроля доступа, чтобы получить это (ACL).
Если вы хотите получить немного больший контроль над разрешениями для файлов, которые создаются в каталоге somedir
, вы можете добавить следующее правило ACL, чтобы установить разрешения по умолчанию следующим образом.
до
$ ll -d somedir
drwxr-s---. 2 saml apache 4096 Feb 17 20:46 somedir
установить разрешения
$ sudo setfacl -Rdm g:apache:rx somedir
$ ll -d somedir/
drwxr-s---+ 2 saml apache 4096 Feb 17 20:46 somedir/
Обратите внимание +
на в конце, это означает, что к этому каталогу применены ACL.
$ getfacl somedir
# file: somedir
# owner: saml
# group: apache
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:group:apache:r-x
default:mask::r-x
default:other::---
после
$ touch somedir/afile
$ ll somedir/afile
-rw-r-----+ 1 saml apache 0 Feb 17 21:27 somedir/afile
$
$ getfacl somedir/afile
# file: somedir/afile
# owner: saml
# group: apache
user::rw-
group::r-x #effective:r--
group:apache:r-x #effective:r--
mask::r--
other::---
Обратите внимание, что по умолчанию permissions ( setfacl -Rdm
) установлены так, что permissions ( r-x
) по умолчанию ( g:apache:rx
). Это заставляет любые новые файлы иметь только свой r
бит включен.