Dalam tutorial ini kita mempelajari apa itu perintah su (beralih pengguna) di Unix/Linux dan perbedaan antara perintah su dan su. Linux adalah kernel sistem operasi multipengguna yang berarti banyak pengguna dapat masuk ke sistem Linux secara bersamaan.
Anda dapat beralih di antara pengguna yang berbeda pada baris perintah itu sendiri dengan perintah su. Perintah su adalah singkatan dari 'pengguna pengganti' atau dapat beralih antar pengguna. Perintah ini mengubah kredensial pengguna menjadi pengguna atau root tertentu (secara default).
Apa yang dilakukan perintah su
Perintah su, seperti yang dinyatakan di atas akan mengubah kredensial pengguna menjadi milik beberapa pengguna lain. Mari kita periksa contohnya
[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
Perintah id mengeluarkan informasi tentang pengguna saat ini. Pada output di atas, Anda dapat melihat pengguna yang diubah. Ketika tidak ada argumen yang diberikan ke perintah su, itu berubah menjadi pengguna root secara default. Halaman manual Ubuntu telah menjelaskannya lebih banyak informasi.
[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
Mensimulasikan login dengan su -
Dengan perintah su --login atau su -l atau hanya 'su -', Anda dapat mengganti pengguna seolah-olah itu adalah login dari terminal.
[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
Perbedaan antara su vs su-
Perbedaan antara 'su' dan 'su -' adalah bahwa beberapa variabel lingkungan seperti variabel PATH tidak mengubah nilai hanya dengan su (yaitu jika opsi -l atau - dihilangkan). Beberapa perintah mungkin tidak berjalan jika PATH tidak disetel dengan benar. Misalnya pertimbangkan skenario berikut:
[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
Anda dapat melihat bahwa direktori sbin tidak disertakan dalam PATH pengguna root. Jadi tidak menjalankan perintah fdisk. Sekarang kita coba login dengan su - command:
[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
Perbedaan lain antara kedua perintah ini adalah skrip login. Pertama, mari kita bahas beberapa skrip login:
Saat pengguna masuk ke sistem, 4 file berikut dijalankan jika kredensial pengguna sah:
/etc/profile
/etc/bashrc
~/.bashrc
~/.bash_profile
Saat Anda login dengan perintah 'su -', semua skrip ini dijalankan. Tetapi dengan su, hanya skrip bashrc yang dieksekusi, yaitu skrip /etc/bashrc dan ~./bashrc yang dieksekusi.
Di ubuntu Anda mungkin menerima kegagalan otentikasi saat menjalankan perintah su. Anda menerima kesalahan ini karena akun root ubuntu dinonaktifkan secara default.
user@host:~$ su
Password:
su: Authentication failure
Alih-alih su gunakan sudo -i
atau sudo
diikuti dengan perintah Anda.
Kesimpulan
Dalam tutorial ini, kita mempelajari perbedaan antara perintah "su" dan "su -" di Linux. Informasi lebih lanjut tersedia di man su. Saya harap Anda menikmati membaca dan silakan tinggalkan saran Anda di bawah.
Baca Juga:
- 38 Perintah Dasar Linux untuk Dipelajari dengan Contoh
- Cara Menambahkan Pengguna ke Sudoers di Debian