para linux system umask

linux - para - ¿Cómo configurar un umask de todo el sistema?



umask linux (3)

Estoy trabajando en un laboratorio donde estamos ejecutando Linux (Debian y Ubuntu). Los nombres de usuarios y grupos son manejados por NIS y yp. Tenemos algunos usuarios comunes a los que todos tienen acceso para que realicen los experimentos y luego cada uno tiene nuestros propios usuarios, además hay un grupo común del que todos somos miembros.

¿Cómo puedo hacer que todos los archivos y directorios compartidos /home/ drive (NFS) sean de lectura / escritura (/ ejecutables) por usuario / grupo? Básicamente lo que quiero es

chmod -R 664 /home chgrp -R commongroup /home

o equivalente umask 0002 .

Pero ejecutar los comandos anteriores solo corrige los archivos actuales en las carpetas y umask solo funciona para usuarios únicos y debe ejecutarse cada vez que un usuario inicia sesión, es decir. en el archivo .bashrc (¿y esto funcionará para el modo de cambios a través de gnome?). ¿Hay algún comando o configuración de todo el sistema que pueda usar para asegurarme de que nuestro grupo de comunicación tenga acceso de escritura a los archivos comunes?


Tanto Debian como Ubuntu se envían con pam_umask . Esto le permite configurar umask en /etc/login.defs y hacer que se apliquen en todo el sistema, independientemente de cómo /etc/login.defs sesión un usuario.

Para habilitarlo, es posible que deba agregar una línea a /etc/pam.d/common-session reading

session optional pam_umask.so

o puede que ya esté habilitado. Luego edite /etc/login.defs y cambie la línea UMASK a

UMASK 002

(el valor predeterminado es 022 ).

Tenga en cuenta que los usuarios aún pueden anular umask en su propio ~/.profile o ~/.bashrc o similar, pero (al menos en las nuevas instalaciones de Debian y Ubuntu) no debería haber ninguna anulación de umask en /etc/profile o /etc/bash.bashrc . (Si los hay, simplemente elimínalos).


Primero, asegúrese de que el paquete pam-modules esté instalado. Eso hace que el módulo pam_umask esté disponible. Luego, asegúrese de que /etc/pam.d/common-session tenga una línea del formulario

session optional pam_umask.so

para que pam_umask esté habilitado.

Ahora, de acuerdo con la página man de pam_umask , la umask predeterminada se determina al iniciar sesión marcando cada uno de los siguientes lugares, en orden:

  1. Un conjunto predeterminado de sistema duro en /etc/pam.d/common-session . Para configurarlo de esta manera, reemplace la línea del archivo mencionado anteriormente con esto:

    session optional pam_umask.so umask=002

  2. Una entrada en el campo GECOS de un usuario individual en /etc/passwd anula un valor predeterminado para todo el sistema para ese usuario específico. Cree esa entrada usando un comando del formulario:

    chfn --other=''umask=002'' username

  3. Una línea del formulario UMASK=002 en /etc/defaults/login (puede necesitar crear ese archivo) establece un valor predeterminado para todo el sistema.

  4. El valor /etc/login.defs de /etc/login.defs . Ese valor también se usa para otra cosa (calcular los permisos en el directorio de inicio de un nuevo usuario que se está creando, vea los comentarios en /etc/login.defs para más detalles). Por lo tanto, es mejor evitar confiar en esto para establecer la umask predeterminada para los inicios de sesión regulares, para mantener las cosas separadas.

Entonces, en su caso, debe configurar esto en /etc/defaults/login si desea que se pueda anular la configuración para usuarios individuales, o configurarlo en /etc/pam.d/common-session como se describe arriba si quieres que sea el mismo para todos los usuarios.

Tenga en cuenta que, incluso con la configuración predeterminada fija, los usuarios aún pueden anular la umask predeterminada de forma manual utilizando el comando umask en el indicador del shell o en su script .profile .

También tenga en cuenta que la manera tradicional de Unix de establecer este valor predeterminado es agregar un comando umask a /etc/profile , y eso también funcionaría. Pero no es la forma recomendada de configurar cosas como esta en Ubuntu, porque es difícil de administrar de manera confiable usando scripts y GUI.


Con el fin de hacer coincidir los derechos del grupo, en el servidor, el bit gid configurado (uno de los "bits adhesivos") se puede considerar como una opción adicional.

Si el directorio compartido está vinculado al grupo , iniciando (usando root): chmod -R 2775 folder_for_the_group puede ser interesante.

Para cualquier archivo nuevo creado en la carpeta, el creador será el propietario, pero el grupo se especificará automáticamente (siempre que el creador sea parte del grupo).

La grilla de derechos ahora aparece como -rwxrwsr-x +