Bekijk Volledige Versie : mod_ruid webmail probleem
Ik krijg af en toe de volgende fout bij onze webmail client:
Warning: session_start() [function.session-start]: open(/tmp/sess_945xdsfd8vvls2j0vop, O_RDWR) failed: Permission denied (13) in /var/www/html/webmail/inc/inc.php on line 21
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/html/webmail/inc/inc.php:21) in /var/www/html/webmail/inc/inc.php on line 21
Het lijkt op een probleem met de rechten ik kan alleen niet vinden waar.
httpd.conf:
#mod ruid
RMode config
RUidGid apache apache
RGroups apache
En in elke httpd.conf van de gebruiker:
<Location /webmail>
RMode config
RUidGid webapps webapps
RGroups apache
</Location>
<Location /atmail>
RMode config
RUidGid webapps webapps
RGroups apache
</Location>
De map webmail staat op de gebruiker en groep webapps.
Volgens mij kijk ik gewoon ergens over heen.
Iemand:)?
Tim.Bracquez
12/10/10, 18:42
Volgens mij kijk ik gewoon ergens over heen.
Over de search functie van dit forum?
Mwah
<Location /webmail>
RMode config
RUidGid webapps webapps
RGroups apache
</Location>
Zou het hele probleem moeten oplossen maar dit is echter niet het geval.
SebastiaanStok
12/10/10, 19:51
Dit werkt alleen voor virtualhosts, niet voor een <location>
Location is een soort rewrite techniek, die ook een sub-proces kan openen maar dit werkt niet voor mod_ruid.
Waarom kan je de webmail niet gewoon op een sub-domein plaatsen?
Kan je hem ook gelijk goed beveiligen met een SSL certificaat ;)
Yourwebhoster
12/10/10, 20:15
Dit werkt alleen voor virtualhosts, niet voor een <location>
Location is een soort rewrite techniek, die ook een sub-proces kan openen maar dit werkt niet voor mod_ruid.
Waarom kan je de webmail niet gewoon op een sub-domein plaatsen?
Kan je hem ook gelijk goed beveiligen met een SSL certificaat ;)
Het leuke is, dit werkt wel. Als je /roundcube invoert dan krijg je toch echt de user rights webapps.
@TS, je /tmp dir is niet voor iedereen toegankelijk. Zorg er voor dat je /tmp zonder uitvoer rechten gemount hebt en voer dit uit:
chmod 777 /tmp
Als het goed is zou het moeten werken.
Het leuke is, dit werkt wel. Als je /roundcube invoert dan krijg je toch echt de user rights webapps.
@TS, je /tmp dir is niet voor iedereen toegankelijk. Zorg er voor dat je /tmp zonder uitvoer rechten gemount hebt en voer dit uit:
chmod 777 /tmp
Als het goed is zou het moeten werken.
Ga je nu serieus aan iemand zeggen om z'n /tmp directory te 777'n? :)
Yourwebhoster
12/10/10, 20:50
Ga je nu serieus aan iemand zeggen om z'n /tmp directory te 777'n? :)
chmod 0777 /tmp
Lijkt mij duidelijk dat /tmp niet beschreven kan worden, een chmod maakt dit juist toegankelijk. Ik weet niet wat de TS met /tmp gedaan heeft, maar een /tmp moet voor iedereen beschrijfbaar danwel leesbaar zijn.
Geef dat ip dan eens door met die beschrijfbare /tmp map :)
Tim.Bracquez
12/10/10, 20:52
Ik weet niet wat de TS met /tmp gedaan heeft, maar een /tmp moet voor iedereen beschrijfbaar danwel leesbaar zijn.
Moet iedereen niet een eigen /tmp hebben? Zeker ook je sessies niet laten mengen tussen de verschillen users...
chmod 0777 /tmp
Lijkt mij duidelijk dat /tmp niet beschreven kan worden, een chmod maakt dit juist toegankelijk. Ik weet niet wat de TS met /tmp gedaan heeft, maar een /tmp moet voor iedereen beschrijfbaar danwel leesbaar zijn.
En ipv een 777 doe maar gewoon 775.
Yourwebhoster
12/10/10, 20:57
En ipv een 777 doe maar gewoon 775.
Je hebt gelijk, excuses.
Moet iedereen niet een eigen /tmp hebben? Zeker ook je sessies niet laten mengen tussen de verschillen users...
dat sowieso, maar de keuze ligt bij de TS hier anders. Maar de sessie files die zijn ook onder die users aangemaakt waardoor het voor andere users niet leesbaar is. Hierdoor heb je niet dat beveilingsprobleem die je met php cli zou hebben.
chmod 0777 /tmp
Lijkt mij duidelijk dat /tmp niet beschreven kan worden, een chmod maakt dit juist toegankelijk. Ik weet niet wat de TS met /tmp gedaan heeft, maar een /tmp moet voor iedereen beschrijfbaar danwel leesbaar zijn.
Sticky bit, anyone? :nono:
Verwijder nadien meteen even alle sessies omdat ze toch de verkeerde owner hebben wanneer je omschakeld naar mod_ruid. (Al zie ik liever dat iedereen zijn eigen directory voor tmp en sessions heeft)
Overigens voor TS:
Maak ergens een directory aan /home/sessions, chown die naar apache:apache en laat daar lekker je sessies wegschrijven.
Overigens voor TS:
Maak ergens een directory aan /home/sessions, chown die naar apache:apache en laat daar lekker je sessies wegschrijven.
Sessies zijn van de user met mod_ruid, niet van apache : apache.
Sessies zijn van de user met mod_ruid, niet van apache : apache.
Dan sticky bit it is.
of in je vhost config php_admin_value session.save_path "<pad-naar-je-htdocs-dir/sessions>"
Wij hebben het volgende in de custom php.ini per gebruiker (komt uit een bash file, dus excuus voor de echo's).
echo "upload_tmp_dir = /home/$username/tmp/" >> /usr/local/directadmin/data/users/$username/php/php.ini
echo "session.save_path = /home/$username/tmp/" >> /usr/local/directadmin/data/users/$username/php/php.ini
edit: pagina nog open, te traag met opzoeken & typen. Maar httpd.conf lijkt me achteraf misschien beter nu ik er over na denk, scheelt in de IO, als ik het goed heb.
Wij hebben het volgende in de custom php.ini per gebruiker (komt uit een bash file, dus excuus voor de echo's).
echo "upload_tmp_dir = /home/$username/tmp/" >> /usr/local/directadmin/data/users/$username/php/php.ini
echo "session.save_path = /home/$username/tmp/" >> /usr/local/directadmin/data/users/$username/php/php.ini
edit: pagina nog open, te traag met opzoeken & typen. Maar httpd.conf lijkt me achteraf misschien beter nu ik er over na denk, scheelt in de IO, als ik het goed heb.
In de httpd.conf lijkt me toch wel iets handiger ja..
Hoe ik het zie alleen performance wise. Of zie ik iets ernstigs over het hoofd? Zo klinkt het nu namelijk :-)
Lekensteyn
13/10/10, 21:52
of in je vhost config php_admin_value session.save_path "<pad-naar-je-htdocs-dir/sessions>"
"php_value" is voldoende, stel dat je sessie.save_path wilt aanpassen, dan moet dat kunnen. Met een open_basedir restriction kan je toch niet naar /tmp schrijven met PHP (brakke extensies daarbuiten gelaten) :)
"php_value" is voldoende, stel dat je sessie.save_path wilt aanpassen, dan moet dat kunnen. Met een open_basedir restriction kan je toch niet naar /tmp schrijven met PHP (brakke extensies daarbuiten gelaten) :)
Ja, very true :)
Om even te reageren op eerste bericht,
In de httpd.conf (global) hebben wij enkel
User apache
Group apachestaan.
Verder dien je alle webmails, phpmyadmin etc te chownen naar webapps:webapps
Verder hebben wij geen wijzigingen gedaan en werkt alles naar behoren.
Bij de users zelf (custom template)
RMode config
RUidGid |USER| |GROUP|
RGroups apache