Come posso risolvere questo errore che ottengo quando eseguo il commit delle modifiche su un repository SVN dal terminale Ubuntu?


12

Quando eseguo il commit delle modifiche su un repository SVN, incontro sempre il seguente problema nel terminale di Ubuntu:

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

Qualche idea su come risolverlo?


Come puoi vedere, ci sono molte idee su come risolverlo, ma dipende dal motivo per cui esattamente stai riscontrando il problema in primo luogo.
David Z,

Per riprodurre: sudo rm -f ~/.nano_history(rimuovi il file), sudo nano somefile(modifica alcuni file come root), ^K sometext(cerca del testo), ^X(esci), nano somefile(modifica alcuni file come te). Vedrai Errore durante la lettura di /home/ssylee/.nano_history: autorizzazione negata . nano crea .nano_history per memorizzare la cronologia delle ricerche. Il file appartiene a root se viene creato durante una sudo nanosessione.
Iain Samuel McLean Elder,

Risposte:


28

Questo di solito è causato dalla corsa sudo nano [file]. Questo esegue il processo nano come root, ma rimane $HOMEimpostato sulla directory home dell'utente normale, quindi se nano crea file (incluso il file .nano_history), sarà di proprietà di root e collocato nella directory home.

Puoi verificarlo eseguendo:

ls -l /home/ssylee/.nano_history

Se lssegnala che il file è di proprietà root, allora puoi essere ragionevolmente sicuro che questa sia stata la causa. In tal caso, la situazione può essere riparata eseguendo:

sudo chown $USER: ~/.nano_history

o per sillabare quel comando:

sudo chown ssylee: /home/ssylee/.nano_history

Un'abitudine migliore da prendere è usare sudoedito sudo -einvece di sudo nano. Questo esegue il $EDITORprogramma su una copia del file che si sta modificando, quindi sostituisce atomicamente il file originale all'uscita dell'editor (che è molto utile quando si modificano i file di sistema).

Per impostazione predefinita, questo può essere avviato vi, ma puoi risolverlo temporaneamente invocandolo in questo modo:

EDITOR=nano sudoedit [filename]

Puoi configurare $EDITORin modo permanente nel tuo .bashrc, o posizionando

EDITOR=nano

in /etc/environment.


4
chown $USER:è un modo più breve per applicare il gruppo primario.
Tobu

1
@Tobu, grazie! non sapevo di quel trucco. Ho aggiornato la risposta per riflettere ciò.
Sopprimere il

1

Il più semplice è rimuovere il file in questione. Il prossimo più semplice è renderlo leggibile con chmod/ chown. Il prossimo più semplice è usare un editor diverso.


1

Lo uso sempre:
sudo chown -R username:username /home/username

Risolve il problema quando le autorizzazioni sono incasinate.


1

Preferirei fare un

ls -la /home/ssylee/.nano_history

in primo luogo, per visualizzare le autorizzazioni correnti. Questo potrebbe aiutarti a scoprire perché hanno sbagliato in primo luogo. Se ssylee è il proprietario di questo file, forse hai un umask predefinito rotto?


1

Basta modificare le autorizzazioni del .nano_historyfile come segue:

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

FATTO! Il messaggio è sparito! =) È davvero così semplice.


0

La correzione richiede la modifica del file di configurazione nano / etc / nanorc e l'eliminazione di /home//.nano_history.

Per prima cosa commenta il parametro set historylog di nanorc con questo comando: sudo nano / etc / nanorc

#set historylog

Questo disabiliterà il file ~ / .nano_history usato per salvare e leggere stringhe di ricerca / sostituzione.

Questo lascia ancora il file .nano_history nella tua directory utente. Elimina questo file come segue:

sudo rm .nano_history

Questo è tutto!

fonti


Questo disabiliterà completamente la cronologia in nano, probabilmente non qualcosa che gli utenti vorrebbero fare ..
Mxx
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.