Wenn ich chmod +w filename
es starte, gibt es keine Schreibberechtigung für und other
, es gibt nur Schreibberechtigung für user
und group
.
Nach dem Ausführen dieses Befehls
chmod +w testfile.txt
laufende ls -l testfile.txt
Drucke
-rw-rw-r-- 1 ravi ravi 20 Mar 10 18:09 testfile.txt
aber im fall von +r
und +x
funktioniert es einwandfrei.
Ich möchte nicht verwenden chmod ugo+w filename
.
linux
command-line
permissions
chmod
Ravi Sevta
quelle
quelle
ugo
, verwenden Siea
.+w
nicht arbeite.askubuntu
Antwort behaupten Sie , Sie verweisen oben auf "Dieses Verhalten ist POSIX-vorgeschrieben und daher kein Fehler". Bitte beachten Sie, dass der POSIX-Anwendungstext nicht normativ ist und daher nicht von POSIX vorgeschrieben wird.Antworten:
Ihre spezifische Situation
In Ihrer spezifischen Situation können wir vermuten, dass Ihre aktuelle
umask
ist002
(dies ist ein gemeinsamer Standardwert) und dies erklärt Ihre Überraschung.In dieser speziellen Situation, in der der
umask
Wert 002 ist (alle Zahlen oktal).+r
meintugo+r
denn002 & 444
ist000
, mit dem alle Bits gesetzt werden können+x
meintugo+x
denn002 & 111
ist000
, mit dem alle Bits gesetzt werden können+w
heißtug+w
weil002 & 222
ist002
, was verhindert, dass das "o" -Bit gesetzt wird.Andere Beispiele
umask 022
+w
würde bedeutenu+w
.umask 007
+rwx
würde bedeutenug+rwx
.umask 077
+rwx
würde bedeutenu+rwx
.Was hätte Ihren Erwartungen entsprochen?
Wenn Sie ändern ,
umask
um000
durch die AusführungDann in Ihrem Terminal
setzt die Berechtigungen auf ugo + w.
Randnotiz
Beachten Sie,
umask 000
wie von ilkkachu vorgeschlagen, dass nicht jeder alle Ihre Dateien lesen und schreiben kann.Dies
umask 000
bedeutet jedoch, dass jeder Benutzer, der Zugang zu einem beliebigen Benutzerkonto auf Ihrem Computer hat (einschließlich Programmen, die Serverdienste von c ausführen), alle Dateien lesen und schreiben kann, die Sie mit dieser aktiven Maske erstellen, und sich nicht ändert (sofern die enthaltene Kette von c) Verzeichnisse bis zum Stammverzeichnis ermöglichen dies ebenfalls.quelle
r
Bit für diejenigen Parteien zu setzen, bei denen es die umask erlaubt. Dies ist in den Handbüchern von zB GNU chmod und FreeBSD chmod sowie dem Standard klar angegeben. Gleiches gilt für+x
. Denn+w
du hast recht, für den Fall dieser besonderen Umask.0
bedeutet auch nicht , dass jeder alle Ihre Dateien lesen und schreiben kann, da viele Anwendungen Dateien erstellen, die im Modus besonders privat sind0600
, was bedeutet, dass die Gruppe und andere keinen Zugriff erhalten, unabhängig von der umask.umask
ist ein wichtiger Teil des Verhaltens+r
, kein Nebeneffekt. Außerdem, selbst umask unter der Annahme002
,chmod +r
bedeutet nichtchmod ugo=r
, es bedeutetchmod ugo+r
Mit:
Die Dauerwellen werden zu Benutzer , Gruppe und anderem hinzugefügt, wobei die umask weiterhin gültig ist. Dadurch wird sichergestellt, dass der Datei nicht mehr Berechtigungen erteilt werden, als dies bei einer neu erstellten Datei der Fall wäre.
Wenn Sie die Perms Benutzern , Gruppen und anderen Benutzern unabhängig von der umask hinzufügen möchten, verwenden Sie
das ist die Abkürzung für
quelle
Sie müssen angeben, wem Sie die Berechtigungen erteilen, z. B.
other
mithilfe vonchmod o+w testfile.txt
quelle
+w
gibt allen die Erlaubnis (Benutzer, Gruppe und andere).chmod a+w testfile.txt
. Verwenden Sieu
für Benutzer,g
für Gruppen,o
für andere unda
für alle.chmod a+w filename
,chmod +w filename
undchmod ugo+w filename
auf jede andere Alternative gibt , warum dann nicht nur benutzen+w