12

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

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

Есть идеи как это решить?

6 ответов6

28

Обычно это вызывается запуском sudo nano [file] . Это запускает процесс nano от имени root, но оставляет $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 .

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

Это оно!

источники

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .