Cómo buscar archivos con un permiso específico

8

¿Cómo puedo buscar archivos que tienen un permiso específico? Por ejemplo, tengo 10000 archivos y quiero encontrar los que tienen el indicador READ ONLY. En otro caso, quiero buscar otro que tenga un propietario particular. O en otro para ver los archivos que son SOLO LEÍDOS y EJECUTABLES.

Luis Alvarado
fuente

Respuestas:

9

Probablemente sea más fácil usar el findcomando, que le permite buscar recursivamente a través del árbol de directorios. Por ejemplo, si desea buscar archivos que sean de solo lectura, puede escribir

find <specify location> -type f -perm -444

Para los archivos que pertenecen a un usuario en particular, puede usar

find <location> -type f -user mike

Para archivos ejecutables (para todos) puede usar

find <location> -type f -perm -777

Para aquellos que son ejecutables y de solo lectura para todos, usaría 555 en lugar de 777 en el ejemplo anterior. También puede buscar archivos que pertenecen a un grupo sustituyendo -user mikepor -group mike.

Para negar los términos de búsqueda y así buscar exactamente lo contrario, puede usar un signo de exclamación como este:

find <location> -type f ! -perm -444 

Nota: Especificar un guión antes de los permisos (p -perm -444. Ej. ) Significa que se encontrarán todos los archivos que tienen un indicador de solo lectura y no solo aquellos que son 444; para buscar 444 exactamente y solo eso, simplemente elimine el guión (por ejemplo -perm 444).

Nota 2: También se pueden buscar combinaciones de permisos utilizando -afor y and -ofor or; por ejemplo, para encontrar exactamente estos permisos, escriba:

find <location> -type f -perm 744 -o -perm 666

Se pueden buscar directorios con -type d.

Consulte man findlas otras permutaciones disponibles.


fuente
+1 por mencionar la diferencia entre -444y444
Fr0zenFyr
Para mí, -perm -444encuentra archivos que tienen el readpermiso, no aquellos que son de solo lectura (es decir, que solo tienen ready no tienen otros permisos).
Jānis Elmeris