Saat bekerja pada baris perintah, saya sering mengganti ke sudo menggunakan sudo -i
. Namun, direktori kerja saya berubah secara otomatis menjadi /root
. Saya tidak pernah ingin pergi ke sana; Saya ingin tetap di tempat saya! Bagaimana saya bisa mencapai ini?
25
sudo -iu
bekerja untuk saya ubuntuforums.org/…sudo -i
masih rusak oleh vv. Satu-satunya cara untuk menghindari hal ini adalah menggunakansu -l
.Jika Anda ingin menggunakan
su
, ada cara untuk tetap berada di direktori yang sama.Apa yang terjadi di sini:
su - user
= masuk sebagaiuser
-c
yang berarti "jalankan perintah di shell pengguna baru"-c "cd `pwd`"
perintah yang kita berikan adalah untuk beralih ke direktori saat ini (`pwd`
) - tetapi karena kita menggunakan backticks dalam tanda kutip ganda,pwd
perintah tersebut dievaluasi sebelum kita menjalankansu
perintah, sehingga kita benar-benar beralih ke direktori yang kita berada di SEKARANG seperti yang lama pengguna.-c 'cd `pwd`'
akan menjalankanpwd
perintah di shell baru, jadi ini akan mengevaluasicd /root
, yang, tentu saja, tidak akan mencapai apa pun.Satu-satunya masalah di sini adalah bahwa shell baru keluar tepat setelah menjalankan perintah, jadi kami menambahkan:
-c "cd `pwd`; bash"
yang berarti "jalankanbash
(shell baru) setelah menjalankancd
perintah. Shell bash tidak keluar sampai kita keluar.Perhatikan bahwa Anda dapat menggantinya
`pwd`
dengan$(pwd)
. Secara fungsional mereka sama, tetapi banyaknya karakter seperti kutipan bisa menjadi sulit dibaca.sumber
Saya telah menghadapi masalah yang sama dan saya tidak diizinkan menjalankan apa pun selain
sudo su - devuser
di server dev, jadi inilah yang saya kemukakan:Ini naik pohon proses dan memeriksa apakah proses yang memiliki pengguna berubah.
sumber