Esta é uma configuração que permite que membros de um grupo, acltest , criem e modificar arquivos de grupo enquanto não permitir a exclusão e renomeação de arquivos exceto pelo seu dono e "outros", nada. Usando o nome de usuário, lev e supondo umask de 022:
groupadd acltest
usermod -a -G acltest lev
Efetue logout da conta raiz e da conta lev . Faça o login e torne-se root ou use sudo :
mkdir /tmp/acltest
chown root:acltest /tmp/acltest
chmod 0770 /tmp/acltest
chmod g+s /tmp/acltest
chmod +t /tmp/acltest
setfacl -d -m g:acltest:rwx /tmp/acltest
setfacl -m g:acltest:rwx /tmp/acltest
O ACL não pode definir o bit adesivo e o bit adesivo não é copiado para os subdiretórios. Mas, você pode usar inotify ou software similar para detectar mudanças no sistema de arquivos, como novos diretórios, e então reagir de acordo.
Por exemplo, no Debian:
apt-get install inotify-tools
Em seguida, crie um script para inotify , como /usr/local/sbin/set_sticky.sh
.
#!/usr/bin/env bash
inotifywait -m -r -e create /tmp/acltest |
while read path event file; do
case "$event" in
*ISDIR*)
chmod +t $path$file
;;
esac
done
Conceda permissão de execução para root : chmod 0700 /usr/local/sbin/set_sticky.sh
. Em seguida, execute-o no momento da inicialização a partir de, digamos, /etc/rc.local
ou qualquer arquivo RC apropriado:
/usr/local/sbin/set_sticky.sh &
Naturalmente, neste exemplo, /tmp/acltest
deve desaparecer na reinicialização. Caso contrário, isso deve funcionar como um encanto.