Q: 'su $user' in Shell-Script beenden?

RalfGesellensetter rgx at gmx.de
Sat Sep 26 11:37:52 CEST 2009


Liebe Liste,

ich möchte ein Script für alle (>100) User in unserem System je einmal 
ausführen. Was ist hier die eleganteste Lösung?

Wenn ich mir sowas wie
> for u in `cat userlist` do
>  su - $u
>  myScript.sh
>  logout # ???
> done

als root starte, funktioniert das ohne Passwortabfrage für den 1. User - 
dann müsste ich aber wieder mit "logout" zurück zu root wechseln -- geht 
das in einem Shellscript?

Alternativ könnte ich ein Scriptfile mit "su $1" beginnen lassen und für 
alle User mit "myScript $u" aufrufen (muss dann am Ende von myScript ein 
"logout" stehen?

Die Frage, warum ich das Script nicht einfach für alle Nutzer als root 
ausführen kann, nehme ich vorweg: Die Homeverzeichnisse sind per NFS-
Mount eingebunden und root hat keinen Vollzugriff darauf (aber immerhin 
die Möglichkeit per "su" in die Rolle der User zu wechseln.

Danke für sachdienliche Hinweise.
Ralf



More information about the Linux mailing list