im Shellskript Benutzer wechseln...
im Shellskript Benutzer wechseln...
Servus!
Ich will innerhalb eines Bash-Skriptes prüfen, welcher Benutzer ich bin und zu einem unprivilegierten wechseln, der den Rest ausführt. Dazu gibt's ja su. Nur das mag nicht so, wie ich es will...
Skriptteil1
su user
Skriptteil2
Nach dem su bricht mir das Skript immer ab... ein su -c "Befehle" user würde zwar weiterhelfen, aber ich will nicht den kompletten zweiten Teil in su -c " " user schreiben...
Gibt's da ne elegantere Lösung?
Ich will innerhalb eines Bash-Skriptes prüfen, welcher Benutzer ich bin und zu einem unprivilegierten wechseln, der den Rest ausführt. Dazu gibt's ja su. Nur das mag nicht so, wie ich es will...
Skriptteil1
su user
Skriptteil2
Nach dem su bricht mir das Skript immer ab... ein su -c "Befehle" user würde zwar weiterhelfen, aber ich will nicht den kompletten zweiten Teil in su -c " " user schreiben...
Gibt's da ne elegantere Lösung?
-
captaincrunch
- Userprojekt

- Posts: 7066
- Joined: 2002-10-09 14:30
- Location: Dorsten
- Contact:
Re: im Shellskript Benutzer wechseln...
Nach dem su bricht mir das Skript immer ab... ein su -c "Befehle" user würde zwar weiterhelfen, aber ich will nicht den kompletten zweiten Teil in su -c " " user schreiben...
Code: Select all
BEFEHL="/was auch immer -mit -ein -paar -optionen | /oder/was/auch/immer"
[...]
su -c $BEFEHL userDebianHowTo
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
echo "[q]sa[ln0=aln256%Pln256/snlbx]sb729901041524823122snlbxq"|dc
Re: im Shellskript Benutzer wechseln...
Du kannst IMHO kein su innerhalb eines scripts durchführen, da das su eine subshell öffnet und den Rest deines Scripts damit nicht mehr sieht.
Workaround #1
Es gibt einfache C-Programme, die den su innerhalb eines scripts durchführen (sollte google finden)
Workaround #2
Du rufst scriptTeil2 über su -c als eigenes Script auf.
Die Parameter/Variablen etc. kannst du ja ggfls. per export weiterreichen.
Workaround #1
Es gibt einfache C-Programme, die den su innerhalb eines scripts durchführen (sollte google finden)
Workaround #2
Du rufst scriptTeil2 über su -c als eigenes Script auf.
Die Parameter/Variablen etc. kannst du ja ggfls. per export weiterreichen.
Re: im Shellskript Benutzer wechseln...
OK, danke - dann werd ich mich damit begnügen ;)
Re: im Shellskript Benutzer wechseln...
Ich weiss es ist scho eine weile her, aber bei mir war das gerade aktuell. ich habe es so gelöst, dass ich im Script eine ssh verbindung auf den localhost gemacht habe.
-
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: im Shellskript Benutzer wechseln...
Also praktisch von hinten durch die Brust in den Netzwerksocket. ;)balufreak wrote:Ich weiss es ist scho eine weile her, aber bei mir war das gerade aktuell. ich habe es so gelöst, dass ich im Script eine ssh verbindung auf den localhost gemacht habe.
Re: im Shellskript Benutzer wechseln...
Was spricht dagegen:
Code: Select all
su test <<EOF
echo "Blub"
id
EOF -
Roger Wilco
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: im Shellskript Benutzer wechseln...
Dass su ggf. eine Eingabe des Passworts verlangt. Das fällt bei sudo mit entsprechender Konfiguration weg.juergen wrote:Was spricht dagegen
Re: im Shellskript Benutzer wechseln...
Na, die fällt bei su und entsprechender PAM-Konfiguration auch weg. Oder aber:Roger Wilco wrote:Dass su ggf. eine Eingabe des Passworts verlangt. Das fällt bei sudo mit entsprechender Konfiguration weg.juergen wrote:Was spricht dagegen
Code: Select all
sudo -u test sh <<EOF
echo "Blub"
id
EOF