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
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
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
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
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
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
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
|