Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   dvd via php (u)mounten (https://www.delphipraxis.net/74517-dvd-via-php-u-mounten.html)

glkgereon 4. Aug 2006 12:44


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:
 
  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);
  }
status() erkennt immer korrekt, ob das Laufwerk gemounted ist, oder nicht.
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...?

Chewie 4. Aug 2006 13:03

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?

glkgereon 4. Aug 2006 13:04

Re: dvd via php (u)mounten
 
das ist root :-/

(safe_mode is aus in diesem ordner)

Chewie 4. Aug 2006 14:23

Re: dvd via php (u)mounten
 
Hm, ok, dann scheidet das wohl aus :?

Sonst hab ich auch keine Idee.

franktron 4. Aug 2006 15:05

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.

yankee 4. Aug 2006 17:43

Re: dvd via php (u)mounten
 
Zitat:

Zitat von franktron
Erstmal die Pfade für mount und umount müssen angegeben werden

Naja, mount ohne Paramter funktioniert ja auch...

Zitat:

Zitat von franktron
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.

mhh... das könnte ein Argument sein. Der Apache läuft als nobody :-).
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*.

franktron 4. Aug 2006 19:22

Re: dvd via php (u)mounten
 
Ich meinte das mit dem Pfad so

Delphi-Quellcode:
  $res = shell_exec('/bin/mount /dev/hdd');
Und nein Apache läuft fast immer unter wwwrun oder nobody nur der Mastprozess laüft auf root

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

glkgereon 4. Aug 2006 20:03

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');
?>

franktron 4. Aug 2006 21:31

Re: dvd via php (u)mounten
 
Vieleicht hilft der Befehl sudo (in Linux)

DGL-luke 4. Aug 2006 21:51

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 22:21 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz