Root kann nicht chmod?

12

In meiner Abteilung haben wir einen kleinen Dateiserver mit CentOS und Samba. Ich habe root-Zugriff, um grundlegende Wartungsarbeiten durchführen zu können.

Heute habe ich einige Ordner schreibgeschützt gemacht, also habe ich einen gemacht chmod -R -w some-folder/, aber für ein paar Dateien habe ich die Antwort bekommen:

chmod: ./somefile.pdf: Neue Berechtigungen sind r-xrwxr-x, nicht r-xr-xr-x

Nach dem Hinzufügen -verhalte ich nicht viele Informationen:

Modus von `./somefile.pdf 'beibehalten als 0575 (r-xrwxr-x)

Ich habe Folgendes versucht, um sicherzugehen:

# touch test-file
# chmod -v -R -w .
mode of `./somefile.pdf' retained as 0575 (r-xrwxr-x)
chmod: ./somefile.pdf: new permissions are r-xrwxr-x, not r-xr-xr-x
mode of `./test-file' changed to 0444 (r--r--r--)

Ich kann mir keine guten Gründe vorstellen, warum root kein chmod machen könnte.

Einige Leckerbissen:

  • Das Dateisystem ist nicht schreibgeschützt (nur einige Dateien konnten nicht geändert werden).
  • Ich habe die chmod-Befehle als root ausgeführt, aber ohne Wirkung.
  • Die Partition, auf der sich die Dateien befinden, ist ext4.

UPDATES : Dies ist die Ausgabe für lsattrdie Datei und den enthaltenen Ordner:

# lsattr somefile.pdf
-------------e- somefile.pdf
# lsattr ..
-------------e- ../myfolder

Es ist keine Setuid vorhanden ( ls -la):

dr-xr-xr-x  2 userxyz abc   4096 May 30 09:29 .
dr-xr-xr-x 17 userxyz abc   4096 Sep 19  2013 ..
-r-xrwxr-x  1 userxyz abc 275150 Aug  6  2013 somefile.pdf
Roflo
quelle
Sie greifen aus der Ferne auf diese Dateien zu?
Luciano Andress Martini
1
Was ist die Ausgabe lsattrderselben Dateien und des Verzeichnisses darüber?
Ryder

Antworten:

17

Laut Quellen haben Sie einen naiven erwarteten Modus . Nach mehr Graben denke ich, dass die Ursache die -wWahl ist, die nicht ist, was Sie erwarten. Sie sollten g-woder geben ugo-w(je nach Ihren Bedürfnissen).

Ohne Angabe eines expliziten Ziels (a, o, g, u) könnten einige unerwartete Ergebnisse gemäß dem umask-Wert bereitgestellt werden. Ich denke, eine solche zusätzliche Nachricht wird wegen solcher unerwarteten Änderungen gemacht.

Bearbeiten: Quellen in http://git.savannah.gnu.org/cgit/coreutils.git/tree/src/chmod.c#n301

Entnommen aus dem Google-Cache, einem Kommentar in diesem Code, der nicht mehr vorhanden ist:

/ * Wenn dies zutrifft, diagnostizieren Sie Überraschungen durch naiven Missbrauch wie "chmod -r file". POSIX ermöglicht hier die Diagnose, da portabler Code verwendet werden soll. "chmod - -r Datei" * /

Giacomo Catenazzi
quelle
Ja das war es Ich habe es geändert ugo-wund es beklagt sich nicht mehr. Ich werde einige Zeit warten, bevor ich aus Höflichkeit gegenüber potenziellen Antwortenden akzeptiere.
Roflo
1
Und ich freue mich über Änderungen oder bessere Antworten, weil ich immer noch nicht verstehe, warum chmod auf diese seltsame Weise funktioniert.
Giacomo Catenazzi
5
man chmod: "Eine Kombination aus den Buchstaben ugoa steuert, welcher Benutzerzugriff auf die Datei geändert wird die umask sind nicht betroffen. " Sie können also Dinge wie chmod + w-Datei tun und nur denjenigen Schreibzugriff gewähren, die beim Erstellen einer neuen Datei darauf zugreifen würden. Das negative Verhalten wirkt allerdings etwas verwirrend, so dass die Warnung eine gute Idee zu sein scheint.
ilkkachu