Como posso resolver esse erro quando recebo alterações em um repositório SVN a partir do terminal Ubuntu?


12

Quando confirmo alterações em um repositório SVN, sempre encontro o seguinte problema no terminal no Ubuntu:

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

Alguma idéia de como resolvê-lo?


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

EDITOR=nano

no /etc/environment.


4
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.


1

Eu sempre uso isso:
sudo chown -R username:username /home/username

Ele resolve o problema quando as permissões são alteradas.


1

Eu prefiro fazer uma

ls -la /home/ssylee/.nano_history

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?


1

Basta alterar as permissões do .nano_historyarquivo da seguinte maneira:

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

FEITO! A mensagem se foi! =) Realmente é assim tão simples.


0

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

#set historylog

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:

sudo rm .nano_history

É isso aí!

Fontes


Este serão definitivas desativar história no nano, provavelmente não algo que os usuários gostariam de fazer ..
Mxx
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.