GNU/Linux >> Linux Esercitazione >  >> Linux

Comando runuser Linux - Esegui Shell con l'ID utente/gruppo specificato

Il comando runuser viene utilizzato per eseguire una shell con l'utente e l'ID gruppo specificati. Questo comando cambia gli ID utente e gruppo. Quando si desidera eseguire alcuni comandi come un altro utente, questo comando può essere utilizzato per modificare l'utente. Questo comando è come il comando su, ma non richiede la password. Quindi, solo l'utente privilegiato, ovvero l'utente root può eseguire questo comando con successo e può passare a qualsiasi utente senza bisogno di password.

Questo comando è abbastanza utile quando viene utilizzato negli script di shell. Questo perché è un comando non interattivo. Il comando Su non può essere utilizzato per gli script di shell poiché richiede una password quando viene eseguito come qualsiasi altro utente diverso da root. Ma in caso di comando runuser, fallisce ed esce con un errore (per utenti non privilegiati). Poiché il comando runuser non esegue hook PAM e moduli di autenticazione, ha un sovraccarico inferiore rispetto a su.

comando runuser

Ecco un esempio di utente root che esegue il comando 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

Puoi controllare l'utente corrente con il comando id. Ora, quando un utente senza privilegi tenta di eseguire questo comando:

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

Con l'opzione -l o --login, la nuova shell può essere trasformata in una shell di accesso proprio come nel caso del comando su. runuser - il comando ha lo stesso effetto. Cambia anche le variabili d'ambiente. Variabili come PWD e PATH cambiano i loro valori con questa opzione.

[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

Puoi fornire la tua shell personalizzata se non vuoi una shell predefinita con l'opzione -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. Aggiungi utente al gruppo in Linux, come farlo (con esempi)

  2. Comando su Linux

  3. Esegui il comando shell in jenkins come utente root?

  4. Perché eseguire un comando shell Linux con "&"?

  5. Esegui il comando come utente di sistema Linux (shell =/bin/false)

Elenco degli utenti in Linux spiegato con esempi

Elimina gli utenti in Linux con il comando Userdel

Aggiunta di nuovi utenti in Linux con il comando Useradd

Modifica i gruppi in Linux con il comando groupmod

Elimina i gruppi in Linux con il comando groupdel

Crea nuovi gruppi in Linux con il comando Groupadd