Como você pode ver, existem muitas idéias sobre como resolvê-lo, mas isso depende de por que exatamente você está enfrentando o problema em primeiro lugar.
David Davi
Para reproduzir: sudo rm -f ~/.nano_history(remova o arquivo), sudo nano somefile(edite algum arquivo como raiz), ^K sometext(procure por algum texto), ^X(saia), nano somefile(edite algum arquivo como você). Você verá Erro ao ler /home/ssylee/.nano_history: permissão negada . O nano cria .nano_history para armazenar seu histórico de pesquisa. O arquivo pertence à raiz se for criado durante uma sudo nanosessão.
Iain Samuel McLean Elder
Respostas:
28
Isso geralmente é causado pela execução sudo nano [file]. Isso executa o processo nano como raiz, mas deixa $HOMEdefinido no diretório inicial do usuário comum; portanto, se o nano criar qualquer arquivo (incluindo o arquivo .nano_history), ele será de propriedade do root e colocado no diretório inicial.
Você pode verificar isso executando:
ls -l /home/ssylee/.nano_history
Se lsrelatar que o arquivo pertence root, você pode ter certeza razoável de que essa foi a causa. Se for, a situação pode ser reparada executando:
sudo chown $USER: ~/.nano_history
ou para soletrar esse comando:
sudo chown ssylee: /home/ssylee/.nano_history
Um hábito melhor para entrar é usar sudoeditou em sudo -evez de sudo nano. Isso executa o $EDITORprograma em uma cópia do arquivo que está sendo editado e, em seguida, substitui atomicamente o arquivo original quando o editor sai (o que é muito útil ao editar arquivos do sistema).
Por padrão, isso pode ser iniciado vi, mas você pode corrigir isso temporariamente invocando-o da seguinte maneira:
EDITOR=nano sudoedit [filename]
Você pode configurar permanentemente $EDITORno seu .bashrc, ou colocando
chown $USER:é uma maneira mais curta de aplicar o grupo principal.
Tobu
1
@ Tobu, obrigado! eu não sabia sobre esse truque. Atualizei a resposta para refletir isso.
Primeiro-dia
1
O mais fácil é remover o arquivo em questão. O próximo mais fácil é torná-lo legível com chmod/ chown. O próximo mais fácil é usar um editor diferente.
primeiro, para ver as permissões atuais. Isso pode ajudá-lo a descobrir por que eles deram errado. Se ssylee for o proprietário deste arquivo, talvez você tenha um umask padrão quebrado?
sudo rm -f ~/.nano_history
(remova o arquivo),sudo nano somefile
(edite algum arquivo como raiz),^K sometext
(procure por algum texto),^X
(saia),nano somefile
(edite algum arquivo como você). Você verá Erro ao ler /home/ssylee/.nano_history: permissão negada . O nano cria .nano_history para armazenar seu histórico de pesquisa. O arquivo pertence à raiz se for criado durante umasudo nano
sessão.Respostas:
Isso geralmente é causado pela execução
sudo nano [file]
. Isso executa o processo nano como raiz, mas deixa$HOME
definido no diretório inicial do usuário comum; portanto, se o nano criar qualquer arquivo (incluindo o arquivo .nano_history), ele será de propriedade do root e colocado no diretório inicial.Você pode verificar isso executando:
Se
ls
relatar que o arquivo pertenceroot
, você pode ter certeza razoável de que essa foi a causa. Se for, a situação pode ser reparada executando:ou para soletrar esse comando:
Um hábito melhor para entrar é usar
sudoedit
ou emsudo -e
vez desudo nano
. Isso executa o$EDITOR
programa em uma cópia do arquivo que está sendo editado e, em seguida, substitui atomicamente o arquivo original quando o editor sai (o que é muito útil ao editar arquivos do sistema).Por padrão, isso pode ser iniciado
vi
, mas você pode corrigir isso temporariamente invocando-o da seguinte maneira:Você pode configurar permanentemente
$EDITOR
no seu.bashrc
, ou colocandono
/etc/environment
.fonte
chown $USER:
é uma maneira mais curta de aplicar o grupo principal.O mais fácil é remover o arquivo em questão. O próximo mais fácil é torná-lo legível com
chmod
/chown
. O próximo mais fácil é usar um editor diferente.fonte
Eu sempre uso isso:
sudo chown -R username:username /home/username
Ele resolve o problema quando as permissões são alteradas.
fonte
Eu prefiro fazer uma
primeiro, para ver as permissões atuais. Isso pode ajudá-lo a descobrir por que eles deram errado. Se ssylee for o proprietário deste arquivo, talvez você tenha um umask padrão quebrado?
fonte
Basta alterar as permissões do
.nano_history
arquivo da seguinte maneira:FEITO! A mensagem se foi! =) Realmente é assim tão simples.
fonte
A correção requer editar o arquivo de configuração nano / etc / nanorc e excluir /home//.nano_history.
Primeiro, comente o parâmetro set historylog do nanorc com este comando: sudo nano / etc / nanorc
Isso desativará o arquivo ~ / .nano_history usado para salvar e ler as cadeias de pesquisa / substituição.
Isso ainda deixa o arquivo .nano_history no seu diretório de usuário. Exclua este arquivo da seguinte maneira:
É isso aí!
Fontes
fonte