GNU/Linux >> Znalost Linux >  >> Linux

Jak používat Su Command v Linuxu

V tomto tutoriálu se naučíme, co je příkaz su (přepnutí uživatele) v Unixu/Linuxu a rozdíl mezi příkazy su a su -. Linux je jádro operačního systému pro více uživatelů, což znamená, že k systému Linux se může přihlásit více uživatelů současně.

Mezi různými uživateli můžete přepínat na samotném příkazovém řádku pomocí příkazu su. Příkaz su znamená 'náhradní uživatel' nebo může přepínat mezi uživateli. Tento příkaz změní pověření uživatele na pověření zadaného uživatele nebo root (ve výchozím nastavení).

Co dělá příkaz su

Příkaz su, jak je uvedeno výše, změní přihlašovací údaje uživatele na jiné uživatele. Podívejme se na příklad

[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

Příkaz id vypíše informace o aktuálním uživateli. Ve výše uvedeném výstupu můžete vidět změněného uživatele. Pokud příkazu su nejsou zadány žádné argumenty, ve výchozím nastavení se změní na uživatele root. Manuálové stránky Ubuntu vysvětlily více informací.

[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

Simulace přihlášení pomocí su -

Pomocí příkazu su --login nebo su -l nebo jen 'su -' můžete přepnout uživatele, jako by to bylo přihlášení z terminálu.

[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

Rozdíl mezi su a su-

Rozdíl mezi 'su' a 'su -' je v tom, že některé proměnné prostředí, jako je proměnná PATH, nemění hodnoty pouze pomocí su (tj. pokud je vynechána volba -l nebo -). Některé příkazy se nemusí spustit, pokud není správně nastavena PATH. Zvažte například následující scénář:

[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

Můžete vidět, že adresáře sbin nejsou zahrnuty v PATH uživatele root. Nespustí tedy příkaz fdisk. Nyní se pokusíme přihlásit pomocí příkazu su:

[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

Dalším rozdílem mezi těmito dvěma příkazy jsou přihlašovací skripty. Nejprve si proberme některé přihlašovací skripty:

Když se uživatel přihlásí do systému, jsou spuštěny následující 4 soubory, pokud jsou přihlašovací údaje uživatele legitimní:

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

Když se přihlásíte pomocí příkazu 'su -', všechny tyto skripty se provedou. Ale pomocí su se spouštějí pouze skripty bashrc, tj. skripty /etc/bashrc a ~./bashrc.

V ubuntu můžete obdržet selhání ověřování, když spustíte příkaz su. Tato chyba se zobrazí, protože v ubuntu je root účet ve výchozím nastavení zakázán.

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

Místo su použijte sudo -i nebo sudo následovaný vaším příkazem.

Závěr

V tomto tutoriálu jsme se naučili rozdíl mezi příkazy „su“ a „su -“ v Linuxu. Více informací je k dispozici v man su. Doufám, že se vám čtení líbilo a níže prosím zanechte své návrhy.

Přečtěte si také:

  • 38 základních linuxových příkazů s příklady
  • Jak přidat uživatele do Sudoers na Debianu

Linux
  1. Jak používat Linuxový příkaz grep

  2. Jak používat příkaz historie v Linuxu

  3. Jak používat Linux Screen Command

  1. Jak používat příkaz historie Linuxu

  2. Jak používat příkaz ldconfig v Linuxu

  3. Jak používat příkaz ipset v Linuxu

  1. Jak používat příkaz Disown v Linuxu

  2. Jak používat příkaz Linux SS

  3. Jak používat příkaz Linux nohup