PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateirechte für einen Ordner festlegen (CHMOD)



NiceDay
06.02.2004, 23:25
Hi!
Ich möchte das alle Dateien die in einem speziellen Ordner abgespeichert werden , alle die gleichen Rechte besitzen (also so das wenn eine neue Datei da reingespeichert wird, diese sofort die Rechte z.B. chmod 755 bekommt).

Das ganze hat den Hintergrund eines Download-Ordners der für das ganze Netzwerk per Samba-Zugriff verfügbar sein soll; wenn ich da ganz normal ne neue Datei reinspeicher habe standardmäßig nur ich alle Rechte dieser Datei (klar ach wie logisch) - bißchen doof bei jedem neuen DL erstmal noch die Rechte für diesen zu setzen bloß damit alle Nutzer des Netzwerks zugriff drauf haben, finde ich zumindest.

The_Devil
07.02.2004, 00:06
Das ganze kannst du mit Hilfe des Befehls umask machen.
Der Befehl funktioniert mehr oder weniger wie der chmod Befehl.
Zumindestens auch mit Zahlen! :)

Beispiel:

umask 022

Für Dateien:
Wird jetzt eine neue Datei angelegt, bekommt sie die Rechte 644 also rw-r--r--.
Das ganze wird berechnet indem man von den Zahlenwert 666 einfach den Zahlenwert der umask abzieht. So kommt man dann auf die oben stehende 644

Für Verzeichnisse:
Bei Verzeichnissen werden die Rechte ein bisschen anderst berechnet. Dort wird von dem Zahlenwert 777 der Zahlenwert der umask abgezogen. Nach dem Beispiel oben würde das Verzeichnis die Rechte 755 also rwxr-xr-x besitzen.

Ich habe jetzt aber keine Idee, wie ich auf deine gewünschten Rechte 755 rwxr-xr-x bei Dateien kommen soll!

EDIT: Okay kleine Korrektur. Ich hab das ganze jetzt aus Interesse ausprobiert und mit umask 011 hat die neue Datei dann 666 also rw-rw-rw- Rechte. :(
Die neu angelegte Datei hat nie das Recht x für ausführen. Bei Verzeichnissen funktioniert das ganze. Ich verstehe nicht ganz, warum bei Dateien der Zahlenwert der umask von dem Zahlenwert 666 abgezogen wird, aber so ist es leider nicht möglich auf Dateien die neu angelegt werden standardmäßig das Recht x zu setzen.

qmasterrr
07.02.2004, 12:01
man umask
ich glaube das wird die frangen kl]ren

HangLoose
07.02.2004, 14:00
moin

die umask gilt *systemweit*, also dann für alle neu erstellten files und das ist sicher nicht gewollt.

das ganze wirst du wohl über die samba conf regeln müssen. du kannst ja hier mal schauen, ob du was findest => http://de.samba.org/samba/docs/man/AccessControls.html#id2916787



Gruß HL

NiceDay
07.02.2004, 14:01
Dachte ich auch, dem ist aber nicht so, denn da kommt nur folgendes heraus:

BASH_BUILTINS(1) BASH_BUILTINS(1)

NAME
bash, :, ., [, alias, bg, bind, break, builtin, cd, command, compgen,
complete, continue, declare, dirs, disown, echo, enable, eval, exec,
exit, export, fc, fg, getopts, hash, help, history, jobs, kill, let,
local, logout, popd, printf, pushd, pwd, read, readonly, return, set,
shift, shopt, source, suspend, test, times, trap, type, typeset,
ulimit, umask, unalias, unset, wait - bash built-in commands, see
bash(1)

SEE ALSO
bash(1), sh(1)

man bash bringt einbißchen was hervor, wodurch man aber auch nicht gerade viel verstehen kann...

Ok, werde mich mal genauer mit Samba beschäftigen, alles klar
thx ;)

HangLoose
07.02.2004, 14:05
ja die (dann geänderte)umask gilt nur für neue files.


Gruß HL

NiceDay
07.02.2004, 15:24
Hab bißchen was versucht in Samba (mit force directory mode etc.), jedoch bekommt der Client immer ein "permission denied" (klar, nicht genügend Rechte).
Der User der für die Samba-Aktivitäten verwendet wird ist bei mir "nobody" (war Standard), die Files die ich kopiern möchte haben die Rechte chmod 644 ;also würde es auch nix nützen eine neue Gruppe zu erstellen und dem Samba-User "nobody" (oder neuen User anlegen) diese zu zuordnen.....

ACL ist auch aktiviert in den Samba-Einstellungen. Nutze übrigens die Samba 2.x-Variante.

-=kussi76=-
13.02.2004, 11:42
Um diesen Efrfekt zuerreichen kann du in der smb.conf die Optionen 'create mask' und 'directory mask' verwenden.

z.B. so:

[global]

...

[homes]
comment = Home Directories %S
path = /home/%S
read only = No
create mask = 0700 # für Dateien
directory mask = 0700 # für Verzeichnisse
browseable = No

NiceDay
13.02.2004, 13:41
Ja das was du hier meinst betrifft soweit ICH das seh, Dateien die über Zugriff auf eine Freigabe erstellt werden - nicht aber (was ich ja eigentlich möchte) bereits bestehende Dateien bzw. (!) Dateien die auf dem Samba-Server erstellt wurden (also von mir).

mA|tRiX
02.10.2005, 11:43
Kann mir da evtl. einer mal helfen? :)

Ich sehe die Dateien aber ich darf sie nicht öffnen. :(

Rechte hab ich alle vergeben usw.

Edit:

Habs hinbekommen. CU.

mkossner
26.11.2007, 16:56
Hi, ich habe gerade genau das gleiche Problem!
Wie Hast du es denn hinbekommen?

Gruss Markus

o-n
28.11.2007, 05:09
Hallo Markus,
der Thread ist ziemlich alt..aber egal. Auf welches Problem beziehst du dich? Das im Posting vor Dir oder insgesamt die Default-Rechte in einer Freigabe? Für letzteres schau dir mal die smb.conf Parameter force create mode, create mask und entsprechendes für Verzeichnisse (force directory mode, directory mask) an. Damit kannst du alle Rechte festlegen die eine Datei oder ein Verzeichniss erhält wenn sie/es über den Client in der Freigabe erzeugt wird.

Alternativ interessant: ACL
Wenn dein Samba ACL unterstützt und dein Dateisystem auch, dann kannst du mit setfacl Rechte für z.B. Ordner vergeben die dann von allem was sich darunter befindet geerbt werden, egal von wo erzeugt. Aber dazu sollte man sich doch besser erst etwas mehr mit dem Thema ACL auseinandersetzen denke ich.