Como posso encontrar arquivos e pastas graváveis ​​no mundo e definir o que é mais complicado?

13

Eu quero fazer o seguinte:

  1. Precisa encontrar todos os arquivos e pastas graváveis ​​do mundo a partir da /raiz.
  2. Se encontrado, preciso verificar se o bit adesivo está definido ou não.
  3. Se o bit adesivo não estiver definido, defina-o.

Podemos criar uma solução de linha de comando para esse tipo de problema?

bisbilhoteiro
fonte

Respostas:

13

Você pode fazer isso usando findo -perm -modeformato de. De man find:

-perm -mode

Todo o modo de bits de permissão está definido para o arquivo. Os modos simbólicos são aceitos neste formulário e, geralmente, é dessa maneira que você deseja usá-los. Você deve especificar u',g 'ou `o' se usar um modo simbólico. Veja a seção EXEMPLOS para alguns exemplos ilustrativos.

Portanto, para encontrar todos os arquivos que podem ser gravados no mundo, independentemente de outras permissões que eles tenham, você pode:

find / -perm -o+w 

Para definir o bit adesivo, use -exec:

find . -perm -o+w -exec chmod +t {} + 
Terdon
fonte
2
Nota: use find / -not -type l -perm -o+wse você não deseja que a saída inclua também os nomes dos links simbólicos.
Chb10 /
2

Este comando deve encontrar diretórios graváveis ​​em um único comando, eu me vejo usando isso com bastante frequência. Este é o comando ideal! ;) espero que lhe sirva bem:

find / -type d \( -perm -g+w -or -perm -o+w \) -exec ls -adl {} \;
Boschko
fonte