Как видите, есть много идей о том, как ее решить, но это зависит от того, почему именно вы испытываете проблему в первую очередь.
Дэвид З
Воспроизвести: sudo rm -f ~/.nano_history(удалить файл), sudo nano somefile(отредактировать некоторый файл как root), ^K sometext(найти какой-нибудь текст), ^X(выйти), nano somefile(отредактировать какой-либо файл как вы) Вы увидите Ошибка чтения /home/ssylee/.nano_history: Разрешение отклонено . nano создает .nano_history для хранения истории поиска. Файл принадлежит пользователю root, если он создан во время sudo nanoсеанса.
Иэн Сэмюэль Маклин, старейшина,
Ответы:
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, или разместив
chown $USER:это более короткий способ применения основной группы.
Тобу
1
@ Тобу, спасибо! я не знал об этом трюке. Я обновил ответ, чтобы отразить это.
Подавление
1
Проще всего удалить данный файл. Следующий простой способ - сделать его читаемым с помощью chmod/ chown. Следующий простой способ - использовать другой редактор.
во-первых, чтобы увидеть текущие разрешения. Это может помочь вам выяснить, почему они пошли не так, как надо. Если ssylee является владельцем этого файла, возможно, у вас сломан umask по умолчанию?
sudo rm -f ~/.nano_history
(удалить файл),sudo nano somefile
(отредактировать некоторый файл как root),^K sometext
(найти какой-нибудь текст),^X
(выйти),nano somefile
(отредактировать какой-либо файл как вы) Вы увидите Ошибка чтения /home/ssylee/.nano_history: Разрешение отклонено . nano создает .nano_history для хранения истории поиска. Файл принадлежит пользователю root, если он создан во времяsudo nano
сеанса.Ответы:
Это обычно вызывается бегом
sudo nano [file]
. При этом процесс nano запускается от имени пользователя root, но остается$HOME
установленным в домашний каталог обычного пользователя, поэтому, если nano создает какие-либо файлы (включая файл .nano_history), он будет принадлежать пользователю root и помещен в ваш домашний каталог.Вы можете проверить это, запустив:
Если
ls
сообщает, что файл принадлежитroot
, то вы можете быть уверены, что это было причиной. Если это так, то ситуацию можно исправить, запустив:или прописать эту команду:
Лучшая привычка - использовать
sudoedit
илиsudo -e
вместоsudo nano
. При этом$EDITOR
программа запускает копию редактируемого файла, а затем атомарно заменяет исходный файл при выходе из редактора (что очень полезно при редактировании системных файлов).По умолчанию это может запуститься
vi
, но вы можете временно это исправить, вызвав его так:Вы можете постоянно настраивать
$EDITOR
в своем.bashrc
, или разместивв
/etc/environment
.источник
chown $USER:
это более короткий способ применения основной группы.Проще всего удалить данный файл. Следующий простой способ - сделать его читаемым с помощью
chmod
/chown
. Следующий простой способ - использовать другой редактор.источник
Я всегда использую это:
sudo chown -R username:username /home/username
Это решает проблему, когда разрешения перепутаны.
источник
Я бы предпочел сделать
во-первых, чтобы увидеть текущие разрешения. Это может помочь вам выяснить, почему они пошли не так, как надо. Если ssylee является владельцем этого файла, возможно, у вас сломан umask по умолчанию?
источник
Просто измените права доступа к
.nano_history
файлу следующим образом:СДЕЛАНО! Сообщение пропало! =) На самом деле это так просто.
источник
Для исправления необходимо отредактировать файл конфигурации nano / etc / nanorc и удалить /home//.nano_history.
Сначала закомментируйте заданный параметр historylog для nanorc с помощью этой команды: sudo nano / etc / nanorc
Это отключит файл ~ / .nano_history, используемый для сохранения и чтения строк поиска / замены.
Это по-прежнему оставляет файл .nano_history в вашем пользовательском каталоге. Удалите этот файл следующим образом:
Это оно!
источники
источник