Alguém pode excluir meu diretório não vazio de um diretório write-all sem ter permissões de gravação?

1

Eu sei que a exclusão de um arquivo depende das permissões que tenho no diretório de inclusão, e não no próprio arquivo, veja por exemplo aqui

Mas e um diretório não vazio? Usar rm -rf NON_EMPTY_DIR falha porque os arquivos dentro do diretório não podem ser excluídos. Manter o diretório não vazio e não gravável para os outros é uma maneira segura de impedir que outros usuários excluam a pasta?

Exemplo:

# Create write-all outer dir
mkdir outer
chmod 777 outer
# Create two subdirectories, one of which is empty, one not, 
# and none are writable by anyone
mkdir outer/{non-,}empty 
touch outer/non-empty/file
chmod 555 outer/*

ls -la outer
## drwxrwxrwx  4 user user    80 May 31 15:12 .
##   [ .. does not matter here ]                   
## dr-xr-xr-x  2 user user    40 May 31 15:12 empty
## dr-xr-xr-x  2 user user    60 May 31 15:12 non-empty

rm -rf outer/empty
# Succeeds
rm -rf outer/non-empty
# rm: cannot remove outer/non-empty/file: Permission denied
    
por akraf 31.05.2018 / 15:18

2 respostas

1

Can someone delete my non-empty directory from a write-all directory without having write permissions on it?

Não.

Is keeping the directory non-empty and non-writable for others a safe way of preventing other users to delete the folder?

Sim.

rmdir não funciona em diretórios não vazios e, sem acesso de gravação, eles não têm como esvaziá-lo.

    
por 31.05.2018 / 15:20
2

Eles podem não conseguir excluí-lo, mas renomeá-lo ou movê-lo para outro lugar. Não vai sumir, mas vai parecer assim.

    
por 31.05.2018 / 16:22