Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]3234[/thread]

Catalyst::Plugin::Session::Store::File: rechteprobleme mit og. plugin



<< >> 10 Einträge, 1 Seite
Gast Gast
 2007-04-19 14:02
#30372 #30372
Hallo!

Möchte Catalyst mit apache2 laufen lassen, was prinzipiell auch funktioniert, ein kleines Problem hab ich aber mit dem og. Plugin (wobei ich nicht glaub dass das Plugin selbst was dafür kann):

beim starten des apache wird (falls nicht vorhanden) das verzeichnis /tmp/MyApp.session von ebendiesem script angelegt - problem: da das ganze beim starten schon passiert erhält dieses verzeichnis als owner root:root. Danach werden sessions aber (korrekterweise) mit dem user unter welchem der apache (www-data) läuft angelegt, was erst funktioniert, wenn ich chmod 777 oder chown www-data:www-data auf dieses verzeichnis mache ...


irgendwelche hinweise wie ich verhindern kann, dass dieses verzeichnis als root erstellt wird? kleiner nebeneffekt: in meiner MyApp.pm versuche ich am anfang des homeverzeichnis des aufrufenden users zu bekommen, was unter dem devel-server wunderbar geklappt hat, mit dem apache bekomm ich allerdings nicht /var/www/ (was das homeverzeichnis von www-data ist), sondern /root ...

habs im moment einfach hardgecodet drin, glaub aber dass die zwei dinge zusammenhängen. Code zum homeverzeichnis bekommen:

my $homedir = (getpwuid($<))[7];

lg
stefan
GwenDragon
 2007-04-19 15:04
#30373 #30373
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Du kannst do das Verzeichnis setzen:
Code: (dl )
1
2
3
 MyApp->config->{session} = {
storage => '/tmp/session'
};

Weiterhin kannst du bestimmte Parameter setzen:
Quote
Specifies the directory root to be used for the sharing of session data. The default value will use File::Spec to find the default tempdir, and use a file named MyApp/session/data, where MyApp is replaced with the appname.

Note that the file will be created with mode 0640, which means that it will only be writeable by processes running with the same uid as the process that creates the file. If this may be a problem, for example if you may try to debug the program as one user and run it as another, specify a directory like /tmp/session-$>, which includes the UID of the process in the filename.

directory_umask

The directories in the session on the filesystem should be globally writable to allow for multiple users. While this is a potential security concern, the actual cache entries are written with the user's umask, thus reducing the risk of cache poisoning. If you desire it to only be user writable, set the 'directory_umask' option to '077' or similar. Defaults to '000' unless explicitly set.
SEE ALSO
stiV
 2007-04-19 16:29
#30374 #30374
User since
2007-04-19
5 Artikel
BenutzerIn
[default_avatar]
erstmal danke für die schnelle antwort...

wie das verzeichnis heißt is mir eigentlich rel. egal - es hat auch keinerlei auswirkungen auf den owner, ganz egal was/wo ich "storage" hinlege, das verzeichnis bekommt beim erstellen immer als owner root:root und als zugriffsrechte 755, weshalb dann (wenn mal alles gestartet ist) nichts mehr geht --> danach wird alles mit www-data gelesen/geschrieben.

auch der workaround über die umask funktioniert nicht, was auch immer ich dort einstelle: die rechte bleiben bei 755. bin etwas ratlos - im prinzip gehts offenbar darum, dass beim starten des apache die skripte einmal als "root" laufen [ich schätz mal in der phase in der sich der apache den/die socket/s schnappt]. hab gehofft, dass das irgendwem schon bekannt ist und es da einen weg drumherum gibt. es handelt sich ja eigentlich nicht um "programmierfehler" oder designfehler der auufgerufenen skripte ... die können ja nix dafür wie der apache sie aufruft
stiV
 2007-04-19 16:40
#30375 #30375
User since
2007-04-19
5 Artikel
BenutzerIn
[default_avatar]
tja, jetzt hab ich endlich mal was gefunden [1] ... es passiert genau das was ich vermutet hatte, ich weiß allerdings keinen weg "drumherum" ...:

Quote
At server startup, before child processes are spawned, [...]

Be careful with the startup file. Everything run at server initialization is run with root privileges if you start the server as root (which you have to do unless you choose to run the server on an unprivileged port, numbered 1024 or higher). [...]


Bin über jeden Hinweis froh ...

lg
stiV

[1] http://modperlbook.org/html/ch04_03.html
renee
 2007-04-19 17:00
#30376 #30376
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wie GwenDragon schon gesagt hat, kann man über directory_umask die Rechte setzen, also müsste es ungefähr so gehen:

Code: (dl )
1
2
3
4
 MyApp->config->{session} = {
storage => '/tmp/session',
directory_umask => 0777,
};
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
stiV
 2007-04-19 17:29
#30377 #30377
User since
2007-04-19
5 Artikel
BenutzerIn
[default_avatar]
müsste sollte ... tuts aber nicht leider. wie bereits erwähnt werden die parameter bei directory_umask nicht übernommen ...

Code: (dl )
1
2
3
4
__PACKAGE__->config->{session} = {
storage => "/tmp/session",
directory_umask => 0777
};


habs versucht mit 0777, '0777', "0777", 777, '777', "777", hilft alles nix ... außerdem hatte ich gehofft es gäbe eine "schönere" möglichkeit --> das verzeichnis sollte einfach www-data:www-data gehören ...

btw. das verzeichnis das ich in storage eintrage wird schon übernommen - also verwenden tu ichs denk ich schon richtig.
renee
 2007-04-19 17:48
#30378 #30378
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gibt's ne Fehlermeldung?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
stiV
 2007-04-19 17:56
#30379 #30379
User since
2007-04-19
5 Artikel
BenutzerIn
[default_avatar]
nein, keine fehlermeldung ... dieses directory_umask hat offenbar nur auswirkungen auf die UNTERverzeichnisse, die erstellt werden - die bekommen nämlich dann die umask welche ich eingestellt habe (mit www-data:www-data als owner). das "hauptverzeichnis" welches unter "storage" angegeben wird wird immer so angelegt, egal was ich wo einstelle:

drwxr-xr-x 2 root root 4.0K 2007-04-19 15:54 session
GwenDragon
 2007-04-19 18:14
#30380 #30380
User since
2005-01-17
14748 Artikel
Admin1
[Homepage]
user image
Nun, wieso machst du nicht folgends in der Konsole:
su
cd /tmp
mkdir session
chown www-data:www-data session
\n\n

<!--EDIT|GwenDragon|1176992152-->
stiV
 2007-04-19 18:18
#30381 #30381
User since
2007-04-19
5 Artikel
BenutzerIn
[default_avatar]
weil das irgendwann mal auf vielen maschinen passieren sollte, und das wenn möglich automatisch.

kann es evtl. sein, dass ich das ganze einfach falsche "verwende" und in der MyApp.pm das eigentlich gar nicht rein sollte? Habe zuvor nämlich FastMmap benutzt, was mit dem devel server auch klaglos funktioniert hat, und beim apache zu einem segfault geführt hat *g*\n\n

<!--EDIT|stiV|1176992372-->
<< >> 10 Einträge, 1 Seite



View all threads created 2007-04-19 14:02.