Door astip: - In alle 3 accounts kan ik alle bestanden openen die op mijn computer staan.
Dat is niet zo. Standaard heb je, als gewone gebruiker, geen leesrechten in de "home directory" van andere gebruikers (o.a. mappen zoals "Mijn documenten" en "Bureaublad" van
anderen).
De kern van de beveiliging bestaat eruit dat je uitvoerbare bestanden, waarvan het
voor de hand ligt dat anderen ze starten, vooral als dat automatisch gebeurt (bijv. tijdens inloggen) niet kunt wijzigen of toevoegen. Overigens geldt dit niet alleen voor Windows, maar ook voor Linux, BSD etcetera.
Nb. indien een gewone gebruiker
schrijfrechten zou hebben in "All Users\Start Menu\Programs\Startup\" of in de registersleutel "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\", dan zou malware die hij start het systeem zo kunnen aanpassen dat iedereen die voortaan inlogt meteen ook "gehack" wordt. Zodra een admin inlogt is het dan natuurlijk helemaal "game over".
Geen enkele levende gebruiker kan trouwens in de map C:\System Volume Information\ kijken (je ziet hem waarschijnlijk niet eens staan, maar hij is er echt). Alleen de "gebruiker" SYSTEM kan hierin lezen en schrijven.
Bestanden zijn dus niet gekoppeld aan een bepaald account?
Ja en nee.
Een bestand (of map) heeft altijd een
eigenaar, normaal gesproken degene die het bestand of map op de schijf heeft gezet. Een bijzondere situatie bestaat bij alle Windows versies (behalve XP): als een lid van de groep
Administrators een map of bestand maakt, wordt de
groep Administrators (en daarmee alle leden) eigenaar van het bestand. Dat zorgt ervoor dat als 1 admin software installeert, andere admins die software kunnen wijzigen (bijv. updaten) of deïnstalleren.
Side-note: XP zuigt op dit gebied (zie onderste onderwerp op
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/windows_security_differences.mspx?mfr=true, maar dit stomme gedrag kun je fixen, zie
http://support.microsoft.com/kb/318825).
Daarnaast heeft elke map en bestand (ook o.a. devices en registersleutels) normaal gesproken een zogenaamde DACL = Discretionary Access Control List. In die lijst kunnen personen of groepen worden opgenomen die iets mogen of juist iets
niet mogen met die map of dat bestand. Dit noemen we normaal gesproken de
permissies op een map of bestand.
Standaard is het zo dat submappen en bestanden de permissies van een bovenliggende map erven, maar er bestaan verschillende (lastig uit te leggen) trucs om dat gedrag te blokkeren.
Standaard in Windows is dat elke gebruiker in "C:\Program Files\" in submappen mag kijken en bestanden zowel mag openen (lezen) als uitvoeren. Echter, alleen leden van de groep Administrators mogen mappen aanmaken of verwijderen, en bestanden aanmaken en wijzigen. Stel een admin installeert 7-Zip. Tijdens de installatie zal dan een map "C:\Program Files\7-Zip\" worden aangemaakt. Als het installatieprogramma niets speciaals doet zal die nieuwe map de rechten
erven van "C:\Program Files\" waardoor ze hetzelfde zijn. D.w.z. gewone gebruikers kunnen kijken in die submap "7-Zip\" en bestanden daarin lezen en uitvoeren, maar niets wijzigen, verwijderen of toevoegen.
- Wanneer ik een programma installeer waarvoor admin rechten nodig zijn klopt het dan dat dit programma in alle accounts wordt geinstaleerd (is bij mij namelijk wel zo...)
Meestal wel, maar niet noodzakelijkerwijs. Om een programma werkend te maken zijn namelijk een aantal stappen nodig:
- Submap maken en de software bestanden daarnaartoe kopiëren;
- Soms moeten gegevens in het register worden bijgewerkt, bijv. om het programma autostartend te maken als je inlogt of het programma te laten starten op het moment dat je op een bestand met een specifieke
bestandsnaamextensie dubbelklikt (bijv. .bmp in het nieuwe programma te laten openen i.p.v. in Paint);
- Meestal wordt er een snelkoppeling in het Start menu gezet. Het Start menu wordt echter samengesteld uit twee mappen, 1 van de ingelogde gebruiker en 1 van "All Users". Als er een snelkoppeling in die laatste map wordt gezet zal elke ingelogde gebruiker die snelkoppeling kunnen terugvinden in zijn/haar Start menu. Exact hetzelfde geldt voor het Bureaublad: ook dit is een samenstelling van je privé map "Desktop" en "All Users\Desktop". Om die reden kun je, als gewone gebruiker, sommige bestanden die op "jouw bureaublad" staan niet weggooien - die staan namelijk onder All Users en daar heb je alleen leesrechten. Sommige programma's geven je tijdens de installatie overigens de keuzemogelijkheid of je ze alleen voor jezelf wilt of voor elke gebruiker op de betreffende PC.
Nu dacht ik altijd dat elk account een op zichzelf staande gebruikersomgeving zou zijn
Deels is dat zo. De meeste programma's slaan instellingen op in het Windows Register (Registry). Ook dat register bestaat uit een soort "All Users" deel (feitelijk het systeemdeel) en een deel dat wordt geladen op het moment dat jij inlogt. Vaak staat een basisinstelling in het systeemdeel, bijv. de achtergondkleur van een programma is blauw. Als jij dat wijzigt, wordt niet de algemene instelling gewijizgd (dat kan niet want je hebt daar geen schrijfrechten), maar er wordt in jouw persoonlijke deel van het register een waarde
toegevoegd die, voor het betreffende programma,
prioriteit heeft boven de standaard instelling. Daardoor kun jij de achtergrondkleur van dat programma wijzigen zonder dat dit effect heeft op de instellingen van andere gebruikers.