¿Cómo puedo encontrar archivos y carpetas que se puedan escribir en todo el mundo y establecer el bit adhesivo?

13

Quiero hacer lo siguiente:

  1. Necesita encontrar todos los archivos y carpetas de escritura mundial desde la /raíz
  2. Si se encuentra, necesito verificar si el bit fijo está configurado o no.
  3. Si el bit adhesivo no está configurado, configúrelo.

¿Podemos encontrar una solución de línea de comando para este tipo de problema?

fisgonear
fuente

Respuestas:

13

Puedes hacer esto usando findel -perm -modeformato. De man find:

-perm -mode

Todos los modos de bits de permiso están configurados para el archivo. Los modos simbólicos se aceptan de esta forma, y ​​esta es generalmente la forma en que querría usarlos. Debe especificar u',g 'u' o 'si usa un modo simbólico. Vea la sección de EJEMPLOS para algunos ejemplos ilustrativos.

Entonces, para encontrar todos los archivos que se pueden escribir en todo el mundo, independientemente de los otros permisos que tengan, puede hacer lo siguiente:

find / -perm -o+w 

Para establecer la parte adhesiva, use -exec:

find . -perm -o+w -exec chmod +t {} + 
terdon
fuente
2
NB: utilícelo find / -not -type l -perm -o+wsi no desea que la salida incluya también los nombres de los enlaces simbólicos.
chb
2

Este comando debería encontrar directorios grabables todo en un comando, me encuentro usando esto con bastante frecuencia. Este es el comando óptimo! ;) espero que te sirva bien:

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