Comment vérifier umask pour tous les utilisateurs sous Linux?


18

Sous AIX, je peux vérifier le umaskpour tous les utilisateurs avec:

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

Mais comment puis-je vérifier le umaskparamètre pour tous les utilisateurs sous Linux? ( suà chaque utilisateur puis umaskcommande? Y a-t-il de meilleures façons de le faire?)

MISE À JOUR1:

Ce n'est pas le meilleur pour sutous les utilisateurs, car sur certains serveurs RHEL, le shell par défaut pour quelques utilisateurs est stop / shutdown ..:

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

donc si je suà l'utilisateur ... alors le serveur s'arrête?

UPDATE2: J'ai créé une prime pour une réponse non basée sur su.


J'ai déjà mentionné pour éviter l'utilisateur du système (3 $> 500), signifie vérifier au-dessus de l'UID 500
— Rahul Patil

encore une fois: je dois vérifier umask pour tous les utilisateurs, sans exclure les utilisateurs du système :)
— gasko peter

nous pouvons vérifier un shell valide, qu'en pensez-vous? , signifie que si shell est autre que / bin / bash, nous pouvons ignorer cet utilisateur. n'est-ce pas?
— Rahul Patil

Réponses:


9

Vous pouvez vérifier en utilisant:

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

Pour éviter de vérifier l'utilisateur du système, procédez comme suit:

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

Production:

ram       0022
shyam     0022
suraj     0022
vinayak   0022
javed     0022

1
ok, merci, mais existe-t-il des moyens de vérifier le umask sans "soumettre" à l'utilisateur?
— gasko peter

si vous l'avez défini manuellement, par exemple, ~.bashrcvous pouvez grep dans ce fichier.
— Rahul Patil

Cela pourrait être réglé à de nombreux endroits ... c'est pourquoi le grepping n'est pas la meilleure solution
— gasko peter

alors nous devons vérifier dans de nombreux endroits
— Rahul Patil

cela devrait être mieux, si vous avez défini umask par utilisateur dans un fichier commun, par exemple .bashrc
— Rahul Patil

10

Le umaskest généralement défini à l'échelle du système via le fichier de configuration /etc/login.defs::

$ grep UMASK /etc/login.defs 
UMASK           077

Cette valeur peut être surchargée , mais est généralement pas soit par /etc/bashrc, /etc/profileet / ou par les utilisateurs dans leur $HOME/.bashrc( En supposant qu'ils utilisent Bash).

Si vous greputilisez "umask" dans les fichiers susmentionnés, vous le remarquerez également sur les boîtes 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

Creuser plus profond:

  • /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
    

Donc, au moins sur le système RHEL, umaskc'est soit 002si votre UID est supérieur à 199, et 022sinon (comptes système).


Pour Ubuntu et (probablement) les systèmes basés sur Debian, vous devez le faire dans ~/.profile, qui a la valeur par défaut commentée en haut du fichier pour vous permettre de décommenter et de modifier pour chaque utilisateur.
— code_dredd
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.