Durch Zufall bin ich weggelaufen chmod -u filename
und es hat mir alle Berechtigungen genommen, die ich hatte filename
.
Die Manpage verweist nicht auf eine -u
Option. Beim Experimentieren konnte ich feststellen, dass nicht alle Berechtigungen entfernt werden, sondern nur der Lese- und Ausführungszugriff, wobei der Schreibzugriff intakt bleibt.
Was genau macht das?
Meine Schlussfolgerung oben ist falsch, ich denke jetzt, dass es die Berechtigungen, die der Eigentümer hat, aus allen Kategorien entfernt.
Ich denke, das Verhalten ist analog zu a=u
, nur ist es -
anstelle von =
und a
kann genauso fallengelassen werden, wie es zum Beispiel mit kann a+x
.
permissions
chmod
y_wc
quelle
quelle
[ugoa...][[-+=][perms...]...]
, in demperms
entweder Null oder mehrere Buchstaben aus dem SatzrwxXst
, oder einen einzelnen Buchstaben aus dem Satzugo
“ (GNU chmod man - Seite); POSIX ist ziemlich undurchsichtig, definiert jedoch eine "Permcopy" -Produktion für denselben Effekt.u
), die Berechtigungen, die anderen Benutzern gewährt wurden, die Mitglieder der Gruppe der Datei sind (g
). und die Berechtigungen, die Benutzern gewährt werden, die keiner der beiden vorhergehenden Kategorien angehören (o
). "u
werden die Berechtigungen angegeben, die dem Benutzer erteilt werden, dem die Datei gehört. Aber es sagt nicht, was es tut. Was heißt überhaupt spezifizieren?Antworten:
Dies ist keine Option, sondern eine standardmäßige (aber ungewöhnliche) Methode zum Festlegen der Berechtigungen. Es bedeutet (zu entfernen
-
) die Berechtigungen mit dem Dateibesitzer (assoziiertu
), für alle Benutzer (kein vorausu
,g
odero
). Dies ist in der Manpage dokumentiert.Die Manpage von GNU chmod dokumentiert dies als:
und später
Dies
-u
bedeutet, dass-
alle Berechtigungen, die derzeit für den Eigentümer (u
) aktiviert sind, für allea-u
Benutzer entfernt ( ) werden (entspricht , außer dass die aktuelle Umask eingehalten wird). Das ist zwar nicht oft sehr nützlich,chmod +u
aber manchmal ist es das Analoge , die Berechtigungen des Besitzers auf andere zu kopieren, wenn Sie beispielsweise rekursiv arbeiten.Es ist auch in POSIX dokumentiert , aber etwas unklarer definiert: Die Berechtigungsspezifikation ist weit gefasst
who[+-=]perms
(oder eine Zahl), und deren Auswirkungen werden weiter spezifiziert:und dann
quelle
perms
kann seinu
, dass ich bekam. Ja,u
gibt die Berechtigungen oder den Besitzer an. Aber wie folgt daraus, dass-u
die Berechtigungen des Eigentümers (Modulumask
) von allen Benutzern entfernt werden?-
tut es immer: Es entfernt die angegebenen Berechtigungen von der angegebenen Benutzerklasse.-u
ist genau analog zu-w
oder (näher) zuugo-u
.chmod
Dokumentationsfrage belästigen? Lassen Sie mich wissen, wenn Sie der Meinung sind, dass dies eine separate Frage verdient. "und = bewirken, dass sie hinzugefügt und nicht erwähnte Bits entfernt werden, mit der Ausnahme, dass die nicht erwähnten gesetzten Benutzer- und Gruppen-ID-Bits eines Verzeichnisses nicht betroffen sind."chmod u=rx directory
Lässt die Berechtigungen des Besitzers alsrwx
. Aber das ist nicht was passiert, stattdessen werden sie die erwartetenr-x
. Interpretiere ich etwas falsch?s
Bits setuid / setgid ( ) allein gelassen werden, wenn Sie sie nicht erwähnen, und alles andere, was Sie nicht angegeben haben, wird entfernt.Die Antwort ist ein bisschen ähnlich wie /unix//a/429424/255251 .
entfernt nicht alle Berechtigungen, berücksichtigt jedoch den
umask
Wert.Ändern Sie nun den umask-Wert
quelle