Banyak kali saya mengedit file dengan nano, mencoba untuk menyimpan dan mendapatkan kesalahan izin karena saya lupa menjalankannya sebagai sudo. Apakah ada cara cepat untuk menjadi sudo tanpa harus membuka kembali dan mengedit kembali file?
command-line
sudo
nano
Kit Sunde
sumber
sumber
vim
. Saya sedang mempertimbangkan penggabungan ... meskipun saya juga mempertimbangkan fakta bahwa instruksi khusus vim tidak akan berfungsinano
.nano
bukanvim
... dan tidak adanano
solusi yang mirip dengan yangvim
telah ditampilkan.Jawaban:
Tidak, Anda tidak dapat memberikan izin program yang sedang berjalan yang tidak dimilikinya saat dimulai, itu akan menjadi lubang keamanan yang dikenal sebagai 'eskalasi hak istimewa'¹.
Dua hal yang dapat Anda lakukan:
sudo cp $TMPFILE $FILE
. Perhatikan bahwa ini tidak direkomendasikan untuk digunakanmv
karena perubahan dalam kepemilikan file dan izin yang mungkin ditimbulkannya, Anda hanya ingin mengganti konten file, bukan placeholder file itu sendiri.fg
untuk kembali ke editor dan simpan. Jangan lupa untuk memperbaiki izin!¹ Beberapa editor sebenarnya dapat melakukan ini dengan meluncurkan proses baru dengan izin yang berbeda dan meneruskan data ke proses tersebut untuk disimpan. Lihat misalnya pertanyaan terkait ini untuk solusi lain dalam editor tingkat lanjut yang memungkinkan penulisan buffer file ke pipa proses. Nano tidak memiliki kemampuan untuk meluncurkan proses baru atau meneruskan data ke proses lain, jadi itu ditinggalkan dari pihak ini.
sumber
:w !sudo tee
Saya baru saja mencoba
nano
, dan apa yang saya temukan paling mengejutkan adalah bahkan tidak memperingatkan Anda bahwa file tersebut hanya-baca ketika Anda mulai mencoba mengedit file. ( PEMBARUAN: Rupanya nano 2.2 memang memperingatkan; 2.0 tidak. )Berikut ini skrip (dasar) yang melakukan itu.
Itu memeriksa apakah Anda dapat mengedit file, dan jika Anda tidak bisa, itu menjalankan "nano" sebagai root.
/ usr / local / bin / edit (atau ~ / bin / edit )
Dan sebuah perintah yang saya panggil
view
sehingga Anda dapat menghindari prompt jika Anda tahu Anda tidak akan membuat perubahan./ usr / local / bin / view (atau ~ / bin / view )
Sudah ada program yang disebut
view
bagian dari Vi / Vim, jadi jangan ragu untuk menyarankan nama yang lebih baik.(Tapi saya pikir implementasi penuh dari program ini akan membuat Vi
view
berlebihan.)Versi lengkap
sumber
[ Read ... lines (Warning: No write permission) ]
adalah apa yang muncul tepat di atas dua baris bantuan untuk pintasan (bagian bawah layar). Versi nano adalah 2.2.4.