Vraag over veiligheid
Dat werkte pas nadat ik de bestandsrechten van de fotomap ipv 755 op 777 zette.
Is dit de juiste oplossing of begeef ik me op glad ijs?
Als 755 niet werkt, dan is er iets mis met de rechten-structuur bij je webhosting.
Als ik mij niet vergis kan het minder kwaad als het script onder je eigen username draait.
1. Onder welke user draait PHP?
2. Welke user is eigenaar van de fotomap?
Toevoeging op 16/06/2016 23:51:39:
>> Als ik mij niet vergis kan het minder kwaad als het script onder je eigen username draait.
Dan heb je die gigantische rechten ook niet nodig, dan kom je er met 700 zelfs wel. De executable bit is noodzakelijk omdat het een directory is, anders was 600 genoeg geweest.
Ik ga ff een nachtje slapen over wat ik hier mee kan aanvangen:)
Dan gaan we voor de zekerheid nog over op de group informatie. Is rina lid van www-data en is je map eigendom van de group www-data?
Maak de owner van de map www-data en rechten 755.
- SanThe - op 17/06/2016 12:49:31:
Maak de owner van de map www-data en rechten 755.
Waarom niet gewoon de username zelf? Als je mod_ruid2 op de server hebt geinstalleerd en goed in Apache hebt geconfigureerd, draait alles onder je username en zal je niet zo snel meer met Permission Denied's zitten omdat je rechten ergens niet kloppen. Iets wat mijn vroegere hosting niet voor elkaar kon krijgen, en mij veel ergernis gaf ;-)
Ben van Velzen op 17/06/2016 02:43:03:
Is rina lid van www-data
niemand is lid van www-data. Kan dat? er staat alleen een nummer.
Ben van Velzen op 17/06/2016 02:43:03:
en is je map eigendom van de group www-data?
en is je map eigendom van de group www-data?
nee
Moet ik rina lid maken van www-data en de group www-data eigenaar maken van de map?
Maar je kunt ook de user lid maken van www-data en de group eigenaar maken van de map. Mooi is anders, en het timmert het niet zover dicht als je zou willen; je hebt dan alsnog 770 nodig op zijn minst.
Edit: niet zo klein als gehoopt:
Toevoeging op 18/06/2016 02:09:09:
Ook nog een kleine aanvulling:
Lees je in op hoe rechtenbeheer werkt, van start tot eind. Ik ga dit nu niet voor je googlen, maar in de basis werkt het als volgt:
Je hebt 3 categorieën van rechten: read, write en execute
Je hebt ook 3 niveaus van rechten: user, group en world
In de 3 niveaus worden de rechten ook opgebouwd uit de categorieën:
Het eerste octet is voor user, het tweede voor group, het derde voor world.
Nu dit duidelijk is gaan we over naar hoe Apache dit standaard behandelt:
Apache start standaard op als de root user en root group en degradeert zichzelf naar wat er genoemd wordt in je configuratie: in dit geval de user www-data en waarschijnlijk ook de group www-data.
Met mod_ruid2 kun je beinvloeden welke user en group gebruikt wordt vanuit Apache. Probeer het volgende in httpd.conf (dit is de eenvoudigste manier, en is veel meer granulatiteit mogelijk met name op user en grouo niveau):
RMode stat
Wat er nu gebeurt is dat als de user en group die bij het bestand dat je opvraagt worden opgevraagd door Apache. Ik geef je nu de volgende situatie:
- Je hele homedirectory is eigendom van de user rina en de group rina (standaard onderdebian en derivaten als ubuntu)
- Apache vraagt index.php op
- Dit bestand is eigendom van de user rina in de group rina (hij staat in je homedirectory en is door jezelf gemaakt)
- Index.php wordt door mod_ruid omgeschakeld naar uitvoer door de user rina in de group rina (door het opvragen van het eigendom op index.php)
- Alle bestanden die worden opgevraagd of geschreven door index.php zullen standaard als de user rina en group rina werken: wanneer de map waar je naar schrijft eigendom is van jezelf gaat dit bijna geganandeerd goed.
Gewijzigd op 18/06/2016 02:31:13 door Ben van Velzen
moet ik dan RMode stat toevoegen aan apache2.conf?
Staat er in apache2.conf dan iets vermeld of je domein/host die je hebt ingesteld?
ik heb de volgende mappen:
mods-available en mods-enabled
en sites-enabled en sites-availalable
en conf-enabled en conf-available
maar ik weet niet naar wat voor regel ik moet zoeken
Dit is een redelijk standaard manier van configureren: verschillende elementen uit conf-available kunnen worden gesymlinkt naar conf-enabled. Kortom: kijk in conf-available naar de mogelijkheden. Het kan handig zijn hierbij om iemand erbij te hebben die deze manier van configureren kent, om te voorkomen dat er gekke dingen gebeuren.
Is deze bestandsstructuur niet een onderdeel van Nginx als webserver?
Include /etc/apache2/mods-enabled/*
Include /etc/apache2/config-enabled/*
Je kunt uiteraard gewoon vanaf scratch beginnen en deze onzin eruit slopen, maar dan zul je zelf een compleet nieuwe config moeten opbouwen. Let wel: ik noem het onzin, omdat ik dit soort dingen gewoon onoverzichtelijk vind, maar vanuit een package management oogpunt is het logisch: extra packages kunnen extra bestanden toevoegen zonder in de bestanden zelf te hoeven wroeten. Ik meen me te herinneren dat ik niet lang geleden Ozzie op hetzelfde punt gewezen heb mbt logrotate.
https://www.sapiolab.nl/linux/elke-website-onder-eigen-gebruiker-middels-mod-ruid2/ (maar omdat deze voor een ander doel is gemaakt heb ik een vraag)
ik ben bij stap 5:
Maak in de directory /etc/apache2/mod-available/ het bestand mod_ruid2.conf aan geef het de volgende content:
RMode stat
RMinUidGid #1000 #1000
RDefaultUidGid #33 #33
Die laatste 2 regels, geldt dat ook in mijn geval? Nee he, ik moet alleen die regel RMode stat erin zetten toch, kan iemand dat bevestigen?
Gewijzigd op 24/06/2016 00:35:05 door marina janssen
Ik geef een grote kans.
Gewijzigd op 24/06/2016 00:52:34 door - Ariën -
Je mag alles er wel in zetten, 1000 is een logische min uid: system users zijn (standaard) users met id's onder 1000, groups net zo. De default uid/gid kan ik zo snel niet beoordelen, omdat ik niet weet welke user/group 33 is. Welke distro heb je in gebruik? Onder Debian en aanverwanten is dit www-data, wat een logische keuze is.
ik heb jessie (raspbian)
Dus een Debian variant. Dan is uid/gid 33 logisch. Maar uiteindelijk maakt het niet zoveel uit, want logica dicteert dat defaults alleen zinnig zijn in RMode config, dus wanneer je in je vhost opgeeft welke user/group gebruikt moet worden met RUidGid. Bij RMode stat wordt dit automatisch bepaald.
Dus als ik het goed begrijp: als Modruid2 goed geinstalleerd is,dan zou er geen www-data meer moeten staan bij whoami.php?