Ich habe script.sh, das als user2 ausgeführt werden muss. Dieses Skript kann jedoch nur unter Benutzer1 in meiner Anwendung ausgeführt werden.
Ich möchte, dass der folgende Befehl ausgeführt wird:
su user2 -C script.sh
aber in der Lage sein, ohne Passwort zu laufen.
Ich möchte auch, dass dies sehr restriktiv ist, da in Benutzer1 nur script.sh unter Benutzer2 und sonst nichts ausgeführt werden kann.
Ich habe versucht, dies mit sudoers file zu tun, und war nach stundenlangem Versuch endlos verwirrt.
Wenn jemand ein explizites Beispiel dafür liefern kann, wie dies erreicht werden kann (anstelle von etwas Generischem wie Use Sudoers), wäre dies sehr dankbar.
Antworten:
Rufen Sie an
visudo
und fügen Sie Folgendes hinzu:Die Befehlspfade müssen absolut sein ! Dann rufen Sie
sudo -u user2 /home/user2/bin/test.sh
aus eineruser1
Shell. Getan.quelle
versuche zu laufen:
Dadurch wird der Befehl als Benutzername ausgeführt, vorausgesetzt, Sie haben die Berechtigung, als dieser Benutzer sudo zu verwenden.
quelle
sudo su -c "Your command right here" -s /bin/sh otheruser
su username -c "command"
.screen
als anderer Benutzer zu starten, ist dies möglicherweise hilfreich - linuxquestions.org/questions/linux-software-2/…username
(oder in der Frageuser2
) selbst ein Passwort vorhanden ist, kann die Eingabeaufforderung nicht übersprungen werden. Die andere Antwort lautet: Kein Passwort erforderlich, sowohl Benutzer1 als auch Benutzer2.Der obige Befehl ist korrekt, aber unter Red Hat kann cron, wenn Selinux dies erzwingt, keine Skripte als anderer Benutzer ausführen. Beispiel;
execl: couldn't exec /bin/sh execl: Permission denied
Ich musste setroubleshoot und setools installieren und Folgendes ausführen, um dies zu ermöglichen:
quelle