Saya ingin menjalankan perintah pada shell atas nama pengguna lain. Perintahnya adalah sebagai berikut:
sudo -u USER cd /home/USER
saya mendapat
sudo: cd: command not found
Apa sintaks yang benar untuk perintah untuk meneruskan ke sudo?
sudo
cd-command
coffeMug
sumber
sumber
cd
. OP mungkin inginsudo -i
.cd
bukan perintah eksternal, itu hanya shell builtin, jadisudo
tidak bisa menjalankannya. Alasan mengapacd
hanya ada sebagai shell builtin adalah bahwa suatu proses tidak dapat mempengaruhi direktori saat ini dari proses lain; Oleh karena itu program yang mengubah direktori saat ini dan keluar segera tidak berguna. (Hampir tidak berguna:cd
program akan mengembalikan status yang menunjukkan apakah itu berhasil.)Jika Anda ingin mengubah ke direktori dan kemudian menjalankan perintah sebagai pengguna lain, jalankan shell yang melakukan semua itu.
sumber
Saya cenderung menggunakan:
sudo su - USERNAME
dan kemudian melakukan apa yang Anda butuhkan sebagai pengguna itu. Untuk berhenti ketik sajaexit
sumber
USERNAME
dan kemudian mengeksekusi perintah berbeda dengan menjalankan perintah secara langsung sebagaiUSERNAME