Ich bin gerade dabei, ein Admin-Tool zu bauen, welches mir ersparen soll, mich auf meinem Server über ssh einzuloggen, um folgende Befehle auszuführen:
- cd
- ls [-all]
- rm
- chmod
Die ersten drei, also Verzeichnisse durchforsten und Infos anzeigen und Dateien löschen funktioniert auch wunderbar!
Nur beim Ändern der Benutzerrechte klappt es nicht:
"Warning: chmod(): Operation not permitted in ..."
Die Benutzerrechte werden aber korrekt angezeigt und sollten mir eigentlich auch das
Ändern der Benutzerrechte erlauben.
Egal, ob z.B. 'rwxrwxr--' mit Gruppe 'www' oder sogar 'rwxrwxrwx'.
Schließlich kann ich die Datei auch löschen.
Hier ein Code-Ausschnitt:
Ist was im Code falsch (glaub ich eigentlich nicht) oder brauch ich andere Rechte, um chmod() zu verwenden?
Ich hab was von 'Superuser' gelesen. Liegt es etwa daran, daß 'www' kein chmod() durchführen darf, aber z.B. der Eigentümer? Wie kann ich mich denn als 'Superuser' anmelden?
- cd
- ls [-all]
- rm
- chmod
Die ersten drei, also Verzeichnisse durchforsten und Infos anzeigen und Dateien löschen funktioniert auch wunderbar!
Nur beim Ändern der Benutzerrechte klappt es nicht:
"Warning: chmod(): Operation not permitted in ..."
Die Benutzerrechte werden aber korrekt angezeigt und sollten mir eigentlich auch das
Ändern der Benutzerrechte erlauben.
Egal, ob z.B. 'rwxrwxr--' mit Gruppe 'www' oder sogar 'rwxrwxrwx'.
Schließlich kann ich die Datei auch löschen.
Hier ein Code-Ausschnitt:
PHP-Code:
// Button 'Benutzerrechte ändern' gedrückt
if ($_REQUEST['chmod']){
$file = $_REQUEST['chmodfile']; // zu ändernde Datei
$pfad = $_REQUEST['pfad']; // Pfad zur Datei
$ow = 0; // Eigentümer-Rechte
$gr = 0; // Gruppen-Rechte
$ot = 0; // andere
// Abfragen der Checkboxes und entsprechendes Setzen der Rechte
if ($_REQUEST['owner_r']) $ow = $ow+4;
if ($_REQUEST['owner_w']) $ow = $ow+2;
if ($_REQUEST['owner_x']) $ow = $ow+1;
if ($_REQUEST['group_r']) $gr = $gr+4;
if ($_REQUEST['group_w']) $gr = $gr+2;
if ($_REQUEST['group_x']) $gr = $gr+1;
if ($_REQUEST['others_r']) $ot = $ot+4;
if ($_REQUEST['others_w']) $ot = $ot+2;
if ($_REQUEST['others_x']) $ot = $ot+1;
$mod = '0'.$ow.$gr.$ot; // Zusammensetzen des Strings mit führender '0'
$ch = @chmod($pfad."/".$file,$mod); // ändern
if(!$ch) echo "keine ausreichenden Rechte!"; // hat nicht geklappt
else echo "neue Benutzerrechte von '$file': $mod"; // hat geklappt
}
Ich hab was von 'Superuser' gelesen. Liegt es etwa daran, daß 'www' kein chmod() durchführen darf, aber z.B. der Eigentümer? Wie kann ich mich denn als 'Superuser' anmelden?
Kommentar