File von Apache geschrieben, von mir löschbar

mahed

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2006
Beiträge
411
Reaktionspunkte
1
Liebes Forum
Mittels Apache schreibt eine Anwendung eine Datei (Besitzer ist www). Kann ich irgendwie erreichen, dass diese Datei auch von mir (eigenerAccount) gelöscht werden kann, OHNE sudo?

Danke für Hinweise.
 
Du kannst den Apache-Prozess mit den Rechten deines Users laufen lassen. Das kann/muss man in der Apache-Config einstellen. Über Google findet man recht schnell wie das geht.

Die Frage ist halt, ob du das wirklich willst. So hat der Apache-Prozess halt vollen Schreibzugriff auf deinen gesamten Benutzerordner.
 
Nein, das möchte ich nicht. Ich frage mich einfach, wie man sich am schlausten eine Entwicklungsumgebung einrichtet... Ich weiss, dass ich ein Verzeichnis für mich und Apache schreibbar machen kann, klar, allerdings, wie kann ich Dateien löschen, die Apache erstellt hat, in diesem bestimmten Verzeichnis, ohne sudo.
 
Du könntest deinen User in die selbe Gruppe stecken wie den www-user und dann entsprechende Gruppenschreibrechte beim Anlegen der Dateien vergeben. Aber auch dann hat der Apache-Prozess Gruppenrechte auf deinem Benutzerordner.
Zumal das Verwalten der ganzen unterschiedlichen Rechte ziemlich Aufwändig sein dürfte.

Ansonsten gibt’s da soweit ich weiß keine andere Möglichkeit.
 
...
Aber auch dann hat der Apache-Prozess Gruppenrechte auf deinem Benutzerordner.
...
Warum?

Eigentlich müsse sich die Aufgabe auch durch eine ACL auf den Ordner, in dem die Dabei angelegt wird, lösen lassen.
Schau mal in 'man chmod'
 
Du könntest deinen User in die selbe Gruppe stecken wie den www-user und dann entsprechende Gruppenschreibrechte beim Anlegen der Dateien vergeben. Aber auch dann hat der Apache-Prozess Gruppenrechte auf deinem Benutzerordner.

Wenn dein User zusätzlich in die www-Gruppe kommt ... ist nicht automatisch auch umgekehrt der www-User in deiner Gruppe! Somit bekommt er keine Rechte auf deine Daten - nur du auf seine (soweit neben dem User die Gruppe Zugriff hat, was aber eigentlich Standard ist).
 
@Roedert: danke, denke das macht es für mich etwas klarer wie ich das sehen soll, bei Benutzerrechten immer am Fenster gesessen, bzw. geglaubt *ich* werde *das* eh nie benötigen. Naja, wie man in den Wald ruft...

Vielleicht ist es besser, das Problem anders herum zu stellen: Wie setzt man sich am besten eine Entwicklungsumgebung für eine Webapplikation auf? Irgendwo wird Apache ja seine Dateien ablegen und ich muss überprüfen können, ob diese richtig erstellt werden (dh. ob die Zahlen die da drin stehen richtig sind). Und falls nicht will ich sie ja löschen können (nicht überschreiben, weil das vom Programm im Hintergrund her gerade unpraktisch wäre). Wie macht man das also? Kann ich evtl. definieren, dass Dateien die Apache erstellt, auch von mir schreibbar sind?
 
...
will ich sie ja löschen können (nicht überschreiben ...)
...
Wie macht man das also? Kann ich evtl. definieren, dass Dateien die Apache erstellt, auch von mir schreibbar sind?

Ich glaube, Du musst Dir erst einmal klar werden, was Du überhaupt willst.

Abgesehen davon:
Der Webserver wird üblicherweise von einem admin Benutzer verwaltet.
Als admin Benutzer kannst Du Dateien schreiben und löschen, die vom Webserver erzeugt wurden.

Im Regelfall besteht also das von Dir geschilderte Problem nicht.
Du musst aber normalerweise "sudo" benutzen, was Du nicht möchtest.
Dies würde ich noch einmal hinterfragen, weil es eigentlich die "richtige" Vorgehensweise ist.

Wenn Du in einer unüblichen Umgebung arbeitest oder an Deiner sudo-Verweigerung festhalten möchtest (warum auch immer), solltest Du mit ACLs oder Dateisystemrechten für die entsprechenden Berechtigungen sorgen.
An der Apache Konfiguration würde ich diesbezüglich nichts ändern.
Damit handelst Du Dir (u. U.) nur Sicherheitslücken ein.

Eine weitere Option wäre, dass Du die Dateien einfach vom Webserverprozess, der Sie ja angelegt hat, auch wieder löschen lässt.
Dafür brauchst Du eine kleine Webanwendung, mit der Du die entsprechende(n) Datei(en) zur Kontrolle lesen und bei Bedarf löschen kannst.
Sollte kein großes Problem sein.

Gruß
maceis
 
@maceis: siehst du vollkommen richtig. Ich bin, wenn ich will, admin (ich erstelle die Anwendung ja auf meinem lokalen Rechner), also ist es technisch gesehen kein Problem die Dateien mit sudo zu löschen. Punkt ist, üblicherweise arbeite ich nicht unter meinem Admin Account, womit ich aber evtl. beginnen sollte. Aber ist das wirklich üblich? Punkt ist auch, man kann sich ja auch Anwendungen nur für einen Nicht-Admin Nutzer installieren, dh. man *muss* unter normalen Umständen nicht als Admin eingeloggt sein, und diese Vorgehensweise wollte ich eigentlich pflegen.
 
Du sollst ja gar nicht dauerhaft als admin Benutzer arbeiten.

Für admin Aufgaben machst Du Dich so kurz wie nötig mit 'su benutzername_admin' zum admin Benutzer.
Wenn Du fertig bist, wechselst Du mit 'exit' wieder zum Standarbenutzer.

Und die letztgenannte Option erfordert noch nicht einmal diese Umstände.
 
Ich würde die Applikation auch einfach unverändert lasen und deinen user in die www-Gruppe aufnehmen. Alternativ könntest du versuchen das Verzeichnis wo die besagten Dateien liegen per ACL für dich zu berechtigen, aber ob sich das auch auf die neu darin angelegten Dateien auswirkt weiss ich nicht.

Wie sieht die Berechtigung der Datei denn aus (mach mal im Terminal ein ls -al) - dann haben wir mehr Infos: Owner, Groups und Berechtigung?
 
@maceis: Ja, man kann sich schon ab und zu als admin einloggen. Des öfteren bleibe ich auch einfach als Admin eingeloggt um nicht immer zwischen Usern hin und her wechseln zu müssen.
@roedert: Beispiel output

Code:
[me]machine @ prototype $ ls -l
total 72
...

drwxr-xr-x    3 me        staff    102 15 Mai 16:10 bfs_nws
drwxrwxr-x   10 _www    staff    340 16 Mai 20:17 bfs_pdb

[me]machine @ ku_prototype $ ls -la bfs_pdb/
total 4232
drwxrwxr-x  10 _www        staff     340 16 Mai 20:17 .
drwxr-xr-x  16 me          staff     544 16 Mai 17:16 ..
-rw-r--r--   1 _www        staff  539856 16 Mai 20:17 1AVD-fix.pdb
-rw-r--r--   1 _www        staff  314442 16 Mai 20:16 1AVD-nat.pdb
-rw-r--r--   1 _www        staff  314766 16 Mai 20:16 1AVD-rec.pdb
-rw-r--r--   1 _www        staff  609007 16 Mai 20:17 1AVD-reo.pdb
-rw-r--r--   1 _www        staff  336636 16 Mai 17:39 1AVD.pdb
-rw-r--r--   1 _www        _www    12479 16 Mai 16:46 kk8add-rec.pdb
-rwxr-xr-x   1 me  staff   12004 15 Mai 17:33 kk8add-reo.pdb
-rwxr-xr-x   1 me  staff   12479 15 Mai 17:42 kk8add.pdb


Diese 1AVD-* Dateien werden von der Webapplikation erstellt. Sie werden allerdings nur erstellt, wenn sie nicht schon existieren (in der App so gegeben, kann ich aber evtl. ändern). Wenn sie aber fehlerhaft sind, möchte ich sie löschen, damit sie neu erstellt werden.
 
ok, da dis Dateien "rw-r--r--" sind hat die Gruppe eh kein Schreibrecht - also fällt die Lösung über die posix-Rechte mit deinem User in der www-gruppe (in deinem Fall "staff") schonmal weg.
In der Gruppe staff bist du glaube ich sowieso schon standardmäßig.
Du könntest also noch mit ACL-Berechtigungen für deinen User auf das Verzeichnis bfs_pdb testen.
 
Um eine Datei zu löschen brauchst du Schreibrechte auf das Verzeichnis, nicht auf die Datei.
 
@Gondomir: Die Datei ist in einem Verzeichnis bfs_pdb mit Besitzern www:staff, und ich bin ja auch member in staff und für groups sind Schreibrechte gegeben, nicht?
 
Aufs Verzeichnis hat die Gruppe Schreibrechte steht ja da:
drwxrwxr-x 10 _www staff 340 16 Mai 20:17 .

Und natürlich brauchst du auch Schreibrechte auf eine Datei um diese zu löschen!
 
Ich habe es jetzt gerade ausprobiert. Es scheint doch zu funktionieren, dass ich die Datei, die mir nicht gehört, löschen kann. Ich muss allerdings mit "yes" bestätigen, sudo ist allerdings nicht nötig.
 
Nein, braucht man nicht.

ok, gerade getestet mit einer Datei yyy - ich bin nicht in der Gruppe _www:

ls -al
---> -rw-r--r-- 1 _www _www 2 18 Mai 14:06 yyy
rm yyy
---> override rw-r--r-- _www/_www for yyy?


...und dann kann man tatsächlich mit der Bestätigung die Datei löschen.
War mir neu .. und ist auch irgendwie nicht so ganz verständlich?
 
nicht wahr?
Ok, jedenfalls so ginge es. Und ist gut zu wissen, dass die Verzeichnisschreibrechte ausschlaggebend sind.
 
Zurück
Oben Unten