On Mon, 06 Jan 2003 at 08:32 (+0100), Bernd Brodesser wrote:
* David Haller schrieb am 05.Jan.2003:
Hallo,
On Sun, 05 Jan 2003, Bernd Brodesser wrote:
* David Haller schrieb am 05.Jan.2003:
On Sun, 05 Jan 2003, Bernd Brodesser wrote:
Schon klar. 644 war ja das Beispiel, daß ich gewählt habe. Und das mit dem logischen und ist auch klar. Um so mehr verwundert es, daß bei umask das binäre Komplement der Rechte genommen wurde.
Das liegt an der Aufgabe, die umask erfuellen soll! Und das geht AFAIK nur so (oder noch kraenker).
Ich weiss grad nicht mehr aus welcher manpage ich das habe, aber Dateien sollen ja via 'open(name, flags, mode)' erzeugt werden, wobei mode das *Maximum* der gewuenschten Rechte ist,
Man könnte genausogut das *Minimum* nehmen.
Weil's nicht funktioniert. Minimum waere z.B. 500... Wie willst du da per "umask" auf 755 oder 750 kommen?
? Minimum meine ich natürlich Bitweise, also ein logisches und.
Du willst also in umask die minimalen Rechte setzen, die für einen Benutzer gelten sollen? Dann wäre das also 755 anstelle von 022 (wie es jetzt sitzt). Und jetzt beim Anlegen einer Datei die minimalen Rechte setzen, die man wünscht: 666 (ich will mal, dass alle lesen und schreiben können). Wenn man das jetzt verundet (schönes Wort ;-), dann kommt 644 raus - hmm, nicht ganz das, was der Erzeuger der Datei wollte, oder? IMHO ist der Mechanismus so wie er existiert der optimale. Der Erzeuger der Datei legt fest, mit welchen Rechten er seine Datei maximal ausgestattet wissen möchte (und nicht, was er mindestens gewährt, das wäre in meinen Augen unlogisch, weil ja damit der Schutz, den der Erzeuger seiner Datei zukommen lassen will, ausgehebelt wird) und eine weitere Einschränkung dieser Rechte wird durch die umask definiert.
Die einzige Alternative waere IMO die umask direkt als Komplement zu definieren, aber das ist wiederum noch weniger intuitiv, wenn man bestimmte Rechte nicht setzen will (z.B. waere eine "umask" von 755 statt 022 doch eher verwirrend, wenn dabei (bei 622) dann 600 rauskommt ;)...
Wieso ist das verwirrender? Wenn ich zu einem 755 also rwxr-xr-x und zum anderen 622 also rw--w--w- habe, so kommt da rw------- also 600 heraus. Finde ich klar.
Hm. Jo. Aber man hat halt das logische "UND" drin...
Ja klar. [...]
So hast Du das Problem, dass Du im Prinzip für Datendateien, ausführbare Dateien (Scripts, Programme) unterschiedliche Masken definieren müsstest, damit sie korrekt angelegt werden oder Du musst in jedem Programm erst auswerten, um welchen Typ der Datei es sich handelt. Du willst ja Datendateien nicht ausführbar machen, willst aber Dateiverzeichnisse nicht ohne x-Bit lassen, wenn Du reinwechseln willst. Mit dem Komplement (also den _nicht_ zu gewährenden Rechten) hast Du dieses Problem nicht und kannst getreu der Unix-Philosophie jede Datei gleich behandeln, unabhängig vom Dateityp. Jan