Saya mencoba menambahkan baris ke file host di Mac saya dengan menjalankan perintah satu baris di terminal.
Saya pikir ini akan mudah menggunakan sudo, tetapi mengembalikan "izin ditolak" ketika saya mencoba menambahkan >>
ke file host, tetapi berfungsi jika saya mencoba mengganti >
konten host.
sudo echo test >> /etc/hosts
-bash: /etc/hosts: Permission denied
$
sudo echo test > /etc/hosts
Password:
$
OS terbaru.
Jawaban:
Itu karena
echo
sedang dijalankan sebagai root, tetapi shell adalah yang benar-benar melakukan pengalihan. Anda perlu membuat shell baru agar ini berfungsi:Sunting: Saya belum melihat fakta bahwa
>
pengalihan berfungsi; Saya tidak bisa menjelaskannya.sumber
tee
karena memungkinkan pelaksanaan subkulit darisudo
dan harus diblokir di sebagian besar lingkungan produksi untuk alasan keamanan.Ketimbang menjalankan gema melalui redirect yang akan dijalankan sebagai pengguna Anda saat ini, tidak akar seperti gema yang sedang berjalan dalam contoh Anda, gunakan tee sebagai Steve Buzonas menyarankan
Sudo sekarang diterapkan pada perintah tee. '-A' ditambahkan ke file
Ini juga akan menampilkan tee ke output standar. Jika Anda tidak ingin melihat 'tes' di terminal Anda juga tambahkan:
> /dev/null
ke akhir baris itu.sumber
Untuk memastikan bahwa baris baru dibuat terlebih dahulu, saya menggunakan ini:
sumber