¿Por qué no puedo dar permiso de escritura a los usuarios que usan chmod en Linux?

¿Por qué no puedo dar permiso de escritura a los usuarios que usan chmod en Linux?

Los permisos de archivos actuales se ven así:

$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file

Ahora intento dar permisos de escritura usando chmod:

$ chmod +x+r+w file

Después de eso, los permisos del archivo seguirán teniendo este aspecto:

$ ls -l file
-rwxrwxr-x 1 chiranjitd chiranjitd 0 Oct 30 14:52 file

El permiso de escritura no se otorga a los demás. ¿Por qué está pasando esto?

Respuesta1

Cuando corres chmod +x+r+w file,Todos los bits están configurados, excepto aquellos enmascarados por suumask. Presumiblemente umaskenmascara (al menos) el bit de escritura de otros usuarios, por lo que la +wparte termina siendo ignorada por ellos.

Por lo tanto, para un típico umask022, cualquier chmodcomando que no especifique para quién se deben establecer los permisos termina ignorando cualquier cambio especificado en los bits de escritura del grupo y de otros.

Para configurar todos los bits, ignorando umask, debe especificarOMSdesea configurarlos para:

chmod a+rwx file

o más explícitamente,

chmod ugo+rwx file

(o cualquier subconjunto de ugo, según corresponda, para el usuario, grupo y/u otros).

También es posible especificar permisos numéricos en lugar de permisos simbólicos; verComprender los permisos y tipos de archivos de UNIXpara detalles.

Tenga en cuenta que el umaskcomportamiento de enmascaramiento también se aplica cuandoclarobits, lo que puede producir resultados sorprendentes: chmod -w filesolo borrará los bits de escritura que serían establecidos por chmod +w file! Continuando con lo típico umaskde 022, esto significa que chmod -wno tocará los bits de escritura del grupo ni de otros, dejándolos configurados si ya lo están. (GNU coreutils' chmodadvierte útilmente sobre esto).

información relacionada