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).
+rsignificaugo+rporque002 & 444es000, que permite configurar todos los bits+xsignificaugo+xporque002 & 111es000, que permite configurar todos los bits- pero
+wsignificaug+wporque002 & 222es002, lo que evita que se establezca el bit "o".
Otros ejemplos
- Con
umask 022+wsignificaríau+w. - Con
umask 007+rwxsignificaríaug+rwx. - Con
umask 077+rwxsignificarí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>