GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Warum gibt chmod +w anderen(o) keine Schreibrechte

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).

  • +r bedeutet ugo+r weil 002 & 444 ist 000 , wodurch alle Bits gesetzt werden können
  • +x bedeutet ugo+x weil 002 & 111 ist 000 , wodurch alle Bits gesetzt werden können
  • aber +w bedeutet ug+w weil 002 & 222 ist 002 , was verhindert, dass das "o"-Bit gesetzt wird.

Andere Beispiele

  • Mit umask 022 +w würde u+w bedeuten .
  • Mit umask 007 +rwx würde ug+rwx bedeuten .
  • Mit umask 077 +rwx würde u+rwx bedeuten .

Was Ihren Erwartungen entsprochen hätte

Wenn Sie umask ändern bis 000 , indem Sie

ausführen
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

ist
chmod ugo+<perms>

Linux
  1. Warum benötigt der Root-Benutzer eine Sudo-Berechtigung?

  2. Warum liefert `md5sum` nicht den gleichen Hash wie das Internet?

  3. Warum sind Netzwerkschnittstellen nicht wie andere Geräte in /dev?

  4. Linux – Warum funktioniert Setuid nicht?

  5. Warum funktioniert `exit &` nicht?

Warum fordert der Docker-Container die Erlaubnis verweigert auf?

Warum wächst die MAP_GROWSDOWN-Zuordnung nicht?

Warum heißt es:Wir dürfen limit.h nicht einschließen! in dirent.h?

Warum gibt mir das Wgeting eines Bildes eine Datei und kein Bild?

Erteilen Sie Ausführungsberechtigungen für Verzeichnisse, aber nicht für Dateien

Warum zeigt yum updateinfo nicht alle Updates an?