Як я можу вирішити цю помилку, яку я отримую, коли здійснюю зміни у сховищі SVN з терміналу Ubuntu?


12

Коли я здійснюю зміни у сховищі SVN, я завжди стикаюся з такою проблемою в терміналі Ubuntu:

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

Будь-які ідеї, як її вирішити?


Як бачите, існує багато ідей щодо її вирішення, але це залежить від того, чому саме ви переживаєте проблему в першу чергу.
David Z

Для відтворення: sudo rm -f ~/.nano_history(видаліть файл), sudo nano somefile(відредагуйте якийсь файл як корінь), ^K sometext(пошук деякого тексту), ^X(вихід), nano somefile(відредагуйте якийсь файл як ви). Ви побачите Помилка читання /home/ssylee/.nano_history: Дозвіл відхилено . nano створює .nano_history для зберігання історії пошуку. Файл належить до root, якщо він створений під час sudo nanoсеансу.
Ієн Самуель Маклін Старший

Відповіді:


28

Зазвичай це викликано бігом sudo nano [file]. Це запускає процес nano як корінь, але залишає його $HOMEвстановленим у домашній довідці звичайного користувача, тому якщо nano створює будь-які файли (включаючи файл .nano_history), він буде належати root та розміщуватися у вашому домашньому каталозі.

Ви можете підтвердити це, запустивши:

ls -l /home/ssylee/.nano_history

Якщо ви lsповідомляєте, що цим файлом належить root, то ви можете бути впевнені, що це було причиною. Якщо це так, то ситуацію можна виправити, запустивши:

sudo chown $USER: ~/.nano_history

або прописати цю команду:

sudo chown ssylee: /home/ssylee/.nano_history

Краща звичка входити в життя - використовувати sudoeditабо sudo -eзамість цього sudo nano. Це запускає $EDITORпрограму на копії редагованого файлу, а потім атомно замінює вихідний файл при виході редактора (що дуже корисно при редагуванні системних файлів).

За замовчуванням це може запуститися vi, але ви можете виправити це тимчасово, викликаючи його так:

EDITOR=nano sudoedit [filename]

Ви можете постійно конфігурувати $EDITORу своєму .bashrcабо розміщуючи

EDITOR=nano

в /etc/environment.


4
chown $USER:- це коротший спосіб застосування первинної групи.
Тобу

1
@Tobu, дякую! я не знав про цю хитрість. Я оновив відповідь, щоб це відобразити.
Придушення

1

Найпростіше видалити відповідний файл. Наступне найпростіше - зробити його читабельним за допомогою chmod/ chown. Наступним найпростішим є використання іншого редактора.


1

Я завжди цим користуюся:
sudo chown -R username:username /home/username

Він вирішує проблему, коли дозволи змішані.


1

Я вважаю за краще зробити

ls -la /home/ssylee/.nano_history

по-перше, щоб побачити поточні дозволи. Це може допомогти вам з’ясувати, чому вони помилялися в першу чергу. Якщо ssylee є власником цього файлу, можливо, у вас зламаний umask за замовчуванням?


1

Просто змініть дозволи .nano_historyфайлу так:

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

Зроблено! Повідомлення пропало! =) Дійсно, це просто.


0

Для виправлення потрібне редагування файлу конфігурації nano / etc / nanorc та видалення /home//.nano_history.

Спочатку прокоментуйте встановлений параметр historylog nanorc за допомогою цієї команди: sudo nano / etc / nanorc

#set historylog

Це відключить файл ~ / .nano_history, який використовується для збереження та читання рядків пошуку / заміни.

Це все ще залишає файл .nano_history у вашому каталозі користувачів. Видаліть цей файл наступним чином:

sudo rm .nano_history

Це воно!

Джерела


Це відверне відключення історії в нано, ймовірно, не те, що користувачі хочуть робити ..
Mxx
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.