Me he dado cuenta de que los permisos para nuevos archivos y directorios se comportan de manera un poco extraña. En primer lugar, umask parece devolver la respuesta correcta:
$ umask
0002
Esto significa acceso completo para mi usuario y mi grupo, sin acceso de escritura para el resto del mundo, sin suid. Pero si creo un archivo en mi $ HOME, así es como se ve:
$ ls -l testfile
-rw-rw-rw- 1 robe robe 0 mar 16 12:58 testfile
es decir, dar acceso de escritura a todos. Lo mismo sucede con los directorios:
$ ls -ld testdir
drwxrwxrwx 2 robe robe 6 mar 16 13:00 testdir
Creo que esto es lo mismo que tener umask 0000, no 0002. He buscado en todos / etc alguna instancia de umask que cambia el valor predeterminado 0002 o 0022, pero no encontré ninguno. Esta es una instalación predeterminada de CentOS 5.5. ¿Alguna pista de por qué está sucediendo esto?

testfileytestdir?Respuestas:
No sé si es apropiado responder mi propia pregunta. Editores, por favor, aconsejen sobre esto si este no es el caso. Gracias por adelantado.
Creo que he resuelto este misterio: el problema era la falta de una ACL predeterminada en los volúmenes XFS. Aquí está la entrada de ACL para / srv / backups, uno de los directorios afectados:
Cada vez que hacía una "prueba mkdir" o un "archivo de prueba táctil", aparecía con los permisos 777. Entonces hice esto:
Dejando la ACL así:
Anteriormente allí (supuestamente) no había ACL, pero ahora sí. Puedo ver el signo "+" adjunto a los permisos cuando hago un "ls -l". Y por arte de magia, ahora "mkdir test" y "touch testfile" funcionan con los permisos esperados:
No sé por qué sucede esto. Supongo que a XFS no le gusta no tener una ACL predeterminada y se comporta de manera extraña cuando sucede. Además, he visto que esto sucede solo en CentOS, no en Debian / Ubuntu. Tal vez esté relacionado con la versión XFS en el núcleo, o algo así. Ni idea.
De todos modos, eso resuelve el caso para mí. Muchas gracias por todas las sugerencias :-)
fuente
La llamada a creat puede especificar explícitamente permisos que tienen prioridad sobre umask.
No has respondido cómo estás creando
testfile,testdir.Cree el archivo usando
touch testfile, luego enumere y publique los permisosfuente
Pruebe
getfacl .en el directorio donde está creando su archivo de prueba, para ver si hay una acl predeterminada que afecta los permisos.fuente
Simplemente busque la variable USERGROUPS_ENAB en /etc/login.defs
Comente para deshabilitarlo # USERGROUPS_ENAB yes
Si también desea cambiar la máscara de usuario de su usuario actual, primero debe seguir el procedimiento anterior y hacer lo siguiente.
ejemplo para 027
echo "umask 027" >> ~ / .bashrc && pkill -KILL -u nombre_de_usuario_aquí
echo "umask 027" >> ~ / .bashrc este comando establecerá un valor predeterminado de umask para su perfil
esto te obligará a cerrar sesión
después de iniciar sesión nuevamente
simplemente ejecute el comando umask nuevamente y vea si funciona para usted
fuente