Ihre spezifische Situation
In Ihrer speziellen Situation können wir vermuten, dass Ihr aktueller umask ist 002 (dies ist ein üblicher Standardwert) und das erklärt Ihre Überraschung.
In dieser speziellen Situation, in der umask Wert ist 002 (alle Zahlen oktal).
+rbedeutetugo+rweil002 & 444ist000, wodurch alle Bits gesetzt werden können+xbedeutetugo+xweil002 & 111ist000, wodurch alle Bits gesetzt werden können- aber
+wbedeutetug+wweil002 & 222ist002, was verhindert, dass das "o"-Bit gesetzt wird.
Andere Beispiele
- Mit
umask 022+wwürdeu+wbedeuten . - Mit
umask 007+rwxwürdeug+rwxbedeuten . - Mit
umask 077+rwxwürdeu+rwxbedeuten .
Was Ihren Erwartungen entsprochen hätte
Wenn Sie umask ändern bis 000 , indem Sie
umask 000
in Ihrem Terminal, dann
chmod +w file
setzt Berechtigungen auf ugo+w.
Randbemerkung
Beachten Sie, wie von ilkkachu vorgeschlagen, dass umask 000 bedeutet nicht, dass jeder alle Ihre Dateien lesen und schreiben kann.
Aber umask 000 bedeutet jeder, der Zugriff auf beliebige hat Benutzerkonto auf Ihrer Maschine (das Programme enthalten kann, auf denen Serverdienste ofc ausgeführt werden) kann alle Dateien lesen und schreiben, die Sie mit dieser aktiven Maske erstellen, und sie nicht ändern (wenn die enthaltende Kette von Verzeichnissen bis zum Stammverzeichnis dies auch zulässt).
Mit:
chmod +<perms>
die Berechtigungen werden zu Benutzer hinzugefügt , Gruppe und Sonstiges aber mit der umask, die immer noch gilt. Es stellt sicher, dass der Datei nicht mehr Berechtigungen gewährt werden als einer neu erstellten Datei.
Wenn Sie die Berechtigungen zu Benutzer hinzufügen möchten , Gruppen und Sonstiges Verwenden Sie unabhängig von der umask
chmod a+<perms>
was kurz für
istchmod ugo+<perms>