Apa perbedaan antara sudo su - dan sudo su -

22

Ketika saya bekerja pada mesin RHEL kami, saya gunakan sudo su -untuk beralih menjadi root. Suatu hari, salah ketik berarti saya mengetik sudo su --- sepertinya bagi saya bahwa semuanya sama dengan satu tanda hubung, kecuali bahwa saya berada di folder yang sama seperti sebelum saya mengeluarkan perintah (dengan tanda hubung tunggal saya menemukan diri saya di /root).

Apakah ada perbedaan lain? Apakah aman menggunakan ini dalam skenario di mana saya tahu saya ingin bekerja di direktori yang sama?

Kaya
sumber

Jawaban:

22

Ketika Anda memberikan tanda hubung ganda, pengalaman yang Anda miliki identik dengan jika Anda baru saja dieksekusi sudo sutanpa tanda hubung.

Melewati satu tanda hubung identik dengan melewati -latau --login. Halaman manual untuk sumenggambarkan 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 -RAnda akan menerima pesan kesalahan yang mengatakan bahwa -R bukan pilihan untuk touch, tetapi jika Anda menjalankannya touch -- -Rakan membuat file bernama -R. Ini berlaku untuk banyak alat baris perintah ( ls -Rakan melakukan rekursif lssedangkan ls -- -Rakan melakukan lspada file atau direktori bernama -R.

Jadi, untuk menyelesaikan ini, ketika Anda lulus hanya -- untuk suitu pada dasarnya mengabaikan --dan bertindak seperti Anda tidak melewatkan opsi sama sekali.

Mark Drago
sumber
Saya akan membuat pertanyaan dari itu tetapi sudo su -dan sudo su -lberbeda. 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 tetapi sudo su -latau sudo su --loginakan meminta kata sandi sudo, yang saya tidak punya (walaupun dengan memeriksa sudo -lsaya bisa dieksekusi /bin/sudengan NOPASSWD)
karatedog
@karatedog, sepertinya Anda tidak membuat pertanyaan ....
Wildcard