¿Cómo verificar umask para todos los usuarios en Linux?


18

En AIX, puedo verificar el umaskde todos los usuarios con:

cut -d : -f 1 /etc/passwd | while read ONELINE; do lsuser -a umask "$ONELINE"; done

Pero, ¿cómo puedo verificar la umaskconfiguración para todos los usuarios en Linux? (¿ supara cada usuario y luego umaskcomando? ¿Hay alguna forma mejor de hacerlo?)

ACTUALIZACIÓN1:

No es lo mejor para sutodos los usuarios, porque en algunos servidores RHEL el shell predeterminado para algunos usuarios es detener / apagar ...:

shutdown:x:6:0:shutdown;asdf;asdf;F:/sbin:/sbin/shutdown

entonces si yo sual usuario ... entonces el servidor se apaga?

ACTUALIZACIÓN2: Creé una recompensa por una respuesta no basada en su.


Ya he mencionado para evitar usuarios del sistema ($ 3> 500), significa verificar por encima de UID 500
— Rahul Patil

nuevamente: necesito verificar umask para todos los usuarios, sin excluir a los usuarios del sistema :)
— gasko peter

podemos verificar si hay una cáscara válida, ¿qué te parece? , significa que si shell es otro que / bin / bash, entonces podemos omitir ese usuario. no es asi
— Rahul Patil

Respuestas:


9

Puede verificar usando:

for user in $(awk -F: '{print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

Para evitar verificar el usuario del sistema, haga lo siguiente:

for user in $(awk -F: '( $3 >= 500 ){print $1}' /etc/passwd); 
do 
    printf "%-10s" "$user" ; su -c 'umask' -l $user 2>/dev/null
done

Salida:

ram       0022
shyam     0022
suraj     0022
vinayak   0022
javed     0022

1
ok, gracias, pero ¿hay alguna manera de verificar la máscara de usuario sin "su" para el usuario?
— Gasko Peter

si lo ha configurado manualmente, digamos ~.bashrcque puede acceder a este archivo.
— Rahul Patil

Se podría establecer en muchos lugares ... Es por eso grepping no es la mejor solución
— Gasko Peter

entonces tenemos que registrarnos en muchos lugares
— Rahul Patil

debería ser mejor, si ha configurado umask por usuario en un archivo común, por ejemplo .bashrc
— Rahul Patil

10

El umaskestá en todo el sistema establece normalmente a través del archivo de configuración: /etc/login.defs:

$ grep UMASK /etc/login.defs 
UMASK           077

Este valor puede ser anulado, pero generalmente no es a través de ninguno /etc/bashrc, /etc/profiley / o por los usuarios en su $HOME/.bashrc(Suponiendo que están usando Bash).

Si desea grep"umask" en los archivos mencionados anteriormente, también lo notará en los cuadros de RHEL:

$ grep umask /etc/bashrc /etc/profile
/etc/bashrc:    # By default, we want umask to get set. This sets it for non-login shell.
/etc/bashrc:       umask 002
/etc/bashrc:       umask 022
/etc/profile:# By default, we want umask to get set. This sets it for login shell
/etc/profile:    umask 002
/etc/profile:    umask 022

Cavar más profundo:

  • /etc/bashrc

    # By default, we want umask to get set. This sets it for non-login shell.
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
       umask 002
    else
       umask 022
    fi
    
  • /etc/profile

    # By default, we want umask to get set. This sets it for login shell
    # Current threshold for system reserved uid/gids is 200
    # You could check uidgid reservation validity in
    # /usr/share/doc/setup-*/uidgid file
    if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
        umask 002
    else
        umask 022
    fi
    

Entonces, al menos en el sistema RHEL umaskes 002si su UID es mayor que 199, y de lo 022contrario (cuentas del sistema).


Para Ubuntu y (probablemente) sistemas basados ​​en Debian, debe hacer esto ~/.profile, que tiene el valor predeterminado comentado en la parte superior del archivo para que pueda descomentarlo y modificarlo por usuario.
— code_dredd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.