Centos rechten
Ik heb mijn pc verrijkt met Centos 7.
Webserver is nu veel sneller als onder windows en dat maakt het ontwikkelen van PHP applicaties weer aangenamer :-)
Ik zit met een rechten probleempje:
Dit is de situatie:
Apache: gebruiker apache, groep apache
Frank: gebruiker frank, groep frank --> Hiermee ben ik normaliter ingelogd.
Alles werkt goed totdat ik als gebruiker frank via de command-prompt opdracht geef om de symfony cache leeg te maken.
De opdracht die ik opgeef:
De foutmelding die ik krijg:
Code (php)
1
2
2
[RuntimeException]
Unable to write in the "/var/www/projects/symfony/app/cache/dev" directory
Unable to write in the "/var/www/projects/symfony/app/cache/dev" directory
vanuit de map cache: ls -l levert op:
Goed ik ben frank en dus geen eigenaar van de dev directory. Lijkt me duidelijk.
Maar wat is de handigste en gebruikelijkste oplossing voor dit probleem?
Hoe Werkt dit op de servers van de providers?
Zelf zou ik dit via sudo doen.
Sudo werkt inderdaad Willem maar het is nog geen bevredigend antwoord.
Als je gebruik maakt van virtual hosts, dan kun je in Apache 2.4 met de directive VHostUser bepalen onder welk userid de betreffende virtuele host draait. Dat is wellicht een oplossing die nog net iets sjieker is dan sudo.
Dan kan ik als user gewoon alles doen wat Apache ook mag.
Quote:
sudo groupadd symfonydevloper
sudo useradd symfonysite
# add Frank to symfonydevloper group
sudo usermod -a -G symfonydevloper frank
# add apache to symfonydevloper group
sudo usermod -a -G symfonydevloper apache
chown -R symfonysite:symfonydevloper /var/www/projects/symfony/
chmod -R g+rwx /var/www/projects/symfony/
chmod -R o-rwx /var/www/projects/symfony/
als je new files gaat ftp uploaden dan doe dit
sudo usermod -g symfonydevloper frank
sudo usermod -a -G frank frank
vergeet de chmod -R g+rwx for de new uploaded files niet.
sudo useradd symfonysite
# add Frank to symfonydevloper group
sudo usermod -a -G symfonydevloper frank
# add apache to symfonydevloper group
sudo usermod -a -G symfonydevloper apache
chown -R symfonysite:symfonydevloper /var/www/projects/symfony/
chmod -R g+rwx /var/www/projects/symfony/
chmod -R o-rwx /var/www/projects/symfony/
als je new files gaat ftp uploaden dan doe dit
sudo usermod -g symfonydevloper frank
sudo usermod -a -G frank frank
vergeet de chmod -R g+rwx for de new uploaded files niet.
Gewijzigd op 17/11/2014 22:41:26 door Simo Mr
- SanThe - op 17/11/2014 21:37:42:
Ik draai thuis Apache onder mijn username/group.
Dan kan ik als user gewoon alles doen wat Apache ook mag.
Dan kan ik als user gewoon alles doen wat Apache ook mag.
Dat heeft als nadeel dat Apache ook alles mag wat jij mag. Is niet echt handig als je server wordt gehackt. ;-) Dat is trouwens ook het nadeel van de VHostUser-setting. Je moet er dus voor zorgen dat je onder je eigen account minimale rechten hebt.
Gewijzigd op 17/11/2014 22:45:30 door Willem vp
apache hoort bij die group en jij ook.
dus new gebruikers kunnen niks doen op je site. zij hebben geen schrijf/lezen recht.
Parallels Plesk gebruiken dit systeem voor het administratie van domeinen ;-), en het is wel veilig.
Je kan ook een "chmod g+s op /var/www/projects/symfony/" doen vóórdat je daar alle bestanden naartoe kopieert (heb je al een directorystructuur dan kun je dat met "find /var/www/projects/symfony/ -type d -exec chmod g+s {} \;" alsnog regelen).
Door het s-bitje op de directory zullen alle bestanden die je aanmaakt automatisch de group van de betreffende directory erven.
Gewijzigd op 17/11/2014 22:51:00 door Willem vp
Willem vp op 17/11/2014 22:41:24:
Dat heeft als nadeel dat Apache ook alles mag wat jij mag. Is niet echt handig als je server wordt gehackt.
Thuis, geen enkele ingaande toegang van buitenaf.
Ik vroeg mezelf voornamelijk af hoe het dan gedaan wordt bij een shared server, dat antwoord ligt dan waarschijnlijk in de tweede post van Willem: VHostUser's.
Hierbij wordt dan eigenlijk ook de oplossing van SanThe gebruikt? uiteraard zijn het dan geen sudoers..
Gewijzigd op 17/11/2014 23:14:06 door - SanThe -
Gewijzigd op 18/11/2014 10:29:22 door Frank Nietbelangrijk