Wer darf eigentlich chmod?

Überraschenderweise eine Frage, die uns heute einige Zeit gekostet hat:

Wer darf eigentlich chmod auf eine Datei ausführen?

tl;dr: Nur root und der Besitzer der Datei darf Metadaten ändern. Gruppen, Verzeichnisse oder Schreibrechte einer Person haben keinen Einfluss.

Intuitiv dachte ich, die Antwort wäre klar. Aber wie es sich herausgestellt hat, waren wir uns alle nicht so recht einig darüber. Ein paar Vorschläge waren:

  • Besitzer und Gruppe
  • Besitzer und Gruppe, die Schreibrechte haben
  • Besitzer und Gruppe des Verzeichnises, in dem die Datei liegt

Die Man-Page von chmod schweigt sich unterdessen über diese Frage aus. Im Internet haben wir auf Anhieb auch wenig handfestes gefunden, das zitierfähig wäre. Bis auf die Doku von RedHat. (Okay, ich geb zu, ich habe den Artikel auf der Wikipedia übersehen. Das hätte mir weitere Mühe gespart.)

Die Entscheidung, nur dem Besitzer die Rechte ändern zu lassen, kann man aber gut nachvollziehen. Wir sind lediglich über den Umstand auf die Frage gestoßen, dass wir Schreibzugriffe auf Dateien über Gruppenrechte und SGID lösen. Fehlende oder fehlerhafte Rechte können wir so aber nicht beheben.
Immerhin haben wir die Sicherheit, dass niemand schädliche oder gar gefährliche Rechte wie 777 setzen kann. Aber manchmal ist eben doch der Eingriff durch root notwendig.

Interessant zu wissen, dass ähnliches auch für chmod und chgrp gilt. Nur root darf den Eigentümer ändern, unprivilegierten Nutzern ist es verboten, eine Datei „zu verschenken“. Der Besitzer darf die Gruppe zwar ändern, aber lediglich zu einer Gruppe wechseln, in der er selber Mitglied ist.

Manchmal muss man einfach die Basics wiederholen. :)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

÷ 2 = one