
Existe uma maneira (com ACL) de proteger o conteúdo de uma pasta? Os usuários devem criar arquivos dentro de uma pasta, mas não substituí-los/editar/excluí-los. Isso é possível?
Responder1
Pode-se usar inotifywait
para monitorar o diretório e fazer alterações, como alterar a propriedade de cada novo arquivo copiado no diretório. Em uma distribuição baseada em Debian, instale o software da seguinte forma: apt-get install inotify-tools
.
Crie um script, talvez /usr/local/sbin/inbox.sh
, da seguinte maneira.
#!/usr/bin/env bash
inotifywait -m -e create "/path/to/directory" |
while read path event file; do
if [ "$event" = "CREATE" ]; then
chown root:root "$path$file"
fi
done
Dê permissão ao script para executar ( chmod 0700 /usr/local/sbin/inbox.sh
). Em seguida, execute-o no momento da inicialização, digamos, /etc/rc.local
ou qualquer arquivo RC apropriado: /usr/local/sbin/inbox.sh &
.
De acordo commanual, -m
monitora indefinidamente e -e
observa um evento específico. Dentro do while
loop, poderia ser possível receber um evento como CREATE,ISDIR
, que indica a criação de um diretório, é claro. Os diretórios não são o alvo da pergunta; portanto, a if
instrução contém um comando para responder apenas a novos arquivos, que são representados pelo evento CREATE
. A path
variável from inotifywait
possui uma barra final, portanto, $path
e $file
pode ser concatenada sem especificar uma barra entre os dois.