Seperti yang Anda lihat, ada banyak ide tentang bagaimana menyelesaikannya, tetapi itu agak tergantung pada mengapa Anda mengalami masalah di tempat pertama.
David Z
Untuk mereproduksi: sudo rm -f ~/.nano_history(hapus file), sudo nano somefile(edit beberapa file sebagai root), ^K sometext(cari beberapa teks), ^X(keluar), nano somefile(edit beberapa file seperti Anda). Anda akan melihat Galat membaca /home/ssylee/.nano_history: Izin ditolak . nano menciptakan .nano_history untuk menyimpan riwayat pencarian Anda. File milik root jika dibuat selama sudo nanosesi.
Iain Samuel McLean Penatua
Jawaban:
28
Ini biasanya disebabkan oleh berlari sudo nano [file]. Ini menjalankan proses nano sebagai root, tetapi membiarkan $HOMEdirektori home user biasa, jadi jika nano membuat file (termasuk file .nano_history), itu akan dimiliki oleh root dan ditempatkan di direktori home Anda.
Anda dapat memverifikasi ini dengan menjalankan:
ls -l /home/ssylee/.nano_history
Jika lsmelaporkan bahwa file tersebut dimiliki oleh root, maka Anda dapat yakin ini adalah penyebabnya. Jika ya, maka situasinya dapat diperbaiki dengan menjalankan:
sudo chown $USER: ~/.nano_history
atau untuk mengeja perintah itu:
sudo chown ssylee: /home/ssylee/.nano_history
Kebiasaan yang lebih baik untuk masuk adalah menggunakan sudoeditatau sudo -ebukannya sudo nano. Ini menjalankan $EDITORprogram pada salinan file yang sedang diedit, dan kemudian secara atomik mengganti file asli ketika editor keluar (yang sangat berguna saat mengedit file sistem).
Secara default, ini dapat diluncurkan vi, tetapi Anda dapat memperbaikinya untuk sementara dengan menjalankannya seperti ini:
EDITOR=nano sudoedit [filename]
Anda dapat mengkonfigurasi secara permanen $EDITORdi Anda .bashrc, atau dengan menempatkan
chown $USER:adalah cara yang lebih singkat untuk menerapkan grup utama.
Tobu
1
@Tobu, terima kasih! Saya tidak tahu tentang trik itu. Saya telah memperbarui jawaban untuk mencerminkan hal itu.
Suppressingfire
1
Cara termudah adalah menghapus file yang dimaksud. Cara termudah berikutnya adalah membuatnya dapat dibaca dengan chmod/ chown. Cara termudah berikutnya adalah menggunakan editor yang berbeda.
pertama, untuk melihat izin saat ini. Ini mungkin membantu Anda mengetahui mengapa kesalahan mereka terjadi. Jika ssylee adalah pemilik file ini, mungkin Anda memiliki umask default yang rusak?
sudo rm -f ~/.nano_history
(hapus file),sudo nano somefile
(edit beberapa file sebagai root),^K sometext
(cari beberapa teks),^X
(keluar),nano somefile
(edit beberapa file seperti Anda). Anda akan melihat Galat membaca /home/ssylee/.nano_history: Izin ditolak . nano menciptakan .nano_history untuk menyimpan riwayat pencarian Anda. File milik root jika dibuat selamasudo nano
sesi.Jawaban:
Ini biasanya disebabkan oleh berlari
sudo nano [file]
. Ini menjalankan proses nano sebagai root, tetapi membiarkan$HOME
direktori home user biasa, jadi jika nano membuat file (termasuk file .nano_history), itu akan dimiliki oleh root dan ditempatkan di direktori home Anda.Anda dapat memverifikasi ini dengan menjalankan:
Jika
ls
melaporkan bahwa file tersebut dimiliki olehroot
, maka Anda dapat yakin ini adalah penyebabnya. Jika ya, maka situasinya dapat diperbaiki dengan menjalankan:atau untuk mengeja perintah itu:
Kebiasaan yang lebih baik untuk masuk adalah menggunakan
sudoedit
atausudo -e
bukannyasudo nano
. Ini menjalankan$EDITOR
program pada salinan file yang sedang diedit, dan kemudian secara atomik mengganti file asli ketika editor keluar (yang sangat berguna saat mengedit file sistem).Secara default, ini dapat diluncurkan
vi
, tetapi Anda dapat memperbaikinya untuk sementara dengan menjalankannya seperti ini:Anda dapat mengkonfigurasi secara permanen
$EDITOR
di Anda.bashrc
, atau dengan menempatkandi
/etc/environment
.sumber
chown $USER:
adalah cara yang lebih singkat untuk menerapkan grup utama.Cara termudah adalah menghapus file yang dimaksud. Cara termudah berikutnya adalah membuatnya dapat dibaca dengan
chmod
/chown
. Cara termudah berikutnya adalah menggunakan editor yang berbeda.sumber
Saya selalu menggunakan ini:
sudo chown -R username:username /home/username
Ini memecahkan masalah ketika izin kacau.
sumber
Saya lebih suka melakukan a
pertama, untuk melihat izin saat ini. Ini mungkin membantu Anda mengetahui mengapa kesalahan mereka terjadi. Jika ssylee adalah pemilik file ini, mungkin Anda memiliki umask default yang rusak?
sumber
Cukup ubah izin
.nano_history
file sebagai berikut:SELESAI! Pesannya hilang! =) Benar-benar sesederhana itu.
sumber
Perbaikannya memerlukan pengeditan file konfigurasi nano / etc / nanorc dan menghapus /home//.nano_history.
Pertama-tama berikan komentar pada parameter historylog set nanorc dengan perintah ini: sudo nano / etc / nanorc
Ini akan menonaktifkan file ~ / .nano_history yang digunakan untuk menyimpan dan membaca pencarian / mengganti string.
Ini masih meninggalkan file .nano_history di direktori pengguna Anda. Hapus file ini sebagai berikut:
Itu dia!
Sumber
sumber