![]() |
dvd via php (u)mounten
Hi @ll,
ich habe mir ein kleines php-script geschrieben um an meinem Server das dvd-Laufwerk zu mounten:
Code:
status() erkennt immer korrekt, ob das Laufwerk gemounted ist, oder nicht.function status() { $res = shell_exec('mount'); return strpos($res,'/dev/hdd'); } if ($action=='mount') { if (status()) return; $res = shell_exec('mount /dev/hdd'); if ($res=='') $res = 'CD eingehängt'; print($res); } elseif ($action=='umount') { if (!status()) return; $res = shell_exec('umount /dev/hdd; eject'); if ($res=='') $res = 'CD ausgehängt'; print($res); } Auch ein print(shell_exec('mount')); gibt mir korrekt die Liste aller gemounten Laufwerke. Das Laufwerk wird allerdings ohne jegliche Fehlermeldung nicht gemounted (wenn ich den Befehl manuell auf dem Server eingebe funktioniert es aber). Beim umounten geht sogar das Laufwerk auf, ohne, dass es dabei geumounted wird. Hat jemand eine Idee, was ich falsch mache...? |
Re: dvd via php (u)mounten
Vielleicht hat der Benutzer, der das Script ausführt (wohl der User, der Apache startet) nicht das Recht, Laufwerke zu mounten?
|
Re: dvd via php (u)mounten
das ist root :-/
(safe_mode is aus in diesem ordner) |
Re: dvd via php (u)mounten
Hm, ok, dann scheidet das wohl aus :?
Sonst hab ich auch keine Idee. |
Re: dvd via php (u)mounten
Erstmal die Pfade für mount und umount müssen angegeben werden
2. Wie rufst du das script auf uber Apache (Browser) oder über die Console wenn du das mit Apache machts vergiss es es geht nicht weil wwwrun keine rechte auf das System hat. |
Re: dvd via php (u)mounten
Zitat:
Zitat:
Aber immerhin habe ich das Recht das cdlaufwerk zu öffnen und ich hätte eigentlic erwartet, dann es auch mounten zu dürfen... Kann ich den Eintrag in der fstab denn irgendwie ändern, so dass auch nobody das Laufwerk mounten kann, oder gibt es eine Möglichkeit nur diesem script höhere Rechte zu geben...? EDIT: Ne... irgendwie läuft der Apache doch teilweise als root *duck* *verwirrt*. |
Re: dvd via php (u)mounten
Ich meinte das mit dem Pfad so
Delphi-Quellcode:
Und nein Apache läuft fast immer unter wwwrun oder nobody nur der Mastprozess laüft auf root
$res = shell_exec('/bin/mount /dev/hdd');
Und mit den Scripten höhere Userrechtezuzuweisen könnte gehen man kann im Bootscript von Apache das ändern was dann aber alles von Apche als root oder was acuh immer ausführt |
Re: dvd via php (u)mounten
nein, den apache auf root zu setzen ist leider eigentlich keine option...(es wäre die absolute not-lösung...)
wäre es möglich eine kopie des apaches anzulegen, welcher als root läuft? dieser wird dann zwar normal nicht augeführt und nur benutzt um die befehle über ihn aufzurufen? zb so:
Code:
//index.php
<?php shell_exec('/usr/bin/php2 /web/mount.php'); ?> |
Re: dvd via php (u)mounten
Vieleicht hilft der Befehl sudo (in Linux)
|
Re: dvd via php (u)mounten
ja, genau :mrgreen: (exec("sudo umount /dev/hda"))
aber es muss doch gehen, dem benutzer wwwrun das recht zu geben, laufwerke zu (u)mounten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz