Considere a seguinte configuração:
# two users in groups sales
useradd edwin
useradd santos
groupadd sales
usermod -aG sales edwin
usermod -aG sales santos
# two users in group account
useradd serene
useradd alex
groupadd account
usermod -aG account serene
usermod -aG account alex
# every group has its own directory with full access
mkdir -p ./groups/sales ./groups/account
cd ./groups
chown :account ./account
chown :sales ./sales
chmod g+rwx ./account ./sales
A tarefa afirma:
Os usuários têm permissão para excluir apenas seus próprios arquivos, mas alex é o gerente geral, portanto, o usuário alex tem acesso para excluir todos os arquivos dos usuários.
Agora os usuários devem poder excluir apenas seus próprios arquivos, então eu faço:
chmod +t /groups/account /groups/sales
Mas agora estou com um problema. Alex é administrador e deve poder excluir os arquivos de qualquer pessoa (!). Então eu faço por exemplo:
setfactl -a u:alex:rwx /groups/sales /groups/account
Mas isso não ajuda:
[root@localhost groups]# getfacl sales/
# file: sales/
# owner: root
# group: sales
# flags: --t
user::rwx
user:alex:rwx
group::rwx
mask::rwx
other::r-x
[root@localhost groups]# sudo -u edwin touch sales/file
[root@localhost groups]# sudo -u alex rm -f sales/file
rm: cannot remove 'sales/file': Operation not permitted
É possível aplicar o sinalizador fixo a todos, exceto um usuário?
A única parte que falta é que Alex deve possuir o diretório