[php] Probleem met mkdir en rechten

Pagina: 1
Acties:

  • smaij
  • Registratie: November 2000
  • Laatst online: 09:50
Ik ben bezig met het maken van onderstaand script, voor mezelf en voor anderen. Ik maak elke keer een directory aan daarvoor, zodat het een beetje overzichtelijk is. Deze wil 1 keer in de zoveel tijd natuurlijk ook kunnen verwijderen handmatig via ftp. Dit lukt echter niet!. De rechten zijn gelocked ofzo, en ik zie ook dat met MKDIR de directory maar 755 rechten meekrijgen. Ik kan deze rechten ook niet aanpassen via ftp (ook al log ik in met admin)

Ik beveilig alles met htacces, deze heeft lijkt mij geen effect via ftp :?

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<?php
//max_execution_time instellen
$BACKUPADRES = "/home/sites/www.site1010.nl/web/backups/"; //waar het scripts draaid

$x = 0;
$SITE_BACKUP[$x] = "*******"; //naam van de site
$SITE_LOGINUSER[$x] = "*******"; //username voor mysql
$SITE_LOGINPASS[$x] = "*******"; //password voor mysql
$SITE_DATNAME[$x] = "*******"; //databasenaam
$SITE_DIRNAME[$x] = "/home/sites/www.site1.nl"; //directorie waar de site staat (zonder /web)
$x++;

$SITE_BACKUP[$x] = "*******";
$SITE_LOGINUSER[$x] = "*******";
$SITE_LOGINPASS[$x] = "*******";
$SITE_DATNAME[$x] = "*******";
$SITE_DIRNAME[$x] = "*******";
$x++;

$x = 0;

$DYNDIR = date('d-m-Y') . time();
$DIR2BACKUP = $BACKUPADRES . $DYNDIR;
mkdir ("$DIR2BACKUP", 0777);

while ($x <= count($SITE_BACKUP)){
 if ($SITE_BACKUP[$x] != ""){
    if ($SITE_LOGINUSER[$x] != "" AND $SITE_LOGINPASS[$x] != "" AND $SITE_DATNAME[$x] != ""){
        $username = $SITE_LOGINUSER[$x];
        $password = $SITE_LOGINPASS[$x];
        $nama_db = $SITE_DATNAME[$x];
        $nama = $SITE_BACKUP[$x];
        $succes = @passthru("mysqldump -u\"$username\" -p\"$password\" --opt $nama_db > $DIR2BACKUP/$nama.sql"); 
        passthru("gzip $DIR2BACKUP/$nama.sql");
        if (!$succes){
            echo "Database-Backup voor $SITE_BACKUP[$x] succesvol gemaakt <br />";
        }
    }
    
    if ($SITE_DIRNAME[$x] != ""){
        $succes = @passthru("tar -czf $DIR2BACKUP/$SITE_BACKUP[$x].tar.gz $SITE_DIRNAME[$x]/web --exclude $SITE_DIRNAME[$x]/stats $SITE_DIRNAME[$x]/backups");
        if (!$succes){
            echo "Website-Backup voor $SITE_BACKUP[$x] succesvol gemaakt <br />";
        }
    }
    echo "<br />";  
 }
    $x++;
}
?>

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Ik neem aan dat je het over een linux / unix machine hebt?

De webserver draait onder user nobody of apache maar in elk geval niet onder jouw username, deze user is owner van de door jouw php aangemaakte files en directories. En zoals je aangeeft zijn deze niet writable voor andere users (chmod 755). Duidelijk dat je die niet zomaar kunt deleten, je hebt ze immers niet zelf aangemaakt, bent er niet de owner van.

Echter kan de webserver dat wel, dus zul je dat deleten nou ook via php + je webserver moeten doen. Unlink en system() of exec() zijn je vrienden.

Lees ook ff wat over chmod, deze link is zo te zien wel aardig.

[ Voor 0% gewijzigd door sebas op 03-11-2002 16:14 . Reden: cosmetical changes ]

Everyone complains of his memory, no one of his judgement.


  • smaij
  • Registratie: November 2000
  • Laatst online: 09:50
Thx.. inmiddels heb ik na de MKDIR() CHMOD().. maar v@@g dus dat het niet meteen goed werk.. nu moet ik alleen nog effe de dirs verwijderen die ik niet kon verwijderen via ftp.. dus effe snel een php scrippie voor schrijven..

edit:


weet iemand hoe die --exclude werkend krijg.. die pakt ie namelijk nog niet :(