Ada pertanyaan terbaru tentang beberapa sysadmin yang berfungsi sebagai root, dan sudo bash -l
direferensikan.
Saya mencari ini di google dan SE, tapi saya tidak mengerti perbedaan antara sudo bash -l
dan sudo -i
.
Dari halaman manual untuk bash dan sudo tampaknya perbedaannya adalah sudo bash -l
menjalankan ~ / .bash_profile, ~ / .bash_login, dan ~ / .profile, dan ~ / .bash_logout dari pengguna root, tetapi dari pengujian sendiri sepertinya itu menjalankan .bashrc pengguna normal dan bukan yang root. Saya mungkin salah paham pengguna mana ~ ekspresi yang dirujuk di halaman manual. Klarifikasi perbedaan dan skenario penggunaan akan dihargai.
Juga untuk menambahkan ke @ johnshen64 jawaban saya perhatikan bahwa
sudo -i
doa memperbarui$USERNAME
variabel env keroot
dancd ~
ke rumah pengguna seperti itu;Namun untuk
sudo bash -l
$USERNAME
unmolested, dan direktori kerja tidak berubah. (meskipun ini tidak konsisten di antara pengguna lain, lihat komentar ...)Jadi mungkin Anda tidak mendapatkan set yang sama persis
~/.bashrc
, atau tidak dalam urutan yang sama dll.(kotak saya mungkin telah sedikit kacau oleh
.bashrc
bermain - main saya , jadi YMMV)sumber
echo $USERNAME
mengembalikan root dua kali untuk saya (di desktop ubuntu saya dan centos 5.2). PWD adalah seperti yang Anda laporkan.