Wie kann ich diesen Fehler beheben, der beim Festschreiben von Änderungen in einem SVN-Repository vom Ubuntu-Terminal aus auftritt?


12

Wenn ich Änderungen in einem SVN-Repository festschreibe, stoße ich auf dem Terminal in Ubuntu immer auf folgendes Problem:

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

Irgendwelche Ideen, wie man es löst?


Wie Sie sehen, gibt es viele Lösungsvorschläge, die jedoch davon abhängen, warum genau das Problem überhaupt auftritt.
David Z

So reproduzieren Sie: sudo rm -f ~/.nano_history(Entfernen Sie die Datei), sudo nano somefile(Bearbeiten Sie eine Datei als Root), ^K sometext(Suchen Sie nach Text), ^X(Beenden), nano somefile(Bearbeiten Sie eine Datei wie Sie). Es wird ein Fehler beim Lesen von /home/ssylee/.nano_history angezeigt: Berechtigung verweigert . nano erstellt .nano_history zum Speichern Ihres Suchverlaufs. Die Datei gehört zu root, wenn sie während einer sudo nanoSitzung erstellt wird.
Iain Samuel McLean Elder

Antworten:


28

Dies wird normalerweise durch Laufen verursacht sudo nano [file]. Dadurch wird der Nano-Prozess als Root ausgeführt, $HOMEdas Basisverzeichnis des regulären Benutzers bleibt jedoch festgelegt. Wenn Nano also Dateien erstellt (einschließlich der Datei .nano_history), wird das Eigentum von Root übernommen und in Ihrem Basisverzeichnis abgelegt.

Sie können dies überprüfen, indem Sie Folgendes ausführen:

ls -l /home/ssylee/.nano_history

Wenn lsgemeldet wird, dass der Eigentümer der Datei ist root, können Sie sicher sein, dass dies die Ursache war. Ist dies der Fall, kann die Situation folgendermaßen repariert werden:

sudo chown $USER: ~/.nano_history

oder um diesen Befehl zu formulieren:

sudo chown ssylee: /home/ssylee/.nano_history

Eine bessere Angewohnheit ist es, sudoeditoder sudo -eanstelle von zu verwenden sudo nano. Dadurch wird das $EDITORProgramm auf einer Kopie der zu bearbeitenden Datei ausgeführt und die ursprüngliche Datei beim Beenden des Editors atomar ersetzt (was beim Bearbeiten von Systemdateien sehr hilfreich ist).

Standardmäßig wird dies möglicherweise gestartet vi, aber Sie können dies vorübergehend beheben, indem Sie es folgendermaßen aufrufen:

EDITOR=nano sudoedit [filename]

Sie können dauerhaft $EDITORin Ihrem .bashrcoder durch Platzieren konfigurieren

EDITOR=nano

in /etc/environment.


4
chown $USER:ist eine kürzere Möglichkeit, die primäre Gruppe anzuwenden.
Tobu

1
@Tobu, danke! Ich wusste nicht über diesen Trick. Ich habe die Antwort aktualisiert, um dies widerzuspiegeln.
Unterdrückungsfeuer

1

Am einfachsten ist es, die betreffende Datei zu entfernen. Das nächst einfachere ist, es mit chmod/ lesbar zu machen chown. Am einfachsten ist es, einen anderen Editor zu verwenden.


1

Ich benutze immer das:
sudo chown -R username:username /home/username

Es löst das Problem, wenn die Berechtigungen durcheinander sind.


1

Ich würde lieber eine machen

ls -la /home/ssylee/.nano_history

zuerst, um die aktuellen Berechtigungen anzuzeigen. Dies könnte Ihnen helfen, herauszufinden, warum sie überhaupt schief gelaufen sind. Wenn ssylee der Eigentümer dieser Datei ist, haben Sie möglicherweise eine fehlerhafte Standard-Umask?


1

Ändern Sie einfach die Berechtigungen der .nano_historyDatei wie folgt:

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

ERLEDIGT! Die Nachricht ist weg! =) Wirklich so einfach ist das.


0

Das Update erfordert das Bearbeiten der Nano-Konfigurationsdatei / etc / nanorc und das Löschen von /home//.nano_history.

Kommentieren Sie zuerst den gesetzten historylog-Parameter von nanorc mit diesem Befehl aus: sudo nano / etc / nanorc

#set historylog

Dadurch wird die Datei ~ / .nano_history deaktiviert, die zum Speichern und Lesen von Such- / Ersetzungszeichenfolgen verwendet wird.

Dadurch verbleibt die Datei .nano_history weiterhin in Ihrem Benutzerverzeichnis. Löschen Sie diese Datei wie folgt:

sudo rm .nano_history

Das ist es!

Quellen


Dies wird den Verlauf in Nano endgültig deaktivieren, wahrscheinlich nicht etwas, was Benutzer tun möchten.
Mxx
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.