Als anderer Benutzer ausführen

9

Auf einem RedHat-System versuche ich, ein Programm mit einem anderen Benutzer zu starten, der keine Shell hat. In / etc / passwd lautet die Shell / sbin / nologin.

Ich habe versucht:

  1. su myuser -c /home/myuser/script.sh Ergebnis: Dieses Konto ist derzeit nicht verfügbar.

  2. Mit chown und setuid: chown myuser: mygroup /home/myuser/script.sh chmod + s /home/myuser/script.sh /home/myuser/script.sh Ergebnis: script.sh wird weiterhin als mein angemeldeter Benutzer ausgeführt ( Wurzel).

Karl
quelle
Führen Sie das suals root oder als nicht privilegierter Benutzer aus?
James O'Gorman

Antworten:

17

Versuchen:

su myuser -s /bin/sh -c /home/myuser/script.sh
mrc
quelle
0

Dieser Fehler bedeutet, dass Sie in / etc / passwd die Shell / sbin / nologin oder / sbin / false für den Benutzer myuser festgelegt haben.

Bitte setzen Sie etwas Nützliches wie / bin / bash


quelle
Genau das geschah im bereits veröffentlichten OP. OP fragt, ob es eine Möglichkeit gibt, das Programm auszuführen, obwohl der Benutzername keine Shell hat.
Bart Silverstrim
Ja ... das ist tatsächlich die Frage. Ich würde gerne wissen, ob es möglich ist, ein Skript als anderer Benutzer auszuführen, ohne eine Shell in / etc / passwd zu setzen
Karl
1
Sie können dies nicht mit einem Skript tun, wenn der Benutzer eine solche Shell hat.