ubuntuusers.de

zsh-Fehlermeldung.

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

Hello_World

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Hallo,

Ich verwende die zsh. Wenn ich mit sudo -s eine root-Shell öffne und diese dann per Ctrl-D verlasse, so erscheint eine Fehlermeldung:
zsh: failed to write history file /home/hw/.histfile: datei oder Verzeichnis nicht gefunden
Die Datei ist aber definitiv vorhanden, genau wie /root/.histfile.

Kennt jemand diesen Bug?

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

sudo -s ändert keine Umgebungsvariablen und root hat keine Schreibrechte in deine Histfile.

Du müsstest also nen Hook in deine .zshrc einbauen, der die Umgebungsvariable dafür umbiegt, wenn du root bist.

Blattlaus

Avatar von Blattlaus

Anmeldungsdatum:
29. März 2006

Beiträge: 1399

Order du benutzt sudo -i...

Hello_World

(Themenstarter)

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

sudo -s ändert keine Umgebungsvariablen und root hat keine Schreibrechte in deine Histfile.

Root darf überall schreiben, zumindest in meiner derzeitigen Konfiguration. Abgesehen davon heißt es "Datei oder Verzeichnis nicht gefunden", nicht "keine Berechtigung".

audax

Avatar von audax

Anmeldungsdatum:
15. September 2006

Beiträge: 1253

zsh: can't write history file /home/dax/.zsh_history

So is bei mir.

Und die Rechte der Datei sind auf 600 - Niemand außer mir selbst darf schreiben.
Root könnte schreiben, aber die Rechte sagen, dass er nicht soll → er tuts nicht.

€dit:
Na gut, er tuts auch mit 666 nicht....
Er tuts halt nicht 😀

Hello_World

(Themenstarter)

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Ich hab's aber auch schon mit chmod 777 probiert. Bringt nichts.

Sid_Burn

Anmeldungsdatum:
23. Oktober 2004

Beiträge: 2159

audax hat geschrieben:

Und die Rechte der Datei sind auf 600 - Niemand außer mir selbst darf schreiben.[/quote]
Das interessiert root aber nicht. Wenn du root bist bist du owner von jeder Datei. Darfst jede Datei, sehen, lesen, löschen, bearbeiten.

Nur mit sachen wie SELinux etc. kannst du die rechte von root einschränken und dir daraus ein Windows System bauen wo du Admin bist, und trotzdem nicht alles darfst.

Das er es also nicht schreibt bzw die Datei nicht findet liegt an was anderem. Rechte spielen hier keine Rolle.

----

Bzw. wenn es an der zsh liegt und diese wirklich einen mechanismuss eingebaut hat und root wie ein anderen User Account behandelt und von sich aus dann das schreiben verhindert wenn die Rechte nicht stimmen, dann würde ich auf die verzeichnissrechte schauen. Das Verzeichniss selber müsste dann vielleicht für Others "r-x" gesetzt haben. "r" sagt das Others den inhalt des verzeichnis listen darf (z.B. mit ls) und "x" sagt ob others überhaupt ins Verzeichnis wechseln darf. Obwohl hier "x" wichtiger ist. Wenn das flag nicht gesetzt ist kannst du nichtmal rein. Wenn "r" fehlt dann kannst du rein wechseln, siehst bei "ls" zwar nichts, wenn du aber den Dateinamen kennst, kannst du eien Datei trotzdem öffnen.

Lachkater

Avatar von Lachkater

Anmeldungsdatum:
22. Februar 2007

Beiträge: 273

Möglicherweise schaut die zsh ja nicht nach den Rechten sondern nach dem Besitzer der Datei. Sieht aha die gehört nicht root (auch wenn root natürlich Schreibrechte besitzt) und schreibt einfach nicht.

Hello_World

(Themenstarter)

Anmeldungsdatum:
13. Juni 2006

Beiträge: 3620

Nochmal: Die Fehlermeldung lautet explizit "datei oder Verzeichnis nicht gefunden" (sic).
Abgesehen davon würde jede vernünftige Programmierer einfach versuchen, die Datei zum Schreiben zu öffnen und dann eine Fehlermeldung bringen, falls das fehlschlägt. Die Prüfung der Rechte hat das Betriebssystem zu erledigen.

Antworten |