Hinweis: Das Forum wird geschlossen! Neue Registrierungen sind nicht mehr möglich!

 Zurück zu Pro-Linux   Foren-Übersicht   FAQ     Suchen    Mitgliederliste
vi

 
Neuen Beitrag schreiben   Auf Beitrag antworten    Pro-Linux Foren-Übersicht -> Sonstiges
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
linax
Gast





BeitragVerfasst am: 25. Apr 2002 15:36   Titel: vi

Ich habe ein Problem mit vi(vim).
Und zwar kann ich auch wenn ich nur ein Leserecht auf eine Datei habe und die Datei öffne und etwas hineinschreibe das Schreiben
in die Datei erzwingen mit wq!.Dann ändert der vi erstmal das Besitzrecht der Datei auf meinen Usernamen und dann kann er natürlich auch die Datei schreiben.Wohl gemerkt mache ich das nicht als root und nur mit einen Leserecht auf diese Datei.Das darf doch nicht möglich sein! Habe ich da einen Denkfehler oder etwas übersehen oder darf das der vi
wirklich machen ?
Wer kann mir helfen ?
 

Andre
Gast





BeitragVerfasst am: 25. Apr 2002 18:07   Titel: Re: vi

hi,
kann es sein das die user-"gruppe" schreibrechte auf diese datei hat?

cu,
Andre
 

linax
Gast





BeitragVerfasst am: 25. Apr 2002 19:06   Titel: Re: vi

Nein eben nicht.Die Gruppe users hat nur ein Leserecht!
Probier es doch mal aus.Damit ich weiß das ich nicht der Einzige bin bei dem das funktioniert.
 

Jochen
Gast





BeitragVerfasst am: 25. Apr 2002 19:25   Titel: Re: vi

Die Sache ist recht einfach: Du hast Schreibrecht in dem Verzeichnis, in dem die Datei steht, nicht? Der vi arbeitet nämlich nicht direkt auf der Original-Datei, sondern auf einer Kopie davon. Erst wenn Du die Änderungen sichern willst, schreibt der vi die Arbeitskopie über das Original. Wenn Du kein Schreibrecht hast, musst Du das Überschreiben explizit anfordern (mit ":w!", wie Du ja selber gemerkt hast). Und dabei löscht er eben die Originaldatei und kopiert die geänderte Kopie an die Stelle, wo die alte Datei stand. (Natürlich gibt er auch Acht auf Zugriffsrechte usw.) Dazu benötigt er nirgends Schreibrecht auf die Datei, sondern lediglich Schreibrecht auf das Verzeichnis, in dem die Datei steht. Also geht alles mit rechten Dingen zu.

Jochen
 

Chris
Gast





BeitragVerfasst am: 25. Apr 2002 19:28   Titel: Re: vi

Hab's gerade mal getestet...



root@linux:/tmp # vi blabla
roow@linux:/tmp # ls -ltra blabla
-rw-r--r-- 1 root root 5 Apr 25 20:22 blabla
linux:/tmp # su - chris
chris@linux:/tmp> ls -ltra blabla
-rw-r--r-- 1 root root 5 Apr 25 20:22 blabla
chris@linux:/tmp> vi blabla


--> Ergebnis: Schreiben geht nicht! Eigentümer des Verzeichnisses ist "root:root". Rechte sind "drwxrwxrwt".
Das gleiche Ergebnis ist z.B. unter "/usr" mit Eigentümer "root:root" und Rechten "drwxr-xr-x".
Wenn ich es aber im Home von User "chris" mache:



root@linux:/home/cdr # vi blabla
roow@linux:/home/cdr # ls -ltra blabla
-rw-r--r-- 1 root root 5 Apr 25 20:23 blabla
linux:/tmp # su - chris
chris@linux:/~> ls -ltra blabla
-rw-r--r-- 1 root root 5 Apr 25 20:23 blabla
chris@linux:/~> vi blabla
chris@linux:/~> ls -ltra blabla
-rw-r--r-- 1 chris users 15 Apr 25 20:23 blabla



Funktioklappt! Die Verzeichnisrechte sind "drwxr-xr-x" Eigentümer ist "cdr:users"

Sieht also so aus, als würde der vi die Rechte des betroffenen Verzeichnis verwenden...
Scheint imho ein Bug zu sein! Ich nutze aber auch eine Beta (6.0av beta) von dem Teil!!!!
 

Jochen
Gast





BeitragVerfasst am: 25. Apr 2002 20:06   Titel: Re: vi

Nein, kein Bug, und erst recht nicht im vi (vim)!

Um den Inhalt einer Datei zu verändern, brauchst Du Schreibrecht auf die Datei. So weit, so gut. Um in einem Verzeichnis Dateien anlegen oder löschen zu dürfen, benötigst Du Schreibrecht auf das Verzeichnis. Du kannst also eine Datei, auf die Du nur Leserechte besitzt, nicht ändern, aber Du kannst sie löschen, wenn Du für das Verzeichnis, in dem sie steht, Schreibrecht hast! Und das ist kein Bug, sondern ergibt sich aus der Tatsache, dass unter UNIX ein Verzeichnis nichts weiter als eine Tabelle ist, die Dateinamen zu I-Nodes verknüpft. Die I-Nodes stellen dann die eigentliche Datei dar: Eigentümer, Zugriffsrechte, Grösse, belegte Blöcke usw. Schreibrecht auf ein Verzeichnis zu haben bedeutet also nur, diese "Tabelle" ändern zu dürfen: Neue Einträge hinzufügen (= neue Dateien dort anlegen) oder Einträge zu entfernen (= Dateien löschen). Wenn Du nun (wie der vim es macht) von einer nur lesbaren Datei eine Kopie ziehst, diese änderst, das Original löschst uind die Kopie an die Stelle des verschwundenen Original setzst, ist alles im Rahmen der UNIX-Rechte abgelaufen. Die Original-Datei wurde nie verändert, nur ihr Namenseintrag im Verzeichnis wurde gestrichen! So funktioniert UNIX übrigens seit Urzeiten.
 

Jochen
Gast





BeitragVerfasst am: 25. Apr 2002 20:10   Titel: Re: vi

Mist, zu früh auf Senden geklickt!

Ergänzung:

Das /tmp-Verzeichnis war da ein schlechter Ort für Deinen Test, da für das Verzeichnis das Sticky-Bit gesetzt ist (das "t" von den Zugriffsrechten "drwxrwxrwt"). Dieses bewirkt nämlich, dass nur der Eigentümer einer Datei diese auch löschen darf, selbst wenn man Schreibrecht auf das Verzeichnis besitzt. So kommen sich die Leute in /tmp nicht mehr so ins Gehege, wenn mal irgendein User ein "rm -rf /tmp/*" absetzt.

Jochen
 

Chris
Gast





BeitragVerfasst am: 25. Apr 2002 21:41   Titel: Re: vi

@Jochen:

Hmmm... Jetzt wo du es sagtst... Stimmt! Irrtum meinerseits!
 

Beiträge vom vorherigen Thema anzeigen:   
     Pro-Linux Foren-Übersicht -> Sonstiges Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehen Sie zu:  

Powered by phpBB © phpBB Group
pro_linux Theme © 2004 by Mandaxy