Vou trabalhar em um projeto web e, portanto, tenho uma www
pasta dentro $HOME
. Quero que esta pasta user
pertença a group www-data
. Eu emito:
mkdir $HOME/www
chmod g+rxs,u+rwx,o-rwx $HOME/www
chown user.www-data $HOME/www
Então ls -alh | grep www
dá:
drwxr-s--- 2 user www-data 4,0K Aug 10 17:33 www
Além disso, quero que as permissões padrão sejam definidas independentemente das permissões dos processos de criação. Então eu faço:
setfacl -m d:u::rwx,d:g::rx,d:o::- $HOME/www
Então getfacl $HOME/www
dá:
# file: www
# owner: user
# group: www-data
# flags: -s-
user::rwx
group::r-x
other::---
default:user::rwx
default:group::r-x
default:other::---
Agora estou cd
na pasta recém-criada com um problema:
touch testfile
E então ls -alh | grep testfile
dá:
-rw-r----- 1 user www-data 0 Aug 10 17:44 testfile
Como você pode ver o grupo www-data
foi herdado devido ao setgid
bit. Mas as ACLs padrão do diretório $HOME/www
não foram herdadas (como eu esperava). $HOME
tem ACLs padrão diferentes em comparação com $HOME/www
- mas eu esperaria que a substituição manual das ACLs padrão dos subdiretórios funcionasse bastante simples.
Quero que os subdiretórios e arquivos dentro deles $HOME/www
tenham as permissões padrão fornecidas acima. O que estou perdendo aqui?
Responder1
Os arquivos por padrão não recebem permissões de execução. Os diretórios sim. Tente criar um diretório, ele deverá ter as permissões esperadas. Os arquivos devem obter as permissões padrão esperadas menos a execução.