Dirk: Datei in chmod 755 schreiben

Hallo liebes Forum,

ich versuche gerade durch eine Perlscript eine Datei in ein Verzeichnis schreiben zu lassen.
Funktioniert auch! Diese Datei muß aber in chmod 755 abgelegt werden. das funktioniert nicht!
Kann mir jemand helfen?
Hier muß die "index.cgi" in chmod 755 abgelegt werden:

mkdir ("$config{'root\_dir'}/$in{'username'}", 0755);  

unless (-f "$config{'root_dir'}/$in{'username'}/index.cgi") {
   open (INDEX_CGI,">$config{'root_dir'}/$in{'username'}/index.cgi");
   open (DEFAULT_HTML,"$config{'data_dir'}/default_html.txt");
   while (<DEFAULT_HTML>) { print INDEX_CGI $_; }
   close (DEFAULT_HTML);
   close (INDEX_CGI);

Viele liebe grüße

Dirk

  1. Hallo liebes Forum,

    ich versuche gerade durch eine Perlscript eine Datei in ein Verzeichnis schreiben zu lassen.
    Funktioniert auch! Diese Datei muß aber in chmod 755 abgelegt werden. das funktioniert nicht!
    Kann mir jemand helfen?
    Hier muß die "index.cgi" in chmod 755 abgelegt werden:

    »»  mkdir ("$config{'root_dir'}/$in{'username'}", 0755);

    unless (-f "$config{'root_dir'}/$in{'username'}/index.cgi") {
       open (INDEX_CGI,">$config{'root_dir'}/$in{'username'}/index.cgi");
       open (DEFAULT_HTML,"$config{'data_dir'}/default_html.txt");
       while (<DEFAULT_HTML>) { print INDEX_CGI $_; }
       close (DEFAULT_HTML);
       close (INDEX_CGI);

    da gibts ein unix-befehl mit dem man die standardrechte einstellen kann, die ein neues file automatisch bekommt. frag am besten deinen provider.

  2. »»  mkdir ("$config{'root_dir'}/$in{'username'}", 0755);

    mkdir ("$config{'root_dir'}/$in{'username'}", 0755 or die "mkdir: $!";

    unless (-f "$config{'root_dir'}/$in{'username'}/index.cgi") {
       open (INDEX_CGI,">$config{'root_dir'}/$in{'username'}/index.cgi");

    open INDEX_CGI, ">$config{'root_dir'}/$in{'username'}/index.cgi")
                 or die "can't open: $!";

    open (DEFAULT_HTML,"$config{'data_dir'}/default_html.txt");

    open DEFAULT_HTML,"$config{'data_dir'}/default_html.txt")
                 or die "can't open: $!";

    while (<DEFAULT_HTML>) { print INDEX_CGI $_; }
      
      print INDEX_CGI for (<DEFAULT_HTML>);

    close (DEFAULT_HTML);
       close (INDEX_CGI);

    }

    Du solltest *immer* die Rückgabewerte prüfen, wenn Du eine Datei öffnest. Aber zu deinem eigentlichen Problem: Entweder Du gibst deiner Datei mit dem Perl-Befehl chmod (perldoc -f chmod) die richtigen Berechtigungen oder Du benutzt sysopen (perldoc -f sysopen und perldoc perlopentut).

    Peter