GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux-Befehl „runuser“ – Shell mit angegebener Benutzer-/Gruppen-ID ausführen

Der Befehl runuser wird verwendet, um eine Shell mit angegebener Benutzer- und Gruppen-ID auszuführen. Dieser Befehl ändert die Benutzer- und Gruppen-IDs. Wenn Sie einige Befehle als ein anderer Benutzer ausführen möchten, kann dieser Befehl verwendet werden, um den Benutzer zu ändern. Dieser Befehl ist wie der Befehl su, aber er fordert kein Passwort an. Daher kann nur ein privilegierter Benutzer, d. h. der Root-Benutzer, diesen Befehl erfolgreich ausführen und zu einem beliebigen Benutzer wechseln, ohne dass ein Passwort erforderlich ist.

Dieser Befehl ist sehr nützlich, wenn er in Shell-Skripten verwendet wird. Dies liegt daran, dass es sich um einen nicht interaktiven Befehl handelt. Der Su-Befehl kann nicht für Shell-Skripte verwendet werden, da er zur Eingabe eines Passworts auffordert, wenn er als ein anderer Benutzer als root ausgeführt wird. Aber im Falle des Befehls runuser schlägt es einfach fehl und wird mit einem Fehler beendet (für nicht privilegierte Benutzer). Da der Befehl runuser keine PAM-Hooks und Authentifizierungsmodule ausführt, hat er weniger Overhead als su.

runuser-Befehl

Hier ist ein Beispiel für einen Root-Benutzer, der den Befehl runuser ausführt:

[root@redhat-server /]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[root@redhat-server /]# runuser jack
[jack@redhat-server /]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Sie können den aktuellen Benutzer mit dem Befehl id überprüfen. Wenn nun ein nicht privilegierter Benutzer versucht, diesen Befehl auszuführen:

[jack@redhat-server /]$ runuser jones
runuser: cannot set groups: Operation not permitted

Mit der Option -l oder --login kann die neue Shell zu einer Login-Shell gemacht werden, genau wie im Fall des Befehls su. runuser - Befehl hat denselben Effekt. Es ändert auch Umgebungsvariablen. Variablen wie PWD und PATH ändern ihre Werte mit dieser Option.

[root@redhat-server ~]# runuser - jones
[jones@redhat-server ~]$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh
[jones@redhat-server ~]$ pwd
/home/jones

Sie können Ihre benutzerdefinierte Shell mit der Option -s bereitstellen, wenn Sie keine Standard-Shell wünschen:

[root@redhat-server ~]# echo $SHELL
/bin/bash
[root@redhat-server ~]# runuser -s /bin/sh jones
sh-3.2$ echo $SHELL
/bin/sh
sh-3.2$ id
uid=502(jones) gid=502(jones) groups=502(jones),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Linux
  1. Benutzer zu Gruppe in Linux hinzufügen, Anleitung (mit Beispielen)

  2. Linux-su-Befehl

  3. Shell-Befehl in Jenkins als Root-Benutzer ausführen?

  4. Warum einen Linux-Shell-Befehl mit '&' ausführen?

  5. Befehl als Linux-Systembenutzer ausführen (shell =/bin/false)

Benutzer auflisten unter Linux anhand von Beispielen erklärt

Löschen Sie Benutzer in Linux mit dem Userdel-Befehl

Hinzufügen neuer Benutzer in Linux mit dem Useradd-Befehl

Ändern Sie Gruppen in Linux mit dem Befehl groupmod

Löschen Sie Gruppen in Linux mit dem Befehl groupdel

Erstellen Sie neue Gruppen in Linux mit dem Groupadd-Befehl