Bagaimana saya bisa mengatasi kesalahan ini yang saya dapatkan ketika saya melakukan perubahan pada repositori SVN dari terminal Ubuntu?

12

Ketika saya melakukan perubahan pada repositori SVN, saya selalu mengalami masalah berikut di terminal di Ubuntu:

Error reading /home/ssylee/.nano_history: Permission denied

Ada ide bagaimana mengatasinya?

stanigator
sumber
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

EDITOR=nano

di /etc/environment.

Menekan api
sumber
4
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.

Ignacio Vazquez-Abrams
sumber
1

Saya selalu menggunakan ini:
sudo chown -R username:username /home/username

Ini memecahkan masalah ketika izin kacau.

Shiki
sumber
1

Saya lebih suka melakukan a

ls -la /home/ssylee/.nano_history

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?

vtest
sumber
1

Cukup ubah izin .nano_historyfile sebagai berikut:

sudo chown youruser:yourgroup /home/<username>/.nano_history

SELESAI! Pesannya hilang! =) Benar-benar sesederhana itu.

Metafaniel
sumber
0

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

#set historylog

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:

sudo rm .nano_history

Itu dia!

Sumber

abr4xas
sumber
Ini akan langsung menonaktifkan riwayat di nano, mungkin bukan sesuatu yang ingin dilakukan pengguna ..
Mxx