2016-07-16 26 views
1

Zum Beispiel root eine neue Datei unter einem gemeinsamen Benutzer berühren (name it bob) Home-Verzeichnis:warum vim können andere Benutzer Datei unter Verzeichnis seiner Heimat überschreiben

/home/bob $ ls -alh a.txt 
-rw-r--r-- 1 root root 0 Jul 16 17:45 a.txt 

Jetzt bob es mit vim öffnen Benutzer, und es sollte nur gelesen werden.

versuchte ich es mit :w! überschreiben zu zwingen, und es wurde gespeichert und die owner:group geändert bob:

/home/bob $ ls -alh a.txt 
-rw-r--r-- 1 bob bob 4 Jul 16 17:47 a.txt 

IMO, ich denke, es ist nicht mit Erlaubnis verweigert gespeichert werden können, aber es konnte, und der Besitzer: Gruppe hat sich auch geändert.

Und das kann nur unter bob's Home-Verzeichnis, wenn unter äußeren Verzeichnis, wie/tmp oder andere, kann nicht geschrieben werden, wie ich dachte.

Kann jemand das erklären? Welche Prozesse macht :w! tatsächlich? Danke.

+1

das hat nichts mit vim zu tun. –

Antwort

3

Die Datei ist von Bob lesbar, also kann Bob sie in Vim öffnen.

Das Verzeichnis ist von Bob beschreibbar, so dass Bob in der Lage sein wird, jede Datei darin zu entfernen (zu entfernen) und neue Dateien darauf zu schreiben. Dies passiert, wenn Sie :w! verwenden.

Dies gilt nicht für das Verzeichnis /tmp, da wahrscheinlich das Bit "sticky" gesetzt ist.

Vom O X sticky(8) Handbuch:

Ein Verzeichnis, das 'Sticky-Bit' gesetzt ist wird ein Append-only-Verzeichnis, oder, genauer gesagt, ein Verzeichnis, in dem das Löschen von Dateien beschränkt ist. Eine Datei in einem Haftverzeichnis kann nur entfernt oder von einem Benutzer umbenannt werden, wenn der Benutzer Schreibberechtigung für das Verzeichnis hat und der Benutzer der Besitzer der Datei ist, der Besitzer des Verzeichnisses oder der Super-Benutzer. Diese Funktion wird sinnvollerweise auf Verzeichnisse wie als /tmp angewendet, die öffentlich beschreibbar sein müssen, Benutzern jedoch die Lizenz verwehren sollte, die Dateien jeder anderen Person willkürlich zu löschen oder umzubenennen.

+0

Thx, ignorierte ich die 'w' Erlaubnis des Verzeichnisses. –