
Perintah runuser digunakan untuk menjalankan shell dengan ID pengguna dan grup yang ditentukan. Perintah ini mengubah id pengguna dan grup. Saat Anda ingin menjalankan beberapa perintah sebagai pengguna lain, perintah ini dapat digunakan untuk mengubah pengguna. Perintah ini seperti perintah su, tetapi tidak meminta kata sandi. Jadi, hanya pengguna yang memiliki hak istimewa, yaitu pengguna root yang dapat menjalankan perintah ini dengan sukses dan dapat mengubah ke pengguna mana pun tanpa memerlukan kata sandi.
Perintah ini cukup berguna ketika digunakan dalam skrip shell. Ini karena ini adalah perintah non-interaktif. Perintah Su tidak dapat digunakan untuk skrip shell karena itu meminta kata sandi saat dijalankan sebagai pengguna lain selain root. Tetapi dalam kasus perintah runuser, itu gagal dan keluar dengan kesalahan (untuk pengguna yang tidak memiliki hak). Karena perintah runuser tidak menjalankan kait PAM dan modul otentikasi, ia memiliki overhead yang lebih rendah daripada su.
perintah runuser
Berikut adalah contoh pengguna root yang menjalankan perintah 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
Anda dapat memeriksa pengguna saat ini dengan perintah id. Sekarang ketika pengguna yang tidak memiliki hak mencoba menjalankan perintah ini:
[jack@redhat-server /]$ runuser jones
runuser: cannot set groups: Operation not permitted
Dengan opsi -l atau --login, shell baru dapat dijadikan shell login seperti halnya perintah su. runuser - perintah memiliki efek yang sama. Ini juga mengubah variabel lingkungan. Variabel seperti PWD dan PATH mengubah nilainya dengan opsi ini.
[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
Anda dapat memberikan shell khusus Anda jika Anda tidak menginginkan shell default dengan opsi -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