Pertama-tama, jangan gunakan sudo su
. Itu tidak salah, atau berbahaya atau apa pun, itu hanya tidak penting dan tidak berguna . Anda menjalankan dua program terpisah untuk melakukan pekerjaan yang mudah ditangani oleh satu. Jika Anda ingin memulai sebuah shell sebagai root, sudo
dapat melakukannya untuk Anda.
Jika Anda ingin memulai shell login (itulah yang dilakukan sudo su -
), gunakan sudo -i
. Namun, karena itu memulai shell login, akan membawa Anda ke direktori home root secara default.
Untuk memulai, shell non-login biasa, Anda dapat menggunakan sudo -s
. Itu akan memulai shell root untuk Anda dan membuat Anda dalam direktori tempat Anda menjalankannya:
terdon@tpad ~ $ pwd
/home/terdon
terdon@tpad ~ $ sudo -i ## changes directory
[root@tpad ~]# pwd
/root
[root@tpad ~]# logout
terdon@tpad ~ $ sudo -s ## doesn't change directory
[root@tpad terdon]# pwd
/home/terdon
Jadi, cara memulai shell root dan tetap berada di direktori yang sama adalah sudo -s
.
sudo -s
tidak menjalankan profil pengguna target karena itu bukan shell login. Jadi mungkin pertanyaan sebenarnya adalah apakah ada cara untuk mendapatkan shell loginsudo
, tetapi tanpa mengubah direktori. Mungkin tidak.