Arquivos por padrão não recebem permissões de execução. Diretórios fazer. Tente criar um diretório, ele deve ter as permissões esperadas. Os arquivos devem obter as permissões padrão esperadas menos a execução.
Vou trabalhar em um projeto da web e, portanto, tenho uma www
-folder dentro de $HOME
. Eu quero que esta pasta pertença a user
enquanto cancelando o grupo 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, eu cd
na pasta recém-criada 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 diferentes ACLs padrão em comparação com $HOME/www
- mas eu esperaria que substituir manualmente as ACLs padrão dos subdiretórios funcionasse de forma bastante simples.
Eu quero que os subdiretórios e arquivos dentro de $HOME/www
tenham as permissões padrão, conforme indicado acima. O que estou perdendo aqui?
Tags permissions acl linux