cgi-bin umask voreinstellung bei ftp
frankx
- webserver
0 Christoph Schnauß0 frankx0 Mathias Brodala0 frankx
Hellihello,
das cgi-bin auf meinem Server ist so eingestellt, dass per FTP hochgeladene Dateien (ein Shell Script) erstmal keine Ausführungsrechte für den Besitzer haben. Das muss ich dann immer per Hand über den FTP-Client ändern, damit das Script läuft, logisch irgendwie. Andererseits brauchen Scripte im cgi-bin nicht immer Ausführungsrechte, weil sie sonst nicht laufen?
Ist diese Einstellung aus Sicherheitsgründen so? Und falls nicht, wie ließe sich das ändern? In der Konfiguration des FTP-Servers?
Dank und Gruß,
frankx
hallo,
das cgi-bin auf meinem Server ist so eingestellt, dass per FTP hochgeladene Dateien (ein Shell Script) erstmal keine Ausführungsrechte für den Besitzer haben. Das muss ich dann immer per Hand über den FTP-Client ändern, damit das Script läuft, logisch irgendwie.
Shellscripts (*.sh) sind nicht "standardmäßig" CGI-Scripts, obwohl sie natürlich die CGI-Schnittstelle nutzen können.
Andererseits brauchen Scripte im cgi-bin nicht immer Ausführungsrechte, weil sie sonst nicht laufen?
Ups? Wie meinst du das?
Ist diese Einstellung aus Sicherheitsgründen so?
FTP ist ein anderes Protokoll als HTTP. Von "Sicherheitsgründen" weiß ich in dem von dir skizzierten Zusammenhang nichts.
Und falls nicht, wie ließe sich das ändern? In der Konfiguration des FTP-Servers?
Eventuell. Hängt vom Server ab. Andrerseits: auf welche Weise soll denn dein Script arbeiten, was soll es tun? Wenn es über den Webserver (Apache) angesprochen werden soll, müßte ein entsprechender Eintrag
AddHandler cgi-script .sh
in die httpd.conf geschrieben werden.
Grüße aus Berlin
Christoph S.
Hellihello Christoph (;-),
Dank für die Antwort.
Shellscripts (*.sh) sind nicht "standardmäßig" CGI-Scripts, obwohl sie natürlich die CGI-Schnittstelle nutzen können.
Aha, ich hatte jetzt dem Besitzer auch Ausführungsrechte verpasst und dann per http angesprochen. Das funktioniert. Sowohl die Ausgabe/Rückgabe an den Browser/includierendes php script wie auch die Ausführung auf dem Server (umkopieren von Ordnern).
Andererseits brauchen Scripte im cgi-bin nicht immer Ausführungsrechte, weil sie sonst nicht laufen?
Ups? Wie meinst du das?
Mh, ich dachte jetzt ein ausfürhbares Skript braucht -rwx..., also "ausführbar" für den Besitzer. Oder lieg ich da falsch?
FTP ist ein anderes Protokoll als HTTP. Von "Sicherheitsgründen" weiß ich in dem von dir skizzierten Zusammenhang nichts.
Ich weiss von debian/vsftp, dass der Server glaub ich standardmäßig 0022 umasked, oder wie man das nennen will, also keine Ausführungsrechte für den Besitzer erstmal. Und dort kann man dem Server irgendwo mitteilen, diesen Standard zu ändern, wenn man das möchte oder braucht.
Eventuell. Hängt vom Server ab. Andrerseits: auf welche Weise soll denn dein Script arbeiten, was soll es tun? Wenn es über den Webserver (Apache) angesprochen werden soll, müßte ein entsprechender Eintrag
AddHandler cgi-script .sh
in die httpd.conf geschrieben werden.
Aha, es geht zwar scheinbar auch ohne, aber vielleicht macht es ja Sinn, das trotzdem in der http.conf unterzubringen. Bzw. erspart sich dann das chmod. Werds wohl erst morgen testen können.
Dank und Gruß auch aus Berlin,
frankx
Hallo frankx.
Ich weiss von debian/vsftp, dass der Server glaub ich standardmäßig 0022 umasked, oder wie man das nennen will, also keine Ausführungsrechte für den Besitzer erstmal.
Eine Umask von 0022 bedeuted aber keine Schreibrechte für alle außer dem Besitzer:
0777
Einen schönen Montag noch.
Gruß, Mathias
Hellihello Mathias,
0777
- 0022
= 0755Einen schönen Montag noch.
Ja, komisch, das Verzeichnis cgi-bin hat aber umask 0022 und wenn ich da was hochspiele, haben die Dateien erstmal 644 bzw. rw-r--r--.
Mmh. Heut komm ich da vermutlich nicht mehr drauf.
Dank und Gruß,
frankx
Hallo frankx.
0777
- 0022
= 0755Einen schönen Montag noch.
Ja, komisch, das Verzeichnis cgi-bin hat aber umask 0022 und wenn ich da was hochspiele, haben die Dateien erstmal 644 bzw. rw-r--r--.
Was für normale Dateien ja auch völlig normal ist.
Einen schönen Montag noch.
Gruß, Mathias
Hellihello Mathias und Christoph,
Ja, komisch, das Verzeichnis cgi-bin hat aber umask 0022 und wenn ich da was hochspiele, haben die Dateien erstmal 644 bzw. rw-r--r--.
Was für normale Dateien ja auch völlig normal ist.
Ja. Was ich nicht ganz nachvollziehen kann: warum ist gibt # umask 0022
und wenn ich aber eine Datei mit # touch
erstelle oder via FTP hochlade, hat sie 0655 (also -rw-r--r--). Deiner Rechnung zufolge müsste es doch 0755 sein.
Komisch ist auch, dass ich eine neue Datei via FileZilla-FTP nich einfach hochladen kann mit der Option "überschreib mal". Es bleibt einfach die alte stehen, der ich Rechte 0755 verpasst habe. Die muss ich löschen, damit ich die neue hochladen kann.
Den Eintrag bezüglich AddHandler in den httpd.conf hab ich glaube ich durch Shebang-Angabe von #!/bin/bash
umgangen.
Dank und Gruß,
frankx
hallo,
Was ich nicht ganz nachvollziehen kann: warum ist gibt
# umask 0022
und wenn ich aber eine Datei mit# touch
erstelle oder via FTP hochlade, hat sie 0655 (also -rw-r--r--).
Welche Rechte für ein Verzeichnis gelten, ist für eine darin abgelegte Einzeldatei ohne Bedeutung. Wenn du zum Beispiel ein Verzeichnis, in dem du ausdrücklich ausführbare Dateien ablegen möchtest, eben gleich mit Ausführungsrechten versiehst, kannst du trotzdem eine README hineinlegen, die nur Text enthält und überhaupt nichts ausführen könnte. Und die kannst du auch mit anderen Rechten versehen.
Komisch ist auch, dass ich eine neue Datei via FileZilla-FTP nich einfach hochladen kann mit der Option "überschreib mal". Es bleibt einfach die alte stehen, der ich Rechte 0755 verpasst habe.
Dann sind das unterschiedliche Benutzer, und der eine kann natürlich nix löschen, was dem anderen gehört.
Den Eintrag bezüglich AddHandler in den httpd.conf hab ich glaube ich durch Shebang-Angabe von
#!/bin/bash
umgangen.
Nein. Zwar ist die shebang wichtig, ersetzt aber kein AddHandler. Wenn der Apache keinen "Handler" kennt, müßte er dir eigentlich den Quelltext ausliefern.
Grüße aus Berlin
Christoph S.
Hellihello Christoph,
dank für Deine Antwort.
hallo,
Was ich nicht ganz nachvollziehen kann: warum ist gibt
# umask 0022
und wenn ich aber eine Datei mit# touch
erstelle oder via FTP hochlade, hat sie 0655 (also -rw-r--r--).Welche Rechte für ein Verzeichnis gelten, ist für eine darin abgelegte Einzeldatei ohne Bedeutung. Wenn du zum Beispiel ein Verzeichnis, in dem du ausdrücklich ausführbare Dateien ablegen möchtest, eben gleich mit Ausführungsrechten versiehst, kannst du trotzdem eine README hineinlegen, die nur Text enthält und überhaupt nichts ausführen könnte. Und die kannst du auch mit anderen Rechten versehen.
Aber was bedeutet das umask dann? Wenn ich im Ordner "cgi-bin" umask aufrufe, kommt eben als Antwort 0022. Ich hätte jetzt gedacht, es würde bedeuten, dass neue Dateien mit dieser Voreinstellung erstellt würden.
Komisch ist auch, dass ich eine neue Datei via FileZilla-FTP nich einfach hochladen kann mit der Option "überschreib mal". Es bleibt einfach die alte stehen, der ich Rechte 0755 verpasst habe.
Dann sind das unterschiedliche Benutzer, und der eine kann natürlich nix löschen, was dem anderen gehört.
Oh doch, ich kann die Datei löschen (FileZilla, draufklicken, löschen, Nachfrage kommt, weg ist sie). Aber die Funktion "überschreiben" funktioniert komischerweise nicht.
Den Eintrag bezüglich AddHandler in den httpd.conf hab ich glaube ich durch Shebang-Angabe von
#!/bin/bash
umgangen.Nein. Zwar ist die shebang wichtig, ersetzt aber kein AddHandler. Wenn der Apache keinen "Handler" kennt, müßte er dir eigentlich den Quelltext ausliefern.
Den AddHandler find ich nicht, jedenfalls nicht in der /etc/apache2/httpd.conf und bei den vhosts/exampl.org/conf/httpd.include auch nicht. Und wie ich ein find / -name *conf als Pipe an grep AddHandler weitergeben, find ich auch nicht (;-). Der mc scheint da was zu können. Mal schaun.
Dank und Gruß,
frankx