¿Cómo puedo encontrar permisos de archivos desiguales dentro de una estructura de directorios?

¿Cómo puedo encontrar permisos de archivos desiguales dentro de una estructura de directorios?

¿Cómo podría encontrar permisos desiguales de archivos/directorios dentro de una estructura de directorios? Hice algunos intentos de usar el comando de búsqueda similar a:

find /bin ! \( -perm 777 -o -perm 776 -o -perm 775 -o -perm 774 -o -perm 773 -o -perm 772 -o -perm 771 -o -perm 770 -o -perm 760 -o -perm 750 -o -perm 740 -o -perm 730 -o -perm 720 -o -perm 710 -o -perm 700 -o -perm 600 -o -perm 500 -o -perm 400pero me quedo sin línea de comando antes de poder completar las permutaciones restantes más una-exec ls -lL {} \;

También he estado haciendo cosas manuales similares a:

ls -lL /bin | grep -v ^-rwxr-xr-x | grep -v ^-rwx--x--x | grep -v ^-rwsr-xr-x | grep -v ^-r-xr-xr-x | grep -v ^-rwxr-xr-tpero nuevamente, me quedo sin línea de comando antes de poder completar las permutaciones restantes.

Ambos métodos parecen inusualmente incómodos. ¿Existe una forma mejor, más rápida y más sencilla? Tenga en cuenta que estoy restringido en el shell que estoy usando (sh) y la plataforma (Irix 6.5.22).

Respuesta1

¿Estás buscando archivos ejecutables?

find . -type f -perm /+x

Independientemente, el modo / es más que probable que sea tu amigo... aquí está la página de manual:

   -perm /mode
          Any  of  the  permission  bits mode are set for the file.  Symbolic modes are accepted in this form.  You must specify `u', `g' or `o' if you use a symbolic mode.  See the
          EXAMPLES section for some illustrative examples.  If no permission bits in mode are set, this test matches any file (the idea here is to be consistent with  the  behaviour
          of -perm -000).

ACTUALIZACIÓN: cierto, pensé que estabas buscando números impares (ejecutables)...

esto debería funcionar (todavía usando el tercer parámetro permanente de buscar

Data de muestra:

$ ls
000  001  002  003  004  005  006  007  010  020  030  040  050  060  070  100  200  300  400  500  600  700

Buscar comando:

$ find . -type f \( -perm /u-x,g+x -o -perm /u-w,g+w -o -perm /u-r,g+r -o -perm /g-x,o+x -o -perm /g-w,o+w -o -perm /g-r,o+r -o -perm /u-x,o+x -o -perm /u-w,o+w -o -perm /u-r,o+r \) | sort
./001
./002
./003
./004
./005
./006
./007
./010
./020
./030
./040
./050
./060
./070

Básicamente, estás diciendo, dame archivos donde el grupo tiene permisos pero el propietario no, o archivos donde el mundo tiene permisos pero el grupo no, o donde el mundo tiene permisos pero el propietario no.

nota: find tiene 3x parámetros permanentes;

  • modo permanente
  • modo permanente
  • permanente /modo

PD: No estoy muy seguro del valor de esto...

información relacionada