Когда я фиксирую изменения в репозитории SVN, я всегда сталкиваюсь со следующей проблемой в терминале в Ubuntu:
Error reading /home/ssylee/.nano_history: Permission denied
Есть идеи как это решить?
Обычно это вызывается запуском 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
.
Проще всего удалить данный файл. Следующий простой способ - сделать его читаемым с помощью chmod
/chown
. Следующий простой способ - использовать другой редактор.
Я всегда использую это:
sudo chown -R username:username /home/username
Это решает проблему, когда разрешения испорчены.
Я бы предпочел сделать
ls -la /home/ssylee/.nano_history
во-первых, чтобы увидеть текущие разрешения. Это может помочь вам выяснить, почему они пошли не так, как надо. Если ssylee является владельцем этого файла, может быть, у вас битый umask по умолчанию?
Просто измените права доступа к файлу .nano_history
следующим образом:
sudo chown youruser:yourgroup /home/<username>/.nano_history
СДЕЛАННЫЙ! Сообщение пропало! =) На самом деле это так просто.
Для исправления необходимо отредактировать файл конфигурации nano /etc /nanorc и удалить /home//.nano_history.
Сначала закомментируйте заданный параметр historylog для nanorc с помощью этой команды: sudo nano /etc /nanorc
#set historylog
Это отключит файл ~/.nano_history, используемый для сохранения и чтения строк поиска /замены.
Это по-прежнему оставляет файл .nano_history в вашем пользовательском каталоге. Удалите этот файл следующим образом:
sudo rm .nano_history
Это оно!