Es gibt keine echte Inkonsistenz, da die Beziehung zwischen umask
und chmod
rein mit Gleichungen geschrieben werden kann. Anscheinend setzt umask
das Gegenteil von chmod
, es wurde so in den alten Tagen wieder hergestellt.
Beispiel: 022
(die Standardeinstellung umask
) erstellt 755
. Es funktioniert wie folgt:
7 - 0 = 7
wird das erste Byte
7 - 2 = 5
der zweiten und dritten Bytes
Mit diesem Beispiel wird erstellt umask 777
eine Datei mit chmod 000
wird umask 112
zu chmod 664
gleich sein. Soweit ich weiß, geschah dies, weil der Befehl umask
ursprünglich erstellt wurde, um anzuzeigen, welche Berechtigungsbits die Datei NICHT haben wird, nachdem sie erstellt wurde (daher die Umkehrung).
Während es lästig sein könnte, ist es wirklich nicht schwer, sich daran zu gewöhnen. Denken Sie einfach, wie Sie chmod
Ihre Dateien würden, und subtrahieren Sie das gewünschte Byte von 7
, und Sie erhalten den umask
Wert. Oder, wenn Sie in der IDE sind, schreiben Sie Ihren Code, verwenden Sie nicht umask
, sondern erstellen Sie die Datei (mit dem Standard umask
natürlich) und verwenden Sie dann in Python os.chmod()
statt.
Es ist eine "Maske" - das bedeutet das Wort in diesem Zusammenhang; etwas, das nur die unscharfen Bits durchlässt (denke an die Masken, die für das Malen, die Chipherstellung und dergleichen verwendet werden). Wenn es nicht so funktioniert, würde es etwas anderes genannt werden. –