ubuntuusers.de

Probleme mit Dateirechten

Status: Ungelöst | Ubuntu-Version: Ubuntu 6.10 (Edgy Eft)
Antworten |

tahrqa

Anmeldungsdatum:
19. Dezember 2006

Beiträge: 22

Hallo,

ich habe bei meiner Ubuntu Installation öfters das Problem, das ich keine Schreibrechte für Dateien und Verzeichnisse besitze.

Das ganze kommt folgendermaßen zustande:

Ich habe eine PC mit Ubuntu (Version 6.1) und eine PC mit Windows XP beide sind über Netzwerk (Router) verbunden. Den Ubuntu Rechner nutze ich als Webserver, um darauf Internetanwendungen zu entwickeln.
Wenn ich auf dem Webserver z.B. ein Joomla CMS kopiere, dann kann ich alle Dateien vom Windows-Rechner aus bearbeiten (Zugriff via Windows Netzlaufwerk). Wenn dieses Joomla System aber eine Komponente installiert, und dadurch neue PHP-Dateien auf den Webserver kopiert, dann kann ich diese Dateien nicht bearbeiten, nur lesen (wenn ich über das Netzlaufwerk darauf zugreife, über nautilus funktioniert es).

Die Dateien, die ich auf den Server kopiere (Netzlaufwerk) haben folgende Zugriffsrechte:
- Besitzer: Max Muster (Zugriff: Lesen & Schreiben)
- Gruppe: Meine Gruppe (Zugriff: Lesen & Schreiben)
- Andere: (Zugriff: Nur Lesen)

Die Dateien, die durch Joomla erstellt wurden haben folgende Zugriffsrechte:
- Besitzer: www-data (Zugriff: Lesen & Schreiben)
- Gruppe: www-data (Zugriff: Lesen & Schreiben)
- Andere: (Zugriff: Lesen & Schreiben)

Kann ich denn irgendwo einstellen, das auch Dateien die durch Joomla (also durch PHP) erstellt wurden die Rechte wie beim kopieren bekommen?
Oder gibt es sonst eine Lösung dafür?

harry123

Avatar von harry123

Anmeldungsdatum:
3. Mai 2006

Beiträge: 3188

Wohnort: Leipzig

Du könntest versuchen, deinen Benutzer noch in die www-data Gruppe reinzuheben!!

greez

tahrqa

(Themenstarter)

Anmeldungsdatum:
19. Dezember 2006

Beiträge: 22

hallo,

kannst du mir kurz erklären, wie ich das mache.

unter den Gruppeneinstellungen finde ich die Gruppe www-data nicht

hampa

Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

Hallo tahrqa

Das erledigst Du am besten auf der Konsole mit dem Befehl:

sudo adduser user www-data

Anstelle von user gibts Du den Benutzer an, der in diese Gruppe rein muss.

Gruss Hampa

PS: Habe ich Deine Frage richtig verstanden? Du möchtest den Dateien, die Joomla automatisch erstellt die Rechte hansmuster:meinegruppe zuweisen? Wenn ja, warum?

tahrqa

(Themenstarter)

Anmeldungsdatum:
19. Dezember 2006

Beiträge: 22

Hallo,

den Befehl "sudo adduser user www-data " habe ich ausgeführt. Daraufhin kam die Meldung das der Benutzer bereits in der Gruppe vorhanden ist.
Das hatte ich also schon mal gemacht.

PS: Habe ich Deine Frage richtig verstanden? Du möchtest den Dateien, die Joomla automatisch erstellt die Rechte hansmuster:meinegruppe zuweisen? Wenn ja, warum?

Ja, damit ich diese Dateien dann über das Netzlaufwerk meines Windowsrechners bearbeiten kann.

Das muss doch möglich sein!?

hampa

Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

Hallo tahrqa

Ich weiss nicht genau, wie andere das machen, aber ich bearbeite nie Dateien, direkt in den "produktiven" Verzeichnissen.

Hier im Büro habe ich ebenfalls einen Linux-Webserver und eine Windows Arbeitsstation. Auf dem Windows-Rechner habe ich Putty und WinSCP installiert. Wenn ich Änderungen mache, kopiere ich die zuerst mit WinSCP auf mein Home-Verzeichnis auf der Linux-Kiste und von dort innerhalb einer Putty-Session mittels sudo an den Bestimmungsort. Ist einfach ein bisschen aufwändiger aber es funktioniert.

Trotzdem würde es mich interessieren, wie "Profis" das machen (Wobei Profis natürlich einen Linux-Desktop besitzen. 😛 )

Vielen Dank für eure Anworten.

Gruss Hampa

tahrqa

(Themenstarter)

Anmeldungsdatum:
19. Dezember 2006

Beiträge: 22

Ich weiss nicht genau, wie andere das machen, aber ich bearbeite nie Dateien, direkt in den "produktiven" Verzeichnissen.

Ich verwende den Ubuntu-Rechner nicht für die live-Seiten. Auf diesem Rechner greife nur ich zu um die Projekte zu bearbeiten. Oder evtl mal ein Kunde, den ich die vorab-Version zeige.

Das läuft bei mir wie folgt ab:
ich ändere/erstelle ein PHP-Dokument über das Netzlaufwerk, und speichere es dann ab (auf dem Ubuntu Rechner).
Anschließend rufe ich das Dokument über meinen Browser auf und prüfe ob das Script das tut was ich wollte.
Ist alles OK, werden die Dateien zum Hostingserver per FTP übertragen.

Natürlich könnte ich das alles auch mit xammp (o.ä.) direkt auf meinen Windowsserver machen. Ich wollte das aber auf getrennten Systemen haben, damit auch weitere Mitarbeiter auf die Webprojekte zugreifen können.

Gebe es das Problem mit den Dateirechten nicht, dann wäre das auch vollkommen OK so.

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Ich bin zwar auch kein Profi aber generell sollte man sich erst mal überlegen was man sich im UNIX-Umfeld mit dem Benutzerkonzept überhaupt mal überlegt hat.

Es gibt Benutzer, Gruppen und Other. Beim Webserver ist es so, dass er unter der Identität von "www-data" läuft. Aufgrund der Umask legt nun dieser Benutzer seine Daten nach einer festen Struktur an.
Die Umask "022" bedeutet, dass die Rechthe für die Gruppe und Other gleich sind, nämlich "R-X". Hieraus folgt, dass das Hinzufügen des anderen Benutzers zur Gruppe nicht hilft, da ja sowieso kein Unterschied zwischen Gruppe und Other gemacht wird. 😉

Ich bin auch der Meinung dass man die Daten über einen Zwischenweg kopieren muss. Alternativ kann man natürlich auf einen Testsystem auch mal:

sudo chmod -R 777 /var/www


durchlaufen lassen. Dann funktioniert es auch mit dem Editieren. Ich editiere im übrigen textbasiert direkt als "www-data" oder "root" per Vim . Wieder ein Grund im Textmodus zu arbeiten. Werde nie verstehen warum so viele Leute immer grafisch editieren wollen.

Man kann auch per Webserver editieren: http://phpfm.sourceforge.net/ (eine index.php-Datei)
In diesem Fall ist man natürlich "www-data".

hampa

Avatar von hampa

Anmeldungsdatum:
4. Oktober 2005

Beiträge: 80

Wohnort: Graubünden, Schweiz

hoi uname

Ich editiere im übrigen textbasiert direkt als "www-data" oder "root" per Vim . Wieder ein Grund im Textmodus zu arbeiten. Werde nie verstehen warum so viele Leute immer grafisch editieren wollen.

Wie machst Du das genau? Loggst Du Dich via SSH auf dem Server ein und bearbeitest die Datei mit dem vim der auf dem Server läuft, oder wie muss ich mir das vorstellen?

Betreffend www-data. Änderst Du mit root das Passwort von www-data. Ich persönlich habe keine Ahnung, was apache da für eins hinterlegt. (Mag sein, dass ich mich jetzt grandios ins Fettnäpfchen setze. Aber was besseres fällt mir dazu nicht ein. 😳 )

Gruss und Dank

Hampa

uname

Anmeldungsdatum:
28. März 2007

Beiträge: 6030

Wohnort: 127.0.0.1

Wie machst Du das genau? Loggst Du Dich via SSH auf dem Server ein und bearbeitest die Datei mit dem vim der auf dem Server läuft, oder wie muss ich mir das vorstellen?

Klar logge ich mich per SSH ein. Nebenbei nutze ich dann noch Screen um in einem Putty-Terminal mehrere virtuelle Terminals gleichzeitig verwalten zu können. Warum Putty zweimal starten 😉

Betreffend www-data. Änderst Du mit root das Passwort von www-data. Ich persönlich habe keine Ahnung, was apache da für eins hinterlegt. (Mag sein, dass ich mich jetzt grandios ins Fettnäpfchen setze. Aber was besseres fällt mir dazu nicht ein. 😳 )

Warum sollte ich das Passwort von "www-data" ändern. Wenn man sich /etc/shadow anschaut sieht man, dass "www-data" wie die meisten technischen Benutzer kein Passwort hat. Aber als "root" darf ich alles so dass ich auch die Identität von "www-data" annehmen darf. Nicht probiert, da ich meist unter Debian ohne "sudo" arbeite:

sudo su - www-data


oder

sudo -s
su - www-data


Alternativ kann man direkt als "root" editieren, da editierte Dateien nicht den Eigentümer oder die Rechte wechseln.

Arbeiten als "root" ist unsicher? Besser als per Windows über Samba alles zerschießen zu können 😉

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Ich denke, das hängt wohl mit der Samba-Default-Einstellung zusammen (file_mode 0755), nur der Besitzer darf schreiben. Man müsste 0775 haben oder gar 0777.

man smb.conf hat geschrieben:

create mask (S)

The default value of this parameter removes the group and other
write and execute bits from the UNIX modes.

Example: create mask = 0775

Ich würde das 'mal probieren; vermutlich geht's damit.

Gruß - Max-Ulrich

tahrqa

(Themenstarter)

Anmeldungsdatum:
19. Dezember 2006

Beiträge: 22

ok, die anweisung:

sudo chmod -R 777 /var/www 

hift mir schon mal weiter. Danke.

Der create mask eintrag hatte allerdings keine auswirkungen. meine smb.conf enthält auch schon folgende einträge:

[www]
path = /var/www
comment = Document-Root
available = yes
browsable = yes
public = yes
writable = yes
force group = mygroup
force create mode = 770		# neue dateien werden mit diesen rechten versehen
force directory mode =770	# neue verzeichnisse werden mit diesen rechten versehen

es ist doch auch so, dass die dateirechte passen, wenn ich über das netzlaufwerk eine datei/verzeichniss erstelle. nur wenn die datei / das verzeichnis von php erstellt wird kann ich über das netzlaufwerk nicht zugreifen

Max-Ulrich_Farber

Avatar von Max-Ulrich_Farber

Anmeldungsdatum:
23. Januar 2007

Beiträge: 8010

Du hast Recht, create mask = 0775 kann in diesem Fall nichts bringen. Ich hatte da was falsch verstanden, sorry.

Das Problem ist offenbar, dass der Windows PC die Schreibrechte für alle, die ja auf dem Server bestehen, nicht erkennt. Das ist wohl ein Problem der mangelnden Zusammenarbeit zwischen Unix und Windows: Die Zugriffsrechte werden zwar von Samba übermittelt, wenn unix extensions = yes gesetzt ist (Default-Einstellung), aber Windows erkennt diese nicht.

Ich glaube, da gibt es vielleicht noch den Weg, dass Du auf dem Server mittels sudo smbpasswd -a www-data für den dort ja vorhandenen User www-data ein Samba-Passwort festlegst, und dass Du Dich von Windows aus als User www-data mit diesem Passwort anmeldest, wenn Du auf die Freigaben schreibend zugreifen willst.

Gruß - Max-Ulrich

Antworten |