¿Por qué chmod + w no otorga permiso de escritura a otros (o)
On febrero 1, 2021 by admin Cuando ejecuto chmod +w filename
no lo hace » Para otorgar permiso de escritura a other
, solo otorga permiso de escritura a user
y group
.
Después de ejecutar este comando
chmod +w testfile.txt
ejecutando ls -l testfile.txt
imprime
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
pero en el caso de +r
y +x
funciona correctamente.
No quiero usar chmod ugo+w filename
.
Comentarios
Respuesta
Su situación específica
En su situación específica, podemos adivinar que su umask
actual es 002
(esto es un valor predeterminado común) y esto explica su sorpresa.
En esa situación específica donde umask
el valor es 002 (todos los números en octal) .
-
+r
significaugo+r
porque002 & 444
es000
, que permite configurar todos los bits -
+x
significaugo+x
porque002 & 111
es000
, lo que permite configurar todos los bits - pero
+w
significaug+w
porque002 & 222
es002
, lo que evita que» o «bit a establecer.
Otros ejemplos
- Con
umask 022
+w
significaríau+w
. - Con
umask 007
+rwx
significaríaug+rwx
. - Con
umask 077
+rwx
significau+rwx
.
Qué habría coincidido con sus expectativas
Cuando cambie umask
a 000
, ejecutando
umask 000
en su terminal, luego
chmod +w file
establecerá los permisos en ugo + w.
Nota al margen
Como lo sugiere ilkkachu, tenga en cuenta que umask 000
no significa que todos puedan leer y escribir todos sus archivos.
Pero umask 000
significa cualquier persona que tenga algún tipo de acceso a cualquier cuenta de usuario en su máquina (que puede incluir programas que ejecutan servicios de servidor ofc) puede leer y escribir todos los archivos que crea con esa máscara activa y no cambiar (si la cadena de directorios que los contiene hasta la raíz también lo permite).
Comentarios
- umask 000 significa que todos los que tienen algún tipo de acceso a una cuenta de usuario en su máquina (que puede incluir programas que ejecutan servicios de servidor ofc) pueden leer y escribir todos los archivos que cree con esa máscara activa y don ' t cambiar, para ser claros
- " + r significa ugo = r " – no, no ' t, significa establecer el
r
bit para aquellas partes en las que umask lo permite. Esto se indica claramente en los manuales de, por ejemplo, GNU chmod y FreeBSD chmod, así como el estándar. Lo mismo para . Para+w
usted ' tiene razón, para el caso de esa umask en particular. - Además, establezca umask en
0
doesn ' t significa que todos pueden leer y escribir todos sus archivos, dado que muchas aplicaciones crean archivos que son particularmente privados con el modo0600
, lo que significa que el grupo y otros no ' tienen acceso, independientemente de la umask. - @ilkkachu + r significa ugo = r, esto estaba relacionado con la situación descrita en la pregunta. Eso no era general.
- @Debian_yadav, ese ' es exactamente el punto: el
umask
es una parte importante de cómo se comporta+r
, no una nota al margen.Además, incluso suponiendo que umask002
,chmod +r
no ' t signifiquechmod ugo=r
, significachmod ugo+r
Respuesta
Con:
chmod +<perms>
los permisos se agregan a usuario , grupo y other pero con la umask aún aplicándose. Se asegura de que no se otorguen más permisos al archivo que a un archivo recién creado.
Si desea agregar los permisos a usuario , grupos y otro independientemente de la umask, use
chmod a+<perms>
que es la abreviatura de
chmod ugo+<perms>
Comentarios
- Significa que + x y a + x no son iguales.
- Me gusta tener enlaces: man7.org/linux/man-pages/man1/chmod.1.html „Si no se da ninguno de estos, el efecto es como si se diera (a), pero los bits que se establecen en la umask no se ven afectados. “
Respuesta
Debe especificar a quién le está dando los permisos, como other
, usando chmod o+w testfile.txt
Comentarios
- sí, pero creo que
+w
da permiso a todos (usuario, grupo y otros). - Para otorgar permisos a todos usuarios, use . Utilice
u
para el usuario,g
para el grupo,o
para otros ya
para todos. - if
chmod a+w filename
,chmod +w filename
ychmod ugo+w filename
son alternativas entre sí, entonces ¿por qué no usar+w
ugo
, usea
.+w
no funciona.askubuntu
respuesta que hace referencia arriba que " Este comportamiento es obligatorio para POSIX, por lo que no es un error ". Tenga en cuenta que el texto de uso de la aplicación POSIX no es normativo y, por lo tanto, POSIX no lo exige.