su _www ohne Wirkung

M

mahed

Aktives Mitglied
Thread Starter
Dabei seit
26.03.2006
Beiträge
411
Reaktionspunkte
1
Liebes Forum
Apache hat irgendwie Probleme damit in ein Verzeichnis auf meiner Machine zu schreiben, (obwohl die Benutzerrechte 755 sind und das Verzeichnis dem Nutzer _www und zur Gruppe _www gehört). Jetzt will ich
Code:
sudo su _www
bemühen, um zu sehen was passiert wenn ich unter dem Apache Benutzer eine Datei anlegen will. Leider wird der Benutzer nicht gewechselt, dh. ich bleibe der Benutzer der ich war. Woran kann das liegen?

Vielen Dank für Hinweise.
 
_www hat als Login-Shell /usr/bin/false, will sagen er kann/darf sich nicht einloggen! Damit ist eine direkte Anmeldung als dieser Systemuser untersagt, was in dem Kontext auch Sinn macht!

Weit häufiger als Berechtigungen sind meist Fehler im Bereich Dateisystempfad!=Dokumentenpfad im htdocs-Verzeichnis die größere Quelle von solchen Problemn. Bist Du sicher, dass Du wirklich an der richtigen Stelle suchst!?
 
Ich weiss nicht genau. Die Probleme treten hier auf. Der auszuführende CGI code sieht so aus:
Code:
def foo():
    dat = open('../bar/' + 'target' + '.txt', 'r')
wobei die Benuterrechte von 'bar', für den Moment, auf 777 gesetzt sind.
Zurück kommt die Meldung
Code:
<type 'exceptions.IOError'>: [Errno 13] Permission denied: '../bar/target.txt'
Was soll man davon halten?
Genau, wegen deiner Überlegung wollte ich mich als _www anmelden und mir anzeigen lassen, was 'pwd' ausgibt. Würde das nicht Sinn ergeben, bzw. nützliche Information bieten?

Zusätzlich, wenn ich in den Systemeinstellung/File Sharing auf den Link zu meiner persönlichen Webseite klicke, dann öffnet sich die richtige Seite, die ich in $HOME/Sites/ abgelegt habe.
 
:jaja: oder mach ein system("ls") oder sonst etwas in der Art!
 
Du meinst im CGI Code? Hab ich gemacht, scheint eigentlich zu stimmen. Dh. Apache "ist am richtigen Ort", bzw. der Pfad sollte richtig auswerten.

Und nur der Vollständigkeit halber, ich kann ohne Probleme phpinfo() im Browser ausführen, Apache scheint also richtig zu laufen.
 
Zuletzt bearbeitet:
Hat ../bar möglicherweise erweiterte Attribute?
 
wie könnte ich das denn evtl. überprüfen?
 
...

$ ls -@
 
bar/ wird nicht mit einem '@' gelistet, ergo gehe ich davon aus dass keine erweiterten Attribute für dieses Verzeichnis vorhanden sind.
 
Eine andere Frage:
Im httpd.conf steht
Code:
 # User/Group: The name (or #number) of the user/group to run httpd as.
 # It is usually good practice to create a dedicated user and group for
 # running httpd, as with most system services.
 #
 User www
 Group www
Wenn ich nun 'chown www:www bar/' eingebe, gefolgt von 'ls -l', dann steht als Besitzer von bar/ '_www'. Woher kommt der Underscore?
 
das sind Systemuser vom OS X, die beginnen mit einem _ und werden beim normalen Andmeldedialog nicht angezeigt!
 
hast du dein system immer upgedatet?
wenn in der httpd.conf noch www drin steht statt _www, dann liegt das meist an einer modifizierten httpd.conf, die das system update nicht überschrieben hat.
da müsste dann noch eine httpd.conf~orig im verzeichnis liegen...
 
Ok, werde mal das System updaten. Ich nehm mal an, die httpd.config~orig find ich erst nach dem Update...
 
In meinem Fall ist es so: Apache soll ein weiteres Programm ausführen. Dieses Programm muss einige Module laden. Damit ich den korrekten Pfad zu den Modulen angeben kann (relativ zum Apache Home-Verzeichnis) muss ich allerdings wissen, von wo aus Apache startet und welche Umgebung der Server sieht. Wie kann ich das Heim-Verzeichnis von Apache bestimmen?
 
Zurück
Oben Unten