umask

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
mario.neudeck
Beiträge: 455
Registriert: 07.09.2004 08:51:47
Wohnort: Dresden

umask

Beitrag von mario.neudeck » 03.05.2006 21:39:34

Hallo,
meine umask ist in /etc/profile auf 022 eingestellt.
In einem Verzeichnis sollen die angelegten Dateien/Unterverzeichnisse aber nur mit 660 angelegt werden. Wie/Wo kann ich das für das Verzeichnis einstellen?
-Mario

Benutzeravatar
mig
Beiträge: 152
Registriert: 26.02.2003 13:21:58
Wohnort: wien
Kontaktdaten:

Beitrag von mig » 03.05.2006 21:49:50

Hi
In meiner .bash_profile steht u.a.

Code: Alles auswählen

...
# the default umask is set in /etc/login.defs
#umask 022
...
also auskommentieren und auf den Wert ändern den du brauchst.
Gilt aber nur für die Bash.
Für andere Shells mußt du deren Startdateien bemühen :wink:
mfg

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.05.2006 21:52:17

Oder in den

Code: Alles auswählen

/etc/login.defs
einstellen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
herrchen
Beiträge: 3257
Registriert: 15.08.2005 20:45:28
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Berlin

Re: umask

Beitrag von herrchen » 03.05.2006 21:54:44

ziczac-stoffe hat geschrieben:Wie/Wo kann ich das für das Verzeichnis einstellen?
für ein einzelnes verzeichnis gar nicht.

herrchen

Benutzeravatar
mig
Beiträge: 152
Registriert: 26.02.2003 13:21:58
Wohnort: wien
Kontaktdaten:

Beitrag von mig » 03.05.2006 21:56:43

Das würde dann aber für alle user gelten.
Ich sehe aber erst jetzt, daß der OP es nur für ein bestimmtes Verzeichnis will.
Ja geht denn das, und ist das sinnvoll?
mfg

Edit: ok Herrchen war schneller

mario.neudeck
Beiträge: 455
Registriert: 07.09.2004 08:51:47
Wohnort: Dresden

Beitrag von mario.neudeck » 03.05.2006 22:43:05

Ja geht denn das, und ist das sinnvoll?
Es geht mit darum, daß nur die Eigentümer und Gruppe auf das Verzeichnis zugreifen können bzw. die Dateien für Eigentümer und Gruppe schreibbar sind

Code: Alles auswählen

drwxrwx---    5 root daten  4096 May  3 21:36 daten
Es gibt den Nutzer mario, der ist Mitglied in Gruppe "daten", seine Standardgruppe ist jedoch "mario"

Code: Alles auswählen

mario@linux1:/daten$ touch test
mario@linux1:/daten$ ls -la test
-rw-r--r--  1 mario mario 0 May  3 22:32 test
Der Nutzer xy ist auch Mitglied der Gruppe "daten" und soll Datei "test" bearbeiten können, sonst aber niemand.
Ich müßte dann wohl folgendes machen:

Code: Alles auswählen

mario@linux1:/daten$ chown mario.daten test
mario@linux1:/daten$ ls -la test
-rw-r--r--  1 mario daten 0 May  3 22:32 test
mario@linux1:/daten$ chmod 660 test
mario@linux1:/daten$ ls -la test
-rw-rw----  1 mario daten 0 May  3 22:32 test
Das würde ich halt gleich beim Anlegen der Datei so erreichen wollen.
Vielleicht geht das so garnicht? Habt Ihr einen anderen Tip?
-Mario

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.05.2006 22:50:20

Ich habs zwar noch nicht selbt ausprobiert, was gehen müßte du entziehst den anderen die Schreibrechte für das Verzeichnis.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

mario.neudeck
Beiträge: 455
Registriert: 07.09.2004 08:51:47
Wohnort: Dresden

Beitrag von mario.neudeck » 03.05.2006 23:04:26

ja, das geht.
aber ich wollte auch erreichen, daß alle Nutzer der Gruppe "daten" die Dateien bearbeiten können (nicht nur lesen).

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von KBDCALLS » 03.05.2006 23:07:26

Wenn das schon mal funktioniert wie gedacht, dann müßtest du noch die Zugehörigkeit der Gruppe für das Verzeichnis ändern. Also auf Gruppe daten Die Gruppe darf ja in dem Verzeichnis schreiben.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.05.2006 00:45:29

ziczac-stoffe hat geschrieben: Vielleicht geht das so garnicht? Habt Ihr einen anderen Tip?
doch - mit acl geht das - siehe

Code: Alles auswählen

man acl
IIRC - man kann Verzeichnisse taggen - z.B. /usr/share/groupdata/ und von da an rekursiv alle möglichen Rechte setzen für Einzelpersonen und Gruppen die nicht unbedingt eine Gruppe im Dateisystem reflektieren müssen - für genauers müsste ich selber wieder nachsehen

greets markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 04.05.2006 12:32:19

Das geht mit dem SETGID-Flag.

Code: Alles auswählen

chmod g+s Verzeichnis
nun werden alle neu angelegten Dateien in dem Verzeichnis mit der Gruppe des Verzeichnisses erstellt.

mario.neudeck
Beiträge: 455
Registriert: 07.09.2004 08:51:47
Wohnort: Dresden

Beitrag von mario.neudeck » 04.05.2006 12:47:34

chmod g+s Verzeichnis
Vielen Dank, das sieht ja gut aus. Werde mir chmod / SETGID mal genauer anschauen.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.05.2006 12:54:21

SETGID flag:
wäre noch zu gucken ob das für einen normalen User so ist - für root ist es nicht so vgl. line 11 und 24

Code: Alles auswählen

     1 finch@pc1:/tmp$ cd test/
     2  finch@pc1:/tmp/test$ ls -l
     3  total 0
     4  finch@pc1:/tmp/test$ mkdir subdir
     5  finch@pc1:/tmp/test$ ls -ln
     6  total 4
     7  drwxr-xr-x 2 1000 1000 4096 2006-05-04 14:42 subdir
     8  finch@pc1:/tmp/test$ chmod 4755 subdir/
     9  finch@pc1:/tmp/test$ ls -ln
    10  total 4
    11  drwsr-xr-x 2 1000 1000 4096 2006-05-04 14:42 subdir
    12  finch@pc1:/tmp/test$ touch subdir/file
    13  finch@pc1:/tmp/test$ ls -ln subdir/
    14  total 0
    15  -rw-r--r-- 1 1000 1000 0 2006-05-04 14:46 file
    16  finch@pc1:/tmp/test$ su
    17  Password:
    18  pc1:/tmp/test# touch subdir/file_after_changing_uid
    19  pc1:/tmp/test# exit
    20  exit
    21  finch@pc1:/tmp/test$ ls -ln subdir/
    22  total 0
    23  -rw-r--r-- 1 1000 1000 0 2006-05-04 14:46 file
    24  -rw-r--r-- 1    0    0 0 2006-05-04 14:47 file_after_changing_uid
    25  finch@pc1:/tmp/test$

markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 04.05.2006 15:06:58

Was eventuell daran liegen könnte, dass es

Code: Alles auswählen

chmod 2755 subdir
heißen muss (wobei ich dennoch zu "g+s" raten würde, ist verständlicher und ändert die anderen flags nicht)

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.05.2006 15:12:48

ob

Code: Alles auswählen

chmod 4755
oder

Code: Alles auswählen

chmod g+s
bei einer Ausgangslage von drwxr-xr-x macht ja keinen Unterschied.
Die Ausgangslage ist im Grunde vollkommen egal - oder wie hast du das gemeint?

markus
Zuletzt geändert von meandtheshell am 04.05.2006 15:15:34, insgesamt 1-mal geändert.

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 04.05.2006 15:14:57

2755. 4 setzt setuid, nicht setgid

g+s ändert nur das setgid-bit und läßt den rest in Frieden.

2755 ändert die kompletten rechte.

Benutzeravatar
meandtheshell
Beiträge: 4054
Registriert: 14.01.2005 17:51:30

Beitrag von meandtheshell » 04.05.2006 15:17:50

Joghurt hat geschrieben:2755. 4 setzt setuid, nicht setgid
genau - mein Fehler
g+s ändert nur das setgid-bit und läßt den rest in Frieden.

ok so war das gemeint - ja stimmt - ich mache es aber immer anders herum - also gebe die Rechte in oktaler schreibweise an - geht auch ...

markus

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 04.05.2006 20:26:13

meandtheshell hat geschrieben:also gebe die Rechte in oktaler schreibweise an - geht auch ...
Ändert aber eben alle Rechte. Manchmal will man in einem Skript wirklich z.B. nur das setgid setzen (ohne das sticky-bit oder gruppen-writable in Mitleidenschaft zu ziehen)

Antworten