Mit welchem Useraccount schreibt Perl Dateien unter IIS
Matthias Kunz
- perl
Ich uploade Dateien via Perl und CGI.pm über den MS Internet Explorer 5.x auf meinen Intranetserver IIS 4 und IIS 5.
Der Upload funktioniert nur, wenn ich jedem Schreibrechte gebe. Ich möchte gerne wissen unter welchem Useraccount Perl die Dateien schreibt.
Am liebsten würde ich unter dem Account des über NT autentifizierten Users schreiben, der die Datei uploaded.
Sup!
<img src="/images/03.gif" alt="">
Ehm... wie uploadest Du? Mit FTP? Oder wie oder was?
Von wo nach wo? Warum uploadest Du auf Deinen eigenen Server - warum kopierst Du nicht mit SCP oder per NFS, wenn es Dein Server ist?
Fragen über Fragen... hab' ich eine Kristallkugel oder so? *fg*
Gruesse,
<img src="http://outpost.purespace.de/webdesign.jpg" alt="">
Bio
Sup!
<img src="/images/03.gif" alt="">
Ehm... wie uploadest Du? Mit FTP? Oder wie oder was?
Von wo nach wo? Warum uploadest Du auf Deinen eigenen Server - warum kopierst Du nicht mit SCP oder per NFS, wenn es Dein Server ist?
Fragen über Fragen... hab' ich eine Kristallkugel oder so? *fg*
Gruesse,
<img src="http://outpost.purespace.de/webdesign.jpg" alt="">
Bio
Danke, dass Du Dich mit meiner Frage beschäftigst!
Ich möchte im Intranet eine Funktion zur Verfügung stellen, mit der bestimmte User Dateien uploaden können - Officedokumente, Bilder, *.exe etc. Die Dateien werden vom Internet Explorer 5.x mit einem Formular an den IIS 4.0 bzw. 5.0 geschickt und dort mittels Perl in eine Datei gechrieben. Hier das Perl Script:
#!/usr/bin/perl
use CGI;
#-------------------------------------------------------
#-------------------------------------------------------
$kopf = new CGI;
print $kopf->header,
$kopf->start_html('Dateiupload'),
$kopf->h1('Dateiinformation'),
$kopf->end_html;
#-------------------------------------------------------
#-------------------------------------------------------
$query = new CGI;
$quelldatei = $query->upload('Quelldatei');
$zielpfad = $query->param('Zielpfad');
print "Quelldatei: ".$quelldatei."<BR>";
print "Zielpfad: ".$zielpfad."<BR>";
#-------------------------------------------------------
#-------------------------------------------------------
$_ = $quelldatei;
s/\w://;
s/([^/\]+)$//;
$_ = $1;
s/..+//g;
s/\s+//g;
$dateiname = $_;
print "Dateiname: ".$dateiname."<BR>";
#-------------------------------------------------------
#-------------------------------------------------------
open(OUT,">".$zielpfad.$dateiname);
while (<$quelldatei>)
{
binmode(OUT); #bei Win32 nötig, damit Dateien 1:1
print OUT;
}
close(OUT);
Hi Matthias,
wir hatten neulich ein ähnliches Problem im Geschäft mit der Erzeugung eines PDF-Dokumentes. Beim Test hat alles geklappt, nur nachher nicht wenn's ins System eingebaut war. Das lag daran, dass der Prozess von einer ISAPI-DLL angestossen wurde, und der IIS läuft als Service. Also unter dem System-Account. Als der System-Account die Rechte bekam, auf den Druckertreiber zu zugreifen, lief alles. Vielleicht liegt es bei dir auch den den Rechten dieses Accounts.
Gruß,
Martin
hallo Matthias, << Eine Begrüßung ist doch recht nett, oder ?
[...] Ich möchte gerne wissen unter welchem Useraccount Perl die Dateien schreibt.
Das hängt davon ab, weleche Verzeichnis- bzw. Dateisicherheit Du eingestellt hast.
(Eigenschaften,entsprechenden Eintrag zu Sicherheit suchen, 'Steuerung des anony. Zugriff...' bearbeiten)
Das wird über die Eigenschaften der Site, des Ordners oder der Datei eingestellt.
Da mußt Du nachsehen, was genau eingestellt ist, normalerweise ein Standard-User für anonyme Zugriffe ('IUSR_SERVERNAME').
Am liebsten würde ich unter dem Account des über NT autentifizierten Users schreiben, der die Datei uploaded.
Wenn Du nur den IE verwendest, dann kannst Du das am besten erledigen, indem Du die Option 'Windows Herausforderung...' benutzt.
Mit Netscape kannst Du dann allerding baden gehen, soweit ich es gesehen bzw. gelesen habe.
Wie das alles genau funktioniert, findes Du in der Dokumentation (Online Hilfe) des Option Packs.
Microsoft IIS ->Serververwaltung -> Sicherheit. (Eigentlich doch recht logisch zu finden, oder??)
Und mit Perl hat das auch gar nichts zu tun.
Grüße
Klaus
(Auch eine Verabschiedung ist nett ;-))
Hallo Klaus, <<<<<<<<<<<<<<<<<<<<<<<<<
Du hast mir sehr geholfen. Nach vielem Probieren habe ich das Verzeichnis in dem die Perl-Dateien liegen, das Verzeichnis in das ich schreibe und das Verzeichnis in dem die aufrufende html-Seite liegt für den anonymen Zugriff gesperrt: dann hat alles geklappt, aber nur wenn die Rechte für alle drei ohne anonymen Zugriff sind!
Danke und tschüß
Matthias
PS: In der FIma schreiben wir uns untereinander immer ohne Begrüßung und Verabschiedung - gewöhnt man sich scheinbar irgendwie an - sorry.
hallo Matthias, << Eine Begrüßung ist doch recht nett, oder ?
[...] Ich möchte gerne wissen unter welchem Useraccount Perl die Dateien schreibt.
Das hängt davon ab, weleche Verzeichnis- bzw. Dateisicherheit Du eingestellt hast.
(Eigenschaften,entsprechenden Eintrag zu Sicherheit suchen, 'Steuerung des anony. Zugriff...' bearbeiten)
Das wird über die Eigenschaften der Site, des Ordners oder der Datei eingestellt.
Da mußt Du nachsehen, was genau eingestellt ist, normalerweise ein Standard-User für anonyme Zugriffe ('IUSR_SERVERNAME').Am liebsten würde ich unter dem Account des über NT autentifizierten Users schreiben, der die Datei uploaded.
Wenn Du nur den IE verwendest, dann kannst Du das am besten erledigen, indem Du die Option 'Windows Herausforderung...' benutzt.
Mit Netscape kannst Du dann allerding baden gehen, soweit ich es gesehen bzw. gelesen habe.Wie das alles genau funktioniert, findes Du in der Dokumentation (Online Hilfe) des Option Packs.
Microsoft IIS ->Serververwaltung -> Sicherheit. (Eigentlich doch recht logisch zu finden, oder??)Und mit Perl hat das auch gar nichts zu tun.
Grüße
Klaus
(Auch eine Verabschiedung ist nett ;-))
»»
Hi Matthias,
lies dir bitte mal http://www.teamone.de/selfaktuell/forum/forumsfaq_2.htm#a1 NAQ 4 durch.
Gruß,
Martin