4.3. Beperkte en onbeperkte gebruikers
Elke Linux gebruiker wordt afgebeeld op een SELinux gebruiker met SELinux tactiek. Dit staat Linux gebruikers toe om de beperkingen voor SELinux gebruikers te erven. Deze Linux gebruiker afbeelding kan bekeken worden door het uitvoeren van het semanage login -l commando als de Linux root gebruiker:
# /usr/sbin/semanage login -l
Login Name SELinux User MLS/MCS Range
__default__ unconfined_u s0-s0:c0.c1023
root unconfined_u s0-s0:c0.c1023
system_u system_u s0-s0:c0.c1023
In Fedora 11 worden Linux gebruikers standaard afgebeeld op de __default__ login ( welke is afgebeeld op de SELinux unconfined_u gebruiker). Het volgende definieert de standaard afbeelding:
__default__ unconfined_u s0-s0:c0.c1023
Het volgende voorbeeld laat het toevoegen van een nieuwe Linux gebruiker zien, en het afbeelden van die Linux gebruiker op de SELinux unconfined_u gebruiker. Het neemt aan dat de Linux root gebruiker onbeperkt draait, wat standaard het geval is in Fedora 11:
Als de Linux root gebruiker voer je het /usr/sbin/useradd newuser commando uit om een nieuwe Linux gebruiker aan te maken met de naam newuser.
As the Linux root user, run the passwd newuser command to assign a password to the Linux newuser user:
# passwd newuser
Changing password for user newuser.
New UNIX password: Enter a password
Retype new UNIX password: Enter the same password again
passwd: all authentication tokens updated successfully.
Log uit van je huidige sessie, en login als de Linux newuser gebruiker. Als je inlogt, beeldt pam_selinux de Linux gebruiker af op een SELinux gebruiker (in dit geval, unconfined_u), en stelt de daaruit volgende SELinux context in. De shell van de Lunix gebruiker wordt opgestart met deze context. Voer het id -Z commando uit om de context van een Linux gebruiker te bekijken:
[newuser@localhost ~]$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Log uit van de sessie van de Linux newuser, en log in met je eigen account. Als je de Linux newuser gebruiker niet wilt, voer je het /usr/sbin/userdel -r newuser commando uit als de Linux root gebruiker om het te verwijderen, te samen met de persoonlijke map van de Linux newuser.
Beperkte en onbeperkte Linux gebruikers zijn onderworpen aan uitvoerbaarheids en naar-geheugen-schrijven controles, en zijn ook beperkt door MCS (en MLS, als de MLS tactiek wordt gebruikt). Als onbeperkte Linux gebruikers een toepassing uitvoeren waarvan SELinux tactiek definieert dat het kan overgaan van het unconfined_t domein naar zijn eigen beperkt domein, zullen onbeperkte Linux gebruikers nog steeds vallen onder de beperkingen van dat beperkte domein. Het beveilings voordeel hiervan is dat, zelfs als een Linux gebruiker onbeperkt draait, de toepassing beperkt blijft, en dat daardoor de uitbuiting van een fout in de toepassing beperkt kan worden door de tactiek. Merk op: dit beschermt het systeem niet voor de gebruiker. In plaats daarvan worden de gebruiker en het systeem beschermd tegen mogelijke schade veroorzaakt door een fout in de toepassing.
De volgende beperkte SELinux gebruikers zijn beschikbaar in Fedora 11:
|
Gebruiker
|
Domein
|
X Window systeem
|
su en sudo
|
Uitvoeren in persoonlijke map en /tmp/
|
Netwerken
|
|---|
|
guest_u
|
guest_t
|
nee
|
nee
|
optioneel
|
nee
|
|
xguest_u
|
xguest_t
|
ja
|
nee
|
optioneel
|
alleen Firefox
|
|
user_u
|
user_t
|
ja
|
nee
|
optioneel
|
ja
|
|
staff_u
|
staff_t
|
ja
|
alleen sudo
|
optioneel
|
ja
|
Tabel 4.1. SELinux gebruiker eigenschappen
Linux gebruikers in de guest_t, xguest_t, en user_t domeinen kunnen alleen set user ID (setuid) toepassingen draaien als SELinux tactiek dat toestaat (zoals passwd). Ze kunnen de su en /usr/bin/sudo setuid toepassingen niet draaien, en kunnen daarom deze toepassingen niet gebruiken om de Linux root gebruiker te worden.
Linux gebruikers in het guest_t domein hebben geen netwerk toegang, en kunnen alleen inloggen met een terminal (inclusief ssh; ze kunnen inloggen met ssh, maar kunnen ssh niet gebruiken om te verbinden met andere systemen).
De enigste netwerk toegang die Linux gebruikers in het xguest_t domein hebben is om met Firefox te verbinden met web pagina's.
Linux gebruikers in de xguest_t, user_t en staff_t domeinen kunnen inloggen met het X Window systeem en een terminal.
Standaard hebben Linux gebruikers in het staff_t domein geen rechten om toepassingen met /usr/bin/sudo uit te voeren. Deze rechten moeten ingesteld worden door een beheerder.
Standaard kunnen Linux gebruikers in de guest_t en xguest_t domeinen geen toepassingen in hun persoonlijke mappen of /tmp/ uitvoeren, wat hun tegenhoudt om toepassingen op te starten (welke de rechten van de gebruiker erven) in mappen waartoe ze schrijftoegang hebben. Dit helpt om foutieve of kwaadwillige toepassingen te verhinderen om bestanden waarvan ze eigenaar zijn te veranderen.
Standaard kunnen Linux gebruikers in de
user_t en
staff_t domeinen toepassingen in hun persoonlijke mappen en
/tmp/ uitvoeren. Refereer naar
Paragraaf 6.6, “Booleans voor gebruikers die toepassingen uitvoeren” voor informatie over het toestaan en tegenhouden van gebruikers om toepassingen in hun persoonlijke mappen en
/tmp/ uit te voeren.