¿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.