GNU/Linux >> Linux Esercitazione >  >> Linux

Come usare il comando Su in Linux

In questo tutorial impariamo cos'è il comando su (cambia utente) in Unix/Linux e la differenza tra su e su - comandi. Linux è un kernel del sistema operativo multiutente, il che significa che più utenti possono accedere a un sistema Linux contemporaneamente.

Puoi passare da un utente all'altro sulla riga di comando stessa con il comando su. Il comando su sta per 'utente sostitutivo' o può passare da un utente all'altro. Questo comando cambia le credenziali dell'utente in quelle di un utente o root specificato (per impostazione predefinita).

Cosa sta facendo il comando su

Il comando su, come indicato sopra, cambierà le credenziali dell'utente con quelle di un altro utente. Controlliamo un esempio

[raghu@redhat-server ~]$ su jack
Password:
[jack@redhat-server raghu]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Il comando id restituisce le informazioni sull'utente corrente. Nell'output sopra, puoi vedere l'utente modificato. Quando non viene fornito alcun argomento al comando su, cambia in utente root per impostazione predefinita. Le pagine man di Ubuntu hanno spiegato più informazioni.

[jack@redhat-server raghu]$ su
Password:
[root@redhat-server raghu]# 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

Simulare l'accesso con su -

Con il comando su --login o su -l o semplicemente 'su -', puoi cambiare utente come se fosse un login da un terminale.

[raghu@redhat-server ~]$ su - jack
Password:
[jack@redhat-server ~]$ id
uid=501(jack) gid=501(jack) groups=501(jack),504(javaproject) context=root:system_r:unconfined_t:SystemLow-SystemHigh

Differenza tra su vs su-

La differenza tra 'su' e 'su -' è che alcune variabili di ambiente come la variabile PATH non cambiano i valori solo con su (cioè se l'opzione -l o - è omessa). Alcuni comandi potrebbero non essere eseguiti se PATH non è impostato correttamente. Ad esempio, considera il seguente scenario:

[jack@redhat-server ~]$ su root
Password:
[root@redhat-server jack]# fdisk -l
bash: fdisk: command not found
[root@redhat-server jack]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/jack/bin

Puoi vedere che le directory sbin non sono incluse nel PATH dell'utente root. Quindi non esegue il comando fdisk. Ora proviamo ad accedere con su - comando:

[jack@redhat-server ~]$ su -
Password:
[root@redhat-server ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1044 8281507+ 8e Linux LVM
[root@redhat-server ~]# echo $PATH
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

Un'altra differenza tra questi due comandi sono gli script di accesso. Per prima cosa, discutiamo di alcuni script di accesso:

Quando un utente accede a un sistema, i seguenti 4 file vengono eseguiti se le credenziali dell'utente sono legittime:

/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile

Quando accedi con il comando 'su -', tutti questi script vengono eseguiti. Ma con su, vengono eseguiti solo gli script bashrc, ovvero gli script /etc/bashrc e ~./bashrc.

In Ubuntu potresti ricevere un errore di autenticazione quando esegui il comando su. Ricevi questo errore perché in Ubuntu l'account root è disabilitato per impostazione predefinita.

user@host:~$ su
Password:
su: Authentication failure

Invece di su usa sudo -i o sudo seguito dal tuo comando.

Conclusione

In questo tutorial, abbiamo appreso la differenza tra i comandi "su" e "su -" in Linux. Maggiori informazioni sono disponibili in man su. Spero che ti sia piaciuto leggere e per favore lascia i tuoi suggerimenti qui sotto.

Leggi anche:

  • 38 comandi Linux di base da apprendere con esempi
  • Come aggiungere un utente a Sudoer su Debian

Linux
  1. Come usare il comando Linux grep

  2. Come usare il comando cronologia in Linux

  3. Come utilizzare il comando dello schermo di Linux

  4. Come usare il comando ldconfig in Linux

  5. Come usare il comando ipset in Linux

Come utilizzare il comando sysctl in Linux

Come utilizzare il comando di arresto di Linux

Come usare grep in Linux

Come utilizzare il comando Mkdir su Linux

Come usare il comando jobs in Linux

Come usare il comando schermo in Linux