Tu situación específica
En su situación específica, podemos suponer 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 umask
el valor es 002 (todos los números octales).
+r
significaugo+r
porque002 & 444
es000
, que permite configurar todos los bits+x
significaugo+x
porque002 & 111
es000
, que permite configurar todos los bits- pero
+w
significaug+w
porque002 & 222
es002
, lo que evita que se establezca el bit "o".
Otros ejemplos
- Con
umask 022
+w
significaríau+w
. - Con
umask 007
+rwx
significaríaug+rwx
. - Con
umask 077
+rwx
significaríau+rwx
.
Lo que habría coincidido 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
Como sugiere ilkkachu, tenga en cuenta que umask 000
no significa que todo el mundo pueda leer y escribir todos sus archivos.
Pero umask 000
significa todos los que tienen algún tipo de acceso a cualquier La 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). /P>
Con:
chmod +<perms>
los permisos se agregan a usuario , grupo y otro pero con el umask aún aplicándose. Se asegura de que el archivo no tenga más permisos de los que tendría un archivo recién creado.
Si desea agregar los permisos a usuario , grupos y otro independientemente del umask, use
chmod a+<perms>
que es la abreviatura de
chmod ugo+<perms>