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.