Also wir wollen uns nicht vor WEBUSER schützen sondern vor LOKALEN User ?
Das kannst Du mit
chmod und
chown machen
Sachen die im Webserver liegen müssen für den WEBSERVER User lesbar sein. Deswegen nimmt man bei solchen den Webserver seine (oder wie wir sehen werden in eine spezielle) Gruppe auf.
Angenommen du bist der lokale User
otto
Du willst dich vor dem lokalen User
idiot schützen
Webserver User ist der
www-data
damit nimmst du
www-data in deine Gruppe auf.
Code:
otto@lokalhost:~# usermod -a -G www-data otto
der User
Idiot darf nicht Mitglied in
deiner Gruppe sein.
Sollte er das sein dann musst Du eben
eine neue leere Gruppe anlegen und diese benutzen.
Des weiteren darf der User
Idiot nicht Mitglied in einer Administratoren Gruppe sein wie zB root, System, oder andere ... und auch keine Administratoren Rechte haben zB UID usw ...
um herauszufinden in welchen Gruppen du bist :
Code:
otto@lokalhost:~# groups otto
otto: otto, root, www-data
Du bist also in deiner eigen Gruppe, in der root Gruppe und in der www-data
wir checken nun den Idioten
Code:
otto@lokalhost:~# groups idiot
idiot: idiot
der Idiot ist also nur Mitglied in seiner eigenen Gruppe.
Nun kannst du also deine Verzeichnisse die Idiot nicht sehen soll mit
chown dir und deiner Gruppe zuweisen (wenn sie es noch nicht sind ...)
Code:
otto@lokalhost:~# chown -hR otto:otto /var/www/ottohomepage/supergeheimesverzeichniss/
sollte jetzt der Idiot in deiner Gruppe sein legst du mit
groupadd die Gruppe geheim an und machst www-data und dich Mitglieder in der Gruppe
Code:
otto@lokalhost:~# groupadd geheim
otto@lokalhost:~# usermod -a -G www-data geheim
otto@lokalhost:~# usermod -a -G otto geheim
anschliessen gibst das Material der Gruppe geheim
Code:
otto@lokalhost:~# chown -hR otto:geheim /var/www/ottohomepage/supergeheimesverzeichniss/
und jetzt machen wir den Zaubertrick fix, indem wir den Rest der Welt ausschließen. Wir benutzen dazu chmod.
wobei 750 bedeutet folgendes
- owner__r w x____(4 + 2 + 1 ) * 100
- gruppe_r - x____( 4 + 1) * 10
- other__- - -____(0) * 1
macht zusammen ( (4 + 2 + 1 ) * 100 ) + ( ( 4 + 1) * 10 ) + ( (0) * 1) = 750
Code:
otto@lokalhost:~# chmod -R 750 /var/www/ottohomepage/supergeheimesverzeichniss/
sollen die mitglieder der gruppe geheim VOLLEN zugrif auf das verzeichnis bekommen also inklusive schreiben
Code:
otto@lokalhost:~# chmod -R 770 /var/www/ottohomepage/supergeheimesverzeichniss/
in dem Moment wird der Idiot das Verzeichnis und alles was drin ist nicht mal mehr sehen, geschweige öffnen oder lesen können
Wenn du willst dass er die Verzeichnisse sieht aber nicht rein kann musst du ihm das r im Rest der Welt geben also quasi
Code:
otto@lokalhost:~# chmod 754 /var/www/ottohomepage/supergeheimesverzeichniss/
(ohne -R rekursiv). Da er den x nicht hat kann er das Verzeichnis nicht öffnen. Er Sieht es nur von außen und kann ihm winken.
wenn Du das kapiert hast dann kannst Du Dir ein Bier öffnen, und zuversichtlich sein, die Welt ist doch gut.