¿Por qué no puedo modificar estos archivos como podía antes?

¿Por qué no puedo modificar estos archivos como podía antes?

Estaba intentando agregar permisos de ejecución a archivos sh en una carpeta. Para eso utilicé por error:

find . -print0 -iname '*.sh' | xargs -0 chmod -v 744

y el resultado fue:

mode of `.' changed from 0755 (rwxr-xr-x) to 0744 (rwxr--r--)
mode of `./codis.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./ne fil.sw' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./.whois1.sh.swo' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./new file' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./ezik.sh' changed from 0644 (rw-r--r--) to 0744 (rwxr--r--)
mode of `./.whois1.sh.swp' changed from 0600 (rw-------) to 0744 (rwxr--r--)
mode of `./whois1.sh' retained as 0744 (rwxr--r--)

Ahora sé que el uso correcto para la parte de búsqueda fue

find . -iname '*.sh' -print0

Entonces creé otro hallazgo así:

find . \! -iname '*.sh' -print0 | xargs -0 chmod 600

para poder restablecer los permisos para archivos que no sean sh (sí, veo que algunos archivos tienen 644 permisos, no 600, pero ahora no importa). La salida de este comando es:

chmod: cannot access `./ne fil.sw': Permission denied
chmod: cannot access `./.whois1.sh.swo': Permission denied
chmod: cannot access `./new file': Permission denied
chmod: cannot access `./.whois1.sh.swp': Permission denied

Yo sudotambién lo usé pero aún nada...

Veo que no entiendo los permisos correctamente... Si entiendo correctamente, también necesito xpermisos para el directorio direcpara poder ejecutar comandos en dicho directorio.

Respuesta1

Su findcmd también encuentra el directorio actual " .". Los derechos de este directorio se establecerán 600y, por lo tanto, perderá los derechos para tocar los archivos dentro de este directorio.

Entonces cd .., chmod 700dicho directorio y luego ejecute la reversión find, que ahora excluye el directorio actual, de esta manera:

find . \! -path . \! -iname '*.sh' -print0 | xargs -0 chmod 600

información relacionada