PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Proftpd umask



timo_niss
22.08.02, 23:40
Hi,
ich möchte gerne für ein Verzeichnis (cgi-bin) die umask ändern, damit beim Upload die Dateien in diesem Verzeichnis bereits den richtigen Rechte haben.

Ich hab es schon mit der "<Directory>" Direktive versicht, aber wenn ich hier die umask auf 0022 0022 setze, wird es ignoriert und alle Dateien erhalten die umask 0133 (chmod 644). Die Verzeichnisse werden korrekt gesetzt.

Kann mir vielleicht jemand einen Tip geben?
Ach übrigens die Suchfunktion habe ich bereits verwendet, aber nicht brauchbares gefunden.

Danke

Timo

Harry
23.08.02, 00:04
Hallo,

wenn Du die umask auf 022 setzt, dann bekommst Du für Dateien den Mode 644 und für Verzeichnisse 755.
Das hat mit den unterschiedlichen Ausganswerten der Modes für Dateien und Verzeichnisse zu tun. Bei Dateien ist der Ausgangswert 666 und bei Verzeichnissen 777.
Es hat somit alles seine Richtigkeit.

Harry

timo_niss
23.08.02, 00:51
Hallo Harry,

vielen Dank für deine Hilfe, aber wie kriege ich dann die Dateien mit umask auf chmod 755 - denn 666 minus 755 ergiebt einen negativen Wert für die umask.
Oder steh ich jetzt etwas auf dem Schlauch.

Vielen Dank

Timo

Harry
23.08.02, 01:16
Hallo Timo,

wie kommst Du auf 666 - 755?
Obwohl sowas sicher in 1.000 verschiedenen Quellen im Internet und in Büchern niedergeschrieben ist, muß das nicht korrekt sein. Die Berechnung des effektiven Mode verhält sich etwas anders:

Ausgangswerte

File-Mode: 666
Dir-Mode : 777
umask : 022


Unter diesen Voraussetzungen wirfst Du eine Datei oder ein Verzeichnis auf Deinen Server. Dann geschieht folgendes:
Die umask wird zunächst negiert:

! umask : 755


Dann wird vom Ausgangsmode für Files folgendes berechnet:

File-Mode: 666
! umask : 755 AND
------------------
eff. Mode: 644


Und für Verzeichnisse:

Dir-Mode : 777
! umask : 755 AND
------------------
eff. Mode: 755


Das war's. Alles klar?

Harry

timo_niss
23.08.02, 12:35
Hallo Harry,

stimmt, die Information, dass ich das gewünschte Ergebnis z.B. 755 einfach vom Ausgangswert abziehe und dann die zuverwendende umask z.B. 022 erhalte, habe ich aus dem Internet.

Bei Deiner Übersicht gehst von den Ausgangswerten File: 666, Dir: 777 und umask 022 aus. Aber negiert wird eine umask 755.

Vom Prinzip hab ich das verstanden, komme aber damit mathematisch nicht klar.

Welche umask muss ich denn jetzt in der proftpd.conf verwenden, um alle Dateien, die per WS-FTP in das Verzeichnis cgi-bin hochgeladen werden, automatsch mit den Rechten
rwx r-x r-x
auszustatten?

Vielen Dank für Deine Geduld

Timo

Harry
23.08.02, 15:05
Hallo,


Original geschrieben von timo_niss Bei Deiner Übersicht gehst von den Ausgangswerten File: 666, Dir: 777 und umask 022 aus. Aber negiert wird eine umask 755.


nein. umask 022 ist einer der Ausgangswerte und dieser Wert wird negiert. Als Ergebnis dieser Negation bekommst Du dann 755.

Welche umask muss ich denn jetzt in der proftpd.conf verwenden, um alle Dateien, die per WS-FTP in das Verzeichnis cgi-bin hochgeladen werden, automatsch mit den Rechten
rwx r-x r-x
auszustatten?

Tja, genau da liegt das Problem. Ein "x" in der Rechtemaske bekommst Du für Dateien nicht allein über die umask, da das x-bit (niederwertigste bit in jedem Oktet) im Ausgangswert 666 bereits gelöscht ist.

Du könntest beispielsweise mit einem cron-Job nachhelfen, der neue Uploads in .../cgi-bin - soweit es sich um Dateien handelt - nachträglich mit dem executable-Flag ausstattet.
Oder Du kannst nach dem FTP-Upload über das chmod-Kommando über den FTP-Client die Maske neu setzen soweit das die Serverkonfiguration zuläßt.

Harry

timo_niss
23.08.02, 20:31
Hi Harry,

OK, das hab ich jetzt geschnallt. Danke.

Aber das ich mit umask für Dateien kein x setzen kann, hängt das mit proftpd zusammen oder ist das eine Limitierung meiner Distribution (Mandrake 8.2)?

Bei meinem Provider im Internet (Verio) funktioniert das nämlich. Alle Dateien die ich ins cgi-Verzeichnis uploade haben die korrekten Rechte zum ausführen. Und sofort nach dem upload kann ich die Funktion testen - so schnell ist doch kein cron-Script oder.
Zudem bin ich recht neu in Sachen Linux und habe bisher keine eigenen bash-Scripte geschrieben.

Kennst Du vielleicht ein FTP-Server, der dieses kan?

Nochmals vielen Dank für Deine Hilfe

Timo

Trazom
23.08.02, 22:55
Ich weiß nicht, ob WU-ftp das kann, aber er ist auch sehr verbreitet...ähnlich proftpd