Kemungkinan Duplikat:
Mengalihkan stdout ke file yang izin menulisnya tidak Anda miliki
echo "some words" >> /etc/apt/source.list
permission denied
sudo echo "some words" >> /etc/apt/source.list
juga mengembalikan izin ditolak
Lalu saya pikir mungkin operator append adalah perintah lain, saya harus meletakkan sudo sebelum itu, jadi saya coba
echo "some words" >> sudo /etc/apt/source.list
juga mengembalikan izin ditolak
bagaimana saya harus melakukan tugas ini?
Jawaban yang Diterima:
sudo sh -c 'echo "some words" >> /etc/apt/source.list'
Alasan sudo echo “some words”>> /etc/apt/source.list tidak berfungsi adalah karena sudo menaikkan hak istimewa perintah 'echo', dan bukan pengalihan.
Pengalihan>> menyebabkan Shell saat ini membuat/menambahkan ke file. Gagal karena shell Anda tidak memiliki izin untuk melakukannya.
Alasan jawaban saya berfungsi adalah karena Anda menjalankan semuanya (gema dan pengalihan) di Shell baru yang telah sudo'd. sh -c ...
memanggil shell baru dan menjalankan perintah yang diberikan dalam subkulit itu. Sudo sebelum membuat subkulit itu berjalan dengan hak istimewa yang ditingkatkan.
Contoh sudo kedua tidak masuk akal, karena sudo mengambil perintah untuk dijalankan, dan bukan itu yang Anda lewati. Saya yakin Anda memiliki file di direktori lokal bernama Sudo sekarang dengan konten "beberapa kata". Jangan ragu untuk menghapusnya