GNU/Linux >> Znalost Linux >  >> Linux

Linuxový příkaz runuser – Spusťte prostředí se zadaným ID uživatele/skupiny

Příkaz runuser se používá ke spuštění shellu se zadaným ID uživatele a skupiny. Tento příkaz změní ID uživatele a skupiny. Pokud chcete spouštět některé příkazy jako jiný uživatel, lze tento příkaz použít ke změně uživatele. Tento příkaz je jako příkaz su, ale nevyžaduje zadání hesla. Tento příkaz tedy může úspěšně spustit pouze privilegovaný uživatel, tj. uživatel root, který se může změnit na libovolného uživatele bez potřeby hesla.

Tento příkaz je docela užitečný při použití ve skriptech shellu. Je to proto, že se jedná o neinteraktivní příkaz. Příkaz su nelze použít pro skripty shellu, protože při spuštění jako jiný uživatel než root vyžaduje zadání hesla. Ale v případě příkazu runuser prostě selže a skončí s chybou (pro neprivilegovaného uživatele). Protože příkaz runuser nespouští háky PAM a ověřovací moduly, má menší režii než su.

příkaz runuser

Zde je příklad uživatele root spouštějícího příkaz runuser:

[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

Aktuálního uživatele můžete zkontrolovat pomocí příkazu id. Nyní, když se neprivilegovaný uživatel pokusí provést tento příkaz:

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

S volbou -l nebo --login může být nový shell vytvořen jako přihlašovací shell stejně jako v případě příkazu su. runuser - příkaz má stejný účinek. Mění také proměnné prostředí. Proměnné jako PWD a PATH touto volbou mění své hodnoty.

[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

Můžete poskytnout svůj vlastní shell, pokud nechcete výchozí shell s volbou -s:

[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. Přidat uživatele do skupiny v Linuxu, jak na to (s příklady)

  2. Linux su příkaz

  3. Spustit příkaz shell v jenkins jako uživatel root?

  1. wc Linux Command s příklady

  2. Proč spouštět příkaz prostředí Linux s '&'?

  3. Spusťte příkaz jako uživatel systému Linux (shell =/bin/false)

  1. Jak spustit příkaz s časovým limitem (Timeout) v Linuxu

  2. Jak spustit příkaz / skript Linux Shell na pozadí

  3. Jak změnit vlastníka souboru/skupiny pomocí příkazu chown v systému Linux