Ketika Anda memberikan tanda hubung ganda, pengalaman yang Anda miliki identik dengan jika Anda baru saja dieksekusi sudo su
tanpa tanda hubung.
Melewati satu tanda hubung identik dengan melewati -l
atau --login
. Halaman manual untuk su
menggambarkan perilaku sebagai:
Berikan lingkungan yang mirip dengan apa yang diharapkan pengguna seandainya pengguna masuk secara langsung.
Ini termasuk mengatur direktori Anda ke direktori home Anda dan mengatur banyak variabel lingkungan lainnya.
Melewati tanda hubung ganda ke perintah biasanya digunakan untuk menandai akhir dari bendera baris perintah dan awal argumen non-bendera. Misalnya, jika Anda menjalankan touch -R
Anda akan menerima pesan kesalahan yang mengatakan bahwa -R bukan pilihan untuk touch
, tetapi jika Anda menjalankannya touch -- -R
akan membuat file bernama -R
. Ini berlaku untuk banyak alat baris perintah ( ls -R
akan melakukan rekursif ls
sedangkan ls -- -R
akan melakukan ls
pada file atau direktori bernama -R
.
Jadi, untuk menyelesaikan ini, ketika Anda lulus hanya --
untuk su
itu pada dasarnya mengabaikan --
dan bertindak seperti Anda tidak melewatkan opsi sama sekali.
sudo su -
dansudo su -l
berbeda. Pada akun di mana saya ssh masuk dengan kunci saja, dan saya memiliki hak sudo untuk mengubah ke pengguna lain tertentu,sudo su -
mengubah pengguna tanpa masalah tetapisudo su -l
atausudo su --login
akan meminta kata sandi sudo, yang saya tidak punya (walaupun dengan memeriksasudo -l
saya bisa dieksekusi/bin/su
dengan NOPASSWD)