jayarr
Goto Top

Ubuntu Linux im gemountetem Netzlaufwerk per PHP-Script ein neues Verzeichnis anlegen

Hallo alle zusammen, ich hoffe ihr könnt mir bei dem unten genannten Problem weiterhelfen.

Ich habe einen Server mit Ubuntu 12.10.
Bei diesem Server habe ich eine Freigabe meines NAS als Netzlaufwerk, über fstab mit einer credentials Datei die User und PW beinhaltet, verbunden. Ich kann ohne Probleme auf dem Netzlaufwerk zugreifen, mit mkdir Verzeichnisse erstellen, bearbeiten usw.


Nun möchte ich per PHP-Script neue Verzeichnisse erstellen lassen und bekomme die Fehlermeldung:

"Warning: mkdir(): Permission denied in /*/testwrite.php on line 2".

In der Testwrite.php steht folgendes:

<?
mkdir('/
*/test');
?>

Ich vermute, dass das Script das Netzlaufwerk über eine Art anonymous User anspricht und deshalb über keine Schreibrechte verfügt.

Wie kann ich also dem Script beibringen, dass es, z.B. unter Zuhilfenahme einer Datei welche die entsprechenden Userdaten beinhaltet, die notwendigen Rechte erhält?

Oder könnt ihr mir einen anderen Weg vorschlagen, mit dem ich dies bewerkstelligen kann?

Ich möchte allerdings im NAS keine unsichere Verbindung einbauen, die am Ende beide Systeme angreifbar machen.


Danke für eure zahl- und hilfreichen Antworten.
Jayarr

Content-ID: 196764

Url: https://administrator.de/contentid/196764

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

Hitman4021
Hitman4021 10.01.2013 um 15:15:19 Uhr
Goto Top
Hallo,

wie wird das Script ausgeführt?
Wenn es ein WEbserver ist muss der Webserver auch Schreibrechte im Verzeichnis haben.


Gruß
Jayarr
Jayarr 10.01.2013 um 15:19:16 Uhr
Goto Top
Hi,

ja es ist ein Webserver, und wenn ich ein lokales Verzeichnis erstelle/auswähle (ansonsten gleicher Pfad), dann funktioniert das Script auch problemlos.
Hitman4021
Hitman4021 10.01.2013 um 15:30:54 Uhr
Goto Top
Hallo,

mit welchen Rechten mountest du das Verzeichnis?

Melde dich mal als WEbserver an und versuche es auf der Shell.

Gru´ß
Jayarr
Jayarr 10.01.2013 um 15:54:34 Uhr
Goto Top
Hi,

die Frage hat mir schon etwas weitergeholfen.
Ich mounte das Verzeichnis als root, habe als auch als user keine schreibrechte darauf. Ich bin mir jetzt nur noch nicht ganz sicher wie ich das so einrichte, dass ich als user und auch als webserver dort schreiben darf.

Ich habe keine Ahnung wie man sich als Webserbver in der Shell anmelden kann und habe auch bei google jetzt nichts gefunden.


Gruß
Jayarr
Hitman4021
Hitman4021 10.01.2013 um 15:57:47 Uhr
Goto Top
Hallo,

Du kannst das Verzeichnis mit Userrechten Mounten. Dies legst du in der fstab fest.

Als Webserver meldest du dich mit
#$WEBSERVER_USER ist mit dem Benutzer deines Webservers zu tauschen. Also warscheinlich Apache
su $WEBSERVER_USER

Gruß
Jayarr
Jayarr 10.01.2013 um 16:26:06 Uhr
Goto Top
Hallo,

wie vielleicht schon gemerkt bin ich Linux neuling, deshalb entschuldige bitte die viele Fragerei.

in meiner fstab steht
//Server/FREIBAGE /MEIN-ORT cifs credentials=/PFAD 0 0

wenn ich das richtig verstanden habe muß ich jetzt noch "rw" und "user" hinzufügen um zum gewünschten Ergebnis zu kommen, allerdings wohin trage ich das ein?
Hinter cifs also: * cifs,rw,user *?


Leider gibt es bei mir keinen user apache oder apache2, kann ich einen solchen webserver-user einfach anlegen?


Gruß
Jayarr
Hitman4021
Hitman4021 10.01.2013 um 17:38:39 Uhr
Goto Top
Hallo,

ich weiß nicht wie der User unter Ubuntu heißt.
Das siehst du entweder unter:
/etc/apache2/envars
oder:
/etc/apache2/httpd.conf
(ich hoffe zumindest die Datein heißen unter Ubuntu gleich)

Der Eintrag in deiner fstab muss so aussehen:
/Server/FREIBAGE /MEIN-ORT cifs credentials=/PFAD,uid=$UID-APACHE-USER,gid=$APACHE-GID,file_mode=0644,dir_mode=0755 0 0

Gruß
nxclass
nxclass 11.01.2013 um 09:32:31 Uhr
Goto Top
ich weiß nicht wie der User unter Ubuntu heißt
.. normalerweise ist das der Benutzer / Gruppe: www-data

uU. macht es auch Sinn einen neuen (system) Benutzer anzulegen, welcher der Gruppe www-data zugeordnet ist - und diesen für das mount zu nutzen.
Hitman4021
Hitman4021 11.01.2013 um 09:39:45 Uhr
Goto Top
[OT]
Hallo,

Zitat von @nxclass:
.. normalerweise ist das der Benutzer / Gruppe: www-data
Mir ist echt alles durch den Kopf gegangen von httpd bis apache2 aber auf www-data wäre mir nicht eingefallen.
Kaum 4 Monate nach dem Umstieg von Debian auf CentOS und schon vergessen -> so schnell kanns gehen.

Gruß
Jayarr
Jayarr 16.01.2013 um 13:38:55 Uhr
Goto Top
Hallo,

vielen Dank für eure Hilfe hat soweit super geklappt.


Viele Grüße
Jayarr