PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : pureftp und umask?



micha_g
27.01.06, 09:00
also folgendes....
ich hab nen ordner unter /srv/ftp der heißt Uploads
in dem ordner soll der Nutzer uploads(gruppe: users) schreib und ausführungsrechte haben, damit er in den ordner reinkommt und hochladen kann, aber nicht lesen kann
der user ftpusers (gruppe: ftpgroup, nutzer unterdem alle ftp user mit schreibzugriff laufen) soll vollzugriff haben
der user ftprusers (gruppe: ftpgroup, nutzer unterdem alle ftp user mit schreibzugriff laufen) soll lese und ausführungsrecht haben
nun hab ich bei dem ordner Uploads an sich das hier:


darkvoice:/srv/ftp # getfacl Uploads/
# file: Uploads
# owner: ftpusers
# group: ftpgroup
user::rwx
user:uploads:-wx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:ftpusers:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

der uploaduser vom ftp läuft über den lokalen nutzer uploads

nun habe ich folgendes gemacht
einmal habe ich einen ordner lokal via shell unter dem nutzer root erstellt.. das sieht dann so aus:

darkvoice:/srv/ftp/Uploads # getfacl test1
# file: test1
# owner: root
# group: root
user::rwx
user:ftpusers:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:ftpusers:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

dann hab ich via ftp mit dem uploadnutzer n verzeichnis erstellt, das sah dann so aus:


darkvoice:/srv/ftp/Uploads # getfacl test2
# file: test2
# owner: uploads
# group: users
user::rwx
user:ftpusers:rwx #effective:r-x
group::r-x
mask::r-x
other::r-x
default:user::rwx
default:user:ftpusers:rwx
default:group::r-x
default:mask::rwx
default:other::r-x

wie man erkennen kann wäre es so dem ftpusers nicht möglich den inhalt des ordners test2 zu löschen der per ftp erstellt wurde, der inhalt des direkt per shell erstellten ordners test1 jedoch schon

als ftp server nutze ich pureftpd

da gibt es auch ne option die heißt -U bzw. --umask

dazu hab ich folgendes gefunden:

- '-U <umask for files>:<umask for dirs>': Change the file creation mask.
The default is 133:022. If you want a new file uploaded by a user to only be
readable by that user, use '-U 177:077'. If you want uploaded files to be
executable, use 022:022 (files will be readable -but not writable- by other
users) or 077:077 (files will only be executable and readable by their
owner) . Please note that Pure-FTPd support the SITE CHMOD extension, so a
user can change the permissions of his own files.

was mich daran verwirrt is da steht: "The default is 133:022."

ich dachte eigentlich bei der rechtevergabe von linux langsam son klein wenig durchzublicken aber irgendwie... raff ichs nun doch nich

kann mir da mal wer weiterhelfen was ich wie machen muss damits hinhaut

danke im voraus?


Micha

bangaltar
27.01.06, 11:45
Hi,

ist eigentlich ganz einfach mit den rechten.

rwx steht für read, write und execute
den buchstaben sind werte zugeordnet
r=4
w=2
x=1

zusammen = 7 = alle Rechte read write execute

wenn du jetzt jemanden rechte auf ein verzeichnis geben willst, gibt es immer 3 Gruppen: Besitzer, Gruppe und alle anderen.
Soll der Besitzer auf seine Datei nur lesen und schreiben bekommen, musst du 4+2 = 6 rechnen für die Rechte rw_
als Befehl setzt man dann chmod 600 ab.
Bei der umask läuft das so:

Die max Rechte sind 777 indem du jetzt 133 abziehst bekommst du den Wert der beim erstellen gesetzt wird, hier 644 was ja bedeutet:
Besitzer = rw
Gruppe = r
jeder = r

Bei den Verzeichnissen hast du 777 umask 022 bedeutet 755
Besitzer = rwx
Gruppe = r_x
jeder = r_x

ich hoffe du hast das verstanden, bin nicht so gut im erklären...

Ich hab damals unseren pureftpd so eingerichtet das alle komplett mit virtuellen usern läuft. da musste ich nur den pureftp-daemon-user rechte auf die zielverzeichnisse geben.
Den Rest ging glaub komplett über das config file....

micha_g
27.01.06, 11:58
Ok,
also danke schonmal, was bei mir nur an verständnis gefehlt hat war das mit dem umask
dass man das abziehen musst... ok ...
nun is aber immer noch das problem mit den acls
den wenn ich das unter der shell direkt erstelle is das ja alles kein problem ... nur ich kann ja jetzt nicht für jeder rwx setzen ...
wenn ich per ftp hochlade kommt ja dann am ende das hier
mask::r-x
das wird ja nich wirklich darüber definiert
mein problem is die differenz zwischen dem direkten erstellen und dem per ftp

Micha