Wie überprüfe ich umask für alle Benutzer unter Linux?


18

Unter AIX kann ich das umaskfür alle Benutzer überprüfen mit:

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

Aber wie kann ich die umaskEinstellung für alle Benutzer unter Linux überprüfen ? ( suAn jeden Benutzer und dann umaskBefehl? Gibt es dafür bessere Möglichkeiten?)

UPDATE1:

Dies ist nicht das Beste für sualle Benutzer, da auf einigen RHEL-Servern die Standard-Shell für einige Benutzer "Anhalten / Herunterfahren" ist.

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

also wenn ich suden user ... dann fährt der server herunter?

UPDATE2: Ich habe ein Kopfgeld für eine nicht auf Su basierende Antwort erstellt.


Ich habe bereits erwähnt, um Systembenutzer zu vermeiden ($ 3> 500), das heißt, überprüfen Sie über UID 500
— Rahul Patil

nochmal: ich muss umask für alle benutzer überprüfen , nicht nur für systembenutzer :)
— gasko peter

Wir können nach einer gültigen Shell suchen. Was denkst du? , bedeutet, wenn die Shell nicht / bin / bash ist, können wir diesen Benutzer überspringen. ist es nicht
— Rahul Patil

Antworten:


9

Sie können Folgendes überprüfen:

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

So vermeiden Sie die Überprüfung des Systembenutzers:

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

Ausgabe:

ram       0022
shyam     0022
suraj     0022
vinayak   0022
javed     0022

1
ok, danke, aber gibt es irgendwelche möglichkeiten die umask zu überprüfen ohne den benutzer zu "verklagen"?
— Gasko Peter

Wenn Sie manuell eingestellt haben, sagen Sie in, ~.bashrcdann können Sie in diese Datei springen.
— Rahul Patil

Es könnte an vielen Stellen eingestellt werden ... Deshalb ist Greifen nicht die beste Lösung
— Gasko Peter

dann müssen wir an vielen
— Orten

Es sollte besser sein, wenn Sie umask pro Benutzer in einer gemeinsamen Datei eingestellt haben, zB .bashrc
— Rahul Patil

10

Das umaskwird normalerweise systemweit über die Konfigurationsdatei eingestellt /etc/login.defs:

$ grep UMASK /etc/login.defs 
UMASK           077

Dieser Wert außer Kraft gesetzt werden kann , aber in der Regel ist auch nicht durch /etc/bashrc, /etc/profileund / oder von den Benutzern in ihrem $HOME/.bashrc(vorausgesetzt , sie verwenden Bash).

Wenn Sie grepin diesen oben genannten Dateien nach "umask" suchen, bemerken Sie dies auch bei RHEL-Boxen:

$ 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

Tiefer Graben:

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

Zumindest auf RHEL-Systemen umaskist dies entweder 002der Fall, wenn Ihre UID größer als 199 ist, oder 022andernfalls (Systemkonten).


Für Ubuntu und (wahrscheinlich) Debian-basierte Systeme sollten Sie dies in ~/.profileausführen, wobei der Standardwert oben in der Datei kommentiert ist, damit Sie die Kommentare entfernen und auf Benutzerbasis ändern können.
— Code_dredd
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.