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?
testfile
ytestdir
?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