Ketika saya menjalankan yang berikut ini berfungsi:
sudo -u apache 'whoami'
Tetapi ketika saya menjalankan ini, dikatakan perintah tidak ditemukan:
sudo -u apache 'ls -al ~/.ssh'
Bagaimana cara saya memperbaikinya?
sudo
melihat seluruh ls -al ~/.ssh
string sebagai satu argumen dan menjalankannya sebagai satu, seolah-olah apache
pengguna dipanggil
'ls -al ~/.ssh'
Dan ini tidak berhasil karena tidak ada alat yang dinamai secara harfiah ls -al ~/.ssh
sebagai keseluruhan. Perintah Anda harus lebih seperti
sudo -u apache ls -al ~/.ssh
Perhatikan ini akan diperluas bahkan ~
sebelum sudo
dimulai, dalam konteks pengguna Anda yang sebenarnya. Ini, di sisi lain:
sudo -u apache ls -al ~apache/.ssh
mungkin apa yang Anda inginkan.