it-swarm.com.de

Führen Sie das Skript als Benutzer mit Nologin-Shell aus

Ich muss lediglich ein bestimmtes Skript als bestimmter Benutzer ausführen, der über die in nologin/false Angegebene /etc/passwd - Shell verfügt.

Ich würde das Skript als root ausführen und dies sollte als ein anderer Benutzer ausgeführt werden. Laufen:

~# su -c "/bin/touch /tmp/test" testuser

würde funktionieren, aber ich brauche eine gültige Shell für den Testbenutzer. Ich weiß, dass ich das Passwort mit passwd -d testuser Deaktivieren und die Shell /bin/bash Überlassen kann, um ein wenig zu sichern, aber ich brauche nologin/false Shell.

Grundsätzlich brauche ich das, was crontab tut, wenn wir Jobs so einstellen, dass sie als bestimmter Benutzer ausgeführt werden, unabhängig davon, ob dieser eine nologin/false - Shell hat.

ps Ich habe diesen Thread gefunden Ausführen eines Befehls als Nologin-Benutzer , aber ich habe keine Ahnung, wie concatenate der Befehl su -s /bin/sh $user zu dem Skript ausgeführt werden soll, das ich ausführen muss.

96
Tommaso

Sie können den Schalter -s verwenden, um eine bestimmte Shell auszuführen

su -s /bin/bash -c '/path/to/your/script' testuser

(Stellen Sie Sudo vor, wenn testuser ein kennwortloser Benutzer ist.)

127
user9517

Sie können dies mit Sudo -u Tun, wenn Sie es installiert haben:

# whoami
root
# Sudo -u Apache whoami
Apache
# getent passwd Apache
apache:x:48:48:Apache:/var/www:/sbin/nologin
14
Handyman5

Indem Sie das Skript als Argument für die Ausführung in/bin/sh angeben:

su -s "/bin/sh /your/script/location" username
6
adaptr

gerade realisiert :

su -s "/ bin/bash" -c "/ bin/touch/tmp/testuser" testuser

vielleicht gibt es einen besseren Weg ?!

2
Tommaso

der beste Weg, dies zu tun, ist über runuser

einzelheiten finden Sie in der Manpage

dieses Tool wird verwendet, um mit der Situation umzugehen, wie der Entwickler in seinem Bolg sagte

Wenn ein Dienst als Root ausgeführt wird und die UID mithilfe der Shell ändern möchte, sollte er den Runuser verwenden.

http://danwalsh.livejournal.com/55588.html

ich habe diese Antwort in vielen Palästen gepostet, vergib mir, wenn du das nervig findest

2
Z-Y00