Su situacion especifica
En su situación específica, podemos adivinar que su actual umask
es 002
(este es un valor predeterminado común) y esto explica su sorpresa.
En esa situación específica donde el umask
valor es 002 (todos los números son octales).
+r
significa ugo+r
porque 002 & 444
es 000
, lo que permite establecer todos los bits
+x
significa ugo+x
porque 002 & 111
es 000
, lo que permite establecer todos los bits
- pero
+w
significa ug+w
porque 002 & 222
es 002
, lo que impide que se establezca el bit "o".
Otros ejemplos
- Con
umask 022
+w
significaría u+w
.
- Con
umask 007
+rwx
significaría ug+rwx
.
- Con
umask 077
+rwx
significaría u+rwx
.
¿Qué hubiera cumplido con sus expectativas?
Cuando cambias umask
a 000
, ejecutando
umask 000
en tu terminal, entonces
chmod +w file
establecerá permisos para ugo + w.
Nota al margen
Según lo sugerido por ilkkachu, tenga en cuenta que eso umask 000
no significa que todos puedan leer y escribir todos sus archivos.
Pero umask 000
significa que todos los que tienen algún tipo de acceso a cualquier 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 crea con esa máscara activa y no cambian (si la cadena que contiene directorios hasta la raíz también les permite).
ugo
, usea
.+w
no funciona.askubuntu
respuesta que hace referencia más arriba que "Este comportamiento es un mandato POSIX y, por lo tanto, 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.