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).


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

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


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.
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.