Platform: Ubuntu 18.04.2 LTS (Bionic Beaver)
Vraag: wie doet wat en wanneer?
Nieuw bestand /etc/apache2/conf-enabled/local.conf:
<Macro User $who $where> <Directory /net/homepages/$where/www> <If "%{SCRIPT_USER} == '$who'"> <IfModule mpm_itk_module> AssignUserId $who $who </IfModule> </If> </Directory> </Macro> Use User f109308 alfa Use User p107437 gosse Use User p141988 vannoord Use User p209327 kleiweg Use User p218615 wieling Use User p266548 rikvannoord Use User p278972 atoral Use User p282832 JURIsays
Installeren:
a2dismod suexec rm -r /etc/apache2/suexec apt-get install libapache2-mpm-itk a2enmod macro a2enmod mpm_itk systemctl reload apache2
Users verwijderen: JURIsays alfa atoral gosse kleiweg rikvannoord vannoord wieling
Alle aanpassingen, alles wat niet standaard is, zoveel mogelijk opslaan onder /var/local
(of een andere plek waar nu niets staat). En voor zover het niet
mogelijk is, documentatie over aanpassingen opslaan onder /var/local
Lokale configuratiebestanden voor Apache in
/var/local/apache2/conf-available plaatsten, en symlinken naar
/etc/apache2/conf-available:
mkdir -p /var/local/apache2/conf-available mv /etc/apache2/conf-enabled/local.conf /var/local/apache2/conf-available ln -s /var/local/apache2/conf-available/local.conf /etc/apache2/conf-available a2enconf local
/net/homepages verplaatsen naar /net/urd/www/html en /net/urd mounten op urd*
(naar analogie van de default docroot /var/www/html)
READMEs die nu in /net/homepages staan verplaatsen naar /net/urd/www
Onder /net/urd is naast www plaats voor directories voor andere services
die we later zouden willen draaien op urd.
Zie eerst boven, bij snelle oplossing
Het gebruik van de module mpm_itk (ipv suexec) maakt het volgende mogelijk:
Module userdir verwijderen. Omdat onderdelen niet in de
homedirectories van gebruikers staan is dit niet nodig. Het was alleen
nog nodig voor suexec (misschien ook dat niet, weet ik niet zeker).
a2dismod userdir rm /etc/apache2/mods-enabled/userdir.*
/var/local/apache2/conf-available/local.conf aanpassen:
# dit wordt gesymlinkt naar /etc/apache2/conf-available <Macro User $who $where> <Directory /net/urd/www/html/$where> <If "%{SCRIPT_USER} == '$who'"> <IfModule mpm_itk_module> AssignUserId $who $who </IfModule> </If> </Directory> </Macro> Use User f109308 alfa Use User p107437 gosse Use User p141988 vannoord Use User p209327 kleiweg Use User p218615 wieling Use User p266548 rikvannoord Use User p278972 atoral Use User p282832 JURIsays
In /etc/apache2/sites-available/000-default.conf aanpassen:
DocumentRoot /net/urd/www/html
Het gevolg hiervan is dat de tilde in URLs verdwijnt, en dat
gebruikers hun webpagina’s een directory omhoog moeten zetten. De
subdirectory www (onder username) verdwijnt.
In /etc/apache2/apache2.conf zijn een aantal redirects toegevoegd,
zoals: Redirect permanent /vannoord /~vannoord
Die redirects moeten er weer uit.
Herstarten:
systemctl reload apache2
Momenteel heeft iedereen van groep aistaff schrijfrechten in
/net/homepages (dat /net/urd/www/html zou moeten worden).
Kwaadwillenden met schrijfrechten daar kunnen een bestaande directory
van een ander hernoemen, en een nieuwe directory aanmaken onder
de oude naam. Het gebruik van de <If> in de configuratie zorgt ervoor
dat iemand op deze manier niet de rechten van een ander kan kapen.
(Getest: dit is ook veilig als de verandering gebeurt nadat Apache al
is gestart.) Maar misschien moeten we gewoon niet iedereen uit aistaff
schrijfrechten geven in die directory.
Alles onder /var/local/mysql zetten
Backup vanuit cron.daily, niet vanuit cron van root:
mkdir /var/local/mysql mv /var/backups2/mysql /var/local/mysql/backup rmdir /var/backups2 mv /root/bin/mysqlbackup* /var/local/mysql ln -s /var/local/mysql/mysqlbackup /etc/cron.daily
Script mysqlbackup aanpassen:
cd /var/backups2/mysql → cd /var/local/mysql/backup--defaults-file=/root/bin/mysqlbackup.cfg → --defaults-file=/var/local/mysql/mysqlbackup.cfgCronjob voor root van mysqlbackup verwijderen
/var/local/apache2/conf-available/local.confservice apache2 restart/var/log/apache2/etc/mysql/debian.cnf — voor inloggen voor beheer van gebruikers van MySQL
apt-get updateapt-get upgradeapt-get installapt-get remove, apt-get purge, apt-get autoremovecrontab -e en crontab -l niet als rootHomepages in Docker? In Kubernetes? Welk probleem los je daarmee op?
We zitten met urd juist omdat het webplatform met z’n Docker en Kubernetes de mogelijkheden van homepages te veel beperkt. Het webplatform is ingericht op het hosten van een grote hoeveelheid homepages. De situatie op urd is heel anders, kleinschalig.
Daarnaast willen we urd gebruiken om te experimenteren met nieuwe (web-)technieken. Of niet? Dan hebben we een eenvoudig systeem nodig dat relatief eenvoudig is aan te passen aan onze wensen. Met overal Docker of Kubernetes ertussen wordt dat een stuk ingewikkelder.