Gebruikers
previous.png
Cursus Linux       Basis       Gebruikers   
gnu.png

up.png Gebruikers en groepen down.png

Linux is een multi-user systeem. Zeker wanneer men het besturings systeem als server wil gebruiken, is het van groot belang dat de beveiliging van het systeem goed geregeld wordt. De eerste stap in deze beveiliging is het beheren van de gebruikers van het systeem. Om dit te bewerkstelligen is het nodig om voor iedere gebruiker een eigen account aan te maken op het systeem, en bovendien de gebruiker lid te laten worden van één of meerdere groepen. In dit hoofdstuk leert men gebruikers en groepen te beheren.
Als laatste leren we hoe een gebruiker/groep verbonden wordt met een bestand, en hoe zowel met de hand als automatisch deze relatie wordt ingesteld.

Wat leren we in dit hoofdstuk ?

up.png 1 Gebruikers aanmaken down.png

Op elk linux systeem heeft men te maken met gebruikers. Voor iedereen die met het systeem aan de slag wil moet er een gebruikers naam bekend zijn. Vervolgens moet er voor iedere gebruiker een omgeving gemaakt worden waarbinnen de gebruiker zijn taken kan uitvoeren.
Deze omgeving bestaat uit:

De gebruiker, en de verzameling van zijn gegevens zoals hierboven aangeduid wordt een account genoemd.
Als men een linux systeem als server wil gebruiken is het aanmaken van gebruiker accounts één van de eerste taken die vervuld moeten worden.
We zullen primair aandacht besteden aan de wijze waarop de gebruikers op het systeem zijn opgeslagen. Dit betekend dat we in eerste instantie zullen kijken naar de configuratie bestanden waarin gebruikers en groepen aangemaakt worden. Wanneer men inzicht heeft in de wijze waarop de gegevens zijn opgeslagen zal men gemakkelijk kunnen begrijpen hoe de verschillende (GUI) tools werken, deze worden dan ook later bekeken.

up.png 1.1 De bestanden /etc/passwd en /etc/shadow down.png

De aloude wijze waarop in een UNIX systeem gebruikers worden aangemaakt is door het aanpassen van het bestand /etc/passwd. Dit is een tekst bestand dat uit meerdere regels bestaat. Op elk van deze regels is een gebruiker gedefiniëerd. Deze definitie bestaat onder andere uit loginnaam, ge-encrypteerd wachtwoord, UID (user id), enzo...

De beveiliging was in de begin dagen van UNIX niet zo erg belangrijk. Vandaar dat in de originele authenticatie procedure iedere gebruiker leesrechten kon uitoefenen op het bestand /etc/passwd. Als een resultaat kan iedere gebruiker het ge-encrypteerde wachtwoord uitlezen. Dit was nodig opdat de login procedure het ingegeven wachtwoord moet kunnen vergelijken met het ingestelde wachtwoord.
Het nadeel van dit systeem is dat dus ook willekeurige gebruikers (zeg maar hackers), ofwel logins die niet in /etc/passwd gedefiniëerd zijn, het /etc/passwd bestand kunnen uitlezen en dus toegang hebben tot het ge-encrypteerde wachtwoord. Het opslaan van de versleutelde wachtwoorden in het bestand /etc/passwd bleek een ernstig veiligheids risico. Om deze reden wordt naast het bestand /etc/passwd gebruik gemaakt van het bestand /etc/shadow om de versleutelde wachtwoorden van de gebruikers in op te slaan. Het belangrijke verschil met /etc/passwd is dat /etc/shadow alleen door de root gebruiker kan gelezen worden. Dit heeft tot gevolg dat gewone gebruikers niet langer het versleutelde wachtwoord kunnen uitlezen.
De bestanden /etc/passwd en /etc/shadow bevatten samen de volledige configuratie van de gebruiker. Het is dus de taak van de beheerder om deze bestanden te kunnen editeren en begrijpen.

up.png 1.2 Gebruikers beheer in een netwerk omgeving down.png

De methode waarbij de gebruikers gedefiniëerd worden in een bestand werkt goed wanneer men hooguit enkele computers in een netwerk moet beheren. Wanneer echter het aantal computers stijgt wordt het bijhouden van alle afzonderlijke tekst bestanden per computer een ondoenbare zaak. Daarom bestaan er verschillende werkwijzen om het beheer van gebruikers in een netwerk van meerdere computers eenvoudig te houden.

up.png 1.2.1 NIS down.png

Een van de eerste methodes is Netwerk Information Systems ofwel NIS. In dit systeem wat reeds behoorlijk lang bestaat wordt op een centrale server het bestand /etc/passwd bijgehouden. Vanuit dit bestand worden vervolgens de zogenaamde NIS mappen gegenereerd. Deze NIS mappen kunnen centraal op een server worden beheerd, de zogenaamde NIS master server. De NIS mappen kunnen ook naar andere servers in het netwerk worden gerepliceerd, de zogenaamde NIS slave servers. Een linux computer in een dergelijk netwerk wordt geconfigureerd als een NIS client. De gebruikers authenticatie wordt aldus ingesteld om gebruik te maken van een NIS server teneinde de gebruiker credentials te kunnen controleren. Het grote voordeel van dit systeem is dat voortaan de gebruikers centraal voor het gehele netwerk kunnen worden onderhouden op één enkel systeem. Een groot nadeel van NIS is dat het moeilijk te beveiligen is en dat er geen ondersteuning is voor het /etc/shadow bestand.

up.png 1.2.2 LDAP down.png

Een moderne manier die vaak gebruik wordt om het beheer van gebruikers en andere netwerk resources te vereenvoudigen, is het Lightweight Directory Access Protocol, LDAP. Op linux is vooral de implementatie OpenLDAP populair, al zijn er ook commerciële directory servers zoals Novells eDirectory die als alternatief kunnen dienen. Het voordeel van een directory service op basis van LDAP is dat hierin gebruik gemaakt kan worden van een hiëarchische structuur: alle gebruikers staan niet langer in een platte database, maar kunnen onderverdeeld worden in containers; men kan deze vergelijken met de mappen zoals die in een bestands systeem worden gebruikt. Ook kan in een LDAP database veel meer informatie gebruikt worden dan de informatie die nodig is om in te loggen op een computer. Om die reden wordt LDAP vaak gebruikt in processionele server omgevingen. In deze module gaan we niet verder in op NIS en LDAP, dit is voor later in de Linux Netwerk Servives module.

up.png 1.2.3 Active Directory down.png

???? De sterke opkomst van de Active Directory service, een windows service, heeft vooral de laatste 2 jaar ervoor gezorgd dat er een aparte linux integratie methode is ontstaan. ????

up.png 1.3 System accounts versus normale gebruikers down.png

In de gebruikers database komen twee soorten gebruikers voor. Zo zijn er de gebruikers die men zelf heeft aangemaakt en die gebruikt worden door de medewerkers van het bedrijf die toegang willen tot bepaalde systeem bronnen. Daarnaast zijn er de zogenaamde service accounts. Dit zijn speciale gebruikers accounts die gebruikt worden om toegangs rechten te verlenen aan toepassingen die op het systeem gebruikt moeten worden. Het voordeel is dat men via een serviceaccount aan een bepaalde service op het netwerk precies die rechten kunt geven die nodig zijn voor die service wat vanuit het oogpunt van beveiliging heel belangrijk is. Zo heeft de Apache-web-server zijn eigen service account. Normaal gezien hoeft de beheerder deze service accounts niet zelf aan te maken, ze worden door de installatie procedure van de services in questie aangemaakt. Laat de instellingen zoals ze zijn, op die manier weet men zeker dat services zoals een netwerk printer of een mailserver goed functioneren.

remark.png Men leert hier hoe men handmatig met een editor gebruikers kan definieren in /etc/passwd. Dit is vooral voor het begrip van de werking van het mechanisme belangrijk. In de dagelijkse praktijk van de beheerder zal men gebruikers aanmaken via één of andere tool. Verderop in dit hoofdstuk maken we kennis met de verschillende tools.

up.png 1.4 Configuratie: /etc/passwd en /etc/shadow down.png

In /etc/passwd komen regels voor en op iedere regel wordt een gebruiker gedefinieerd. Zo'n regel bestaat uit een aantal onderdelen en ieder onderdeel is en specifieke eigenschap van de gebruiker. Ieder onderdeel wordt van het volgende gescheiden door een dubbele punt.
De afzonderlijke onderdelen zijn:

  1. login-naam
  2. wachtwoord of verwijzing naar /etc/shadow
  3. gebruikers-ID (UID)
  4. groeps-ID (GID)
  5. extra informatie
  6. homedirectory
  7. shell

passwd.png

In het bestand /etc/shadow worden zoals vermeld gebruikersnamen en de daarbij behorende versleutelde wachtwoorden opgenomen. Daarnaast is het mogelijk om extra informatie met betrekking tot het wachtwoord op te geven.
De afzonderlijke onderdelen zijn:

shadow.png

up.png 1.4.1 Login naam down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

De login naam is de naam waarmee een gebruiker zich aanmeldt bij het systeem. Men moet ervoor zorgen dat de login-namen op een systeem uniek zijn. Het spreekt vanzelf dat indien men NIS en/of LDAP gebruikt de naam uniek moet zijn voor het gehele netwerk. Indien de naam niet uniek is, is het onmogelijk om onderscheid te maken tussen verschillende gebruikers.
Een goede conventie voor het aanmaken van gebruikers namen (vooral als men dit moet doen voor honderden gebruikers) is het volgende:

Voorbeelden
Naam Login
Valentijn De Dauw vdedauw
Peter De Decker pdedecker
Thierry Möulder tmoulder

warning.png Aangezien deze cursus een voorbereiding is op 'netwerk beheer bij bedrijven' wordt deze conventie door de student gebruikt, telkens hij een account moet aanmaken. Bij het geven van examen punten wordt rekening gehouden met het toepassen van deze regel.

up.png 1.4.2 Wachtwoord down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

Iedereen die op een systeem inlogt hoort een wachtwoord te hebben. Dit wachtwoord beveiligd namelijk de toegang tot de gegevens van de gebruiker. Alleen als het gaat over gebruiker accounts die juist voor algemene toegang zijn aangemaakt, kan ermee volstaan worden een gebruiker geen wachtwoord te geven. Denk daarbij aan accounts als 'anonymous' zoals op FTP servers gebruikelijk.

In het wachtwoord veld kunnen verschillende waarden voorkomen:

versleuteld Een wachtwoord in versleutelde vorm ziet eruit zoals '$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.'
Alle wachtwoorden worden in versleutelde vorm opgeslagen. Dit is om te voorkomen dat wanneer iemand het bestand /etc/passwd of het bestand /etc/shadow kan uitlezen, deze persoon meteen alle wachtwoorden kan uitlezen.
een asterisk (*) Dit is het geval wanneer het een systeem account is waarmee niet kan ingelogd worden.
leeg Wanneer het wachtwoord veld leeg is kan de gebruiker inloggen zonder wachtwoord
Het eerste teken is een uitroepteken Dit betekend dat de account onbruikbaar is gemaakt, zie ook passwd -l
een x Het echte versleutelde wachtwoord bevindt zich in /etc/shadow

up.png 1.4.3 Het user id - UID down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

In het derde veld van het /etc/passwd bestand wordt een uniek getal ingesteld. Het systeem gebruikt dit om een gebruiker te identificeren. Het getal wordt UserID genoemd (UID). De UID is de waarde waarmee het systeem werkt. Dit betekent dat het systeem niet kijkt naar de naam van een gebruiker maar naar de UID van een gebruiker. In principe is de UID voor iedere gebruiker uniek.
De UID 0 heeft een speciale betekenis: de UID wordt gebruikt om een gebruiker aan te duiden die overal alle rechten heeft, de zogeheten superuser. Het UID 0 kan dus gebruikt worden om een gebruiker superuser rechten te geven, naast de reeds bestaande superuser genaamd root. Het gevolg is dat het systeem geen onderscheid meer maakt tussen de gebruiker met UID 0 en de gebruiker root. De bestanden die dan door de reserve-superuser zijn aangemaakt worden dan gemerkt als zijnde van de root user.

up.png 1.4.4 Het group id - GID down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

Elke gebruiker is lid van minimaal één groep. Dit wordt de primaire groep van de gebruiker genoemd.
De groepen die op het systeem voorkomen worden gedefinieerd in het bestand /etc/group. Net zoals een gebruiker heeft ook een groep een uniek identificatie nummer op het systeem, de group-ID (GID).
Doordat de GID van de primaire groep in /etc/passwd vermeld wordt achter de naam van de gebruiker, kan het systeem achterhalen wat de GID van de primaire groep van de gebruiker is.
Naast het lidmaatschap van de primaire groep kan de gebruiker ook nog lid zijn van andere groepen. Op basis van het lidmaatschap van deze groepen verkrijgt de gebruiker extra toegangs rechten in het bestands systeem van linux.

up.png 1.4.5 Informatie down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

Het informatie veld is bedoeld als een plaats om extra informatie over een gebruiker in op te slaan. Meestal wordt dit veld het info-veld genoemd, soms wordt het ook het full-name-veld genoemd. In dit veld kan de systeem beheerder iets meer informatie over een gebruiker opnemen dan alleen diens naam. Hierdoor wordt de herkenbaarheid van een gebruiker vergroot.
In het info-veld kunnen diverse categorien van informatie worden opgegeven. Elke informatie categorie wordt van de vorige gescheiden door een komma. Een aantal van deze extra categorien staat min of meer vast.

Deze informatie kan ingesteld worden met de opdracht chfn. De meeste grafische beheer programma's om gebruikers aan te maken bieden ook een voorziening om deze extra informatie te bewerken. Als met de opdracht finger informatie over een gebruiker wordt gevraagd, wordt de tekst die hier voorkomt getoond.

up.png 1.4.6 Home directory down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

Na het info-veld staat de home directory. Het is gebruikelijk dat deze directory voorkomt onder de directory /home. Men is echter volledig vrij om een andere plaats als home-directory van een gebruiker te kiezen. Een gebruiker heeft normaal gesproken alle rechten in zijn eigen home-directory. Deze directory wordt door de gebruiker gebruikt om zijn bestanden in op te slaan, aan de andere kant wordt de directory gebruikt door het systeem om instellingen t.o.v. de gebruiker in op te slaan.
Als men handmatig het /etc/passwd bestand gaat bewerken dient men er rekening mee te houden dat bij het toevoegen van een gebruiker, de home directory niet automatisch wordt aangemaakt. Men zal zelf met behulp van de opdracht mkdir een home directory moeten aanmaken, en bovendien zal er ook voor moeten zorgen dat de gebruiker eigenaar wordt van zijn eigen home directory. Het aanmaken van een home-directory wordt meestal wel door de utility waarmee men een gebruiker toevoegt gedaan.

remark.png
Skeleton directory
Nadat de home directory van de gebruiker is aangemaakt wordt de inhoud van de skeleton-directory naar de home directory gekopieerd. In deze skeleton directory, meestal /etc/skel, staan een aantal configuratie bestanden klaar voor de nieuwe gebruiker. Met behulp van deze configuratie bestanden wordt de nieuwe gebruikers omgeving op de juiste wijze aangemaakt.

up.png 1.4.7 De shell down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

In het laatste veld van het /etc/passwd bestand wordt aangegeven welke shell na inloggen gebruikt moet worden. Op een LINUX systeem heeft men de keuze uit verschillende shells. (zie vroeger). Hier geeft men aan van welke shell de gebruiker gebruik zal maken. In de praktijk zal hier meestal de naam van de standaard shell (linux=/bin/bash) komen te staan. Daarnaast wordt voor de verschillende systeem accounts aangeduid dat zij geen gebruik maken van een shell met de aanduiding /bin/false. Hierdoor kunnen de systeem accounts ook niet inloggen hetgeen een belangrijke beveiliging is.

up.png 1.4.8 Extra informatie down.png

/etc/passwd : vdedauw:x:1000:1000:Valentijn De Dauw,,,:/home/vdedauw:/bin/bash
/etc/shadow : vdedauw:$1$dXV/1svW$uE7YG7nPMs8ITKbnlz/Pn.:13698:0:99999:7:::

In het bestand /etc/shadow komen verder nog enkele velden voor waarmee men de status van het wachtwoord kan opvolgen, en het gedrag van de account aanpassen naargelang de status ervan.
Het betreft de volgende waarden:

Waarde Eigenschap
aantal dagen sinds 1 januari 1970 dat het wachtwoord is gewijzigd
aantal dagen wachten alvorens het wachtwoord gewijzigd mag worden
aantal dagen waarna het wachtwoord moet ingesteld worden
aantal dagen waarna de gebruiker verwittigd wordt dat het wachtwoord moet ingesteld worden
aantal dagen na verstrijken geldigheid wachtwoord dat account is uitgeschakeld
aantal dagen sinds 1 januari 1970 dat de account uitgeschakeld is

up.png 1.5 Verdere restricties van gebruikers instellen down.png

Behalve de reeds genoemde gebruikers instellingen zijn er nog een aantal andere, de meeste ervan zijn distributie afhankelijk of men kan ze optioneel instellen.

up.png 1.5.1 Gebruikers instellingen met PAM down.png

Naast de mogelijkheden die vernoemd zijn, zijn er meer mogelijkheden om de eigenschappen van gebruikers in te stellen. Hoe dit precies gebeurt verschilt per distributie. Het zogenaamde Pluggable Authentication Modules mechanisme wordt gebruikt om extra (kernel) software modules te activeren waarmee men ten opzichte van account instellingen allerlei dingen kan doen:

Algemeen gesproken kan men niet altijd zeggen op welke wijze gebruikers instellingen verder bepaald worden. Hiervoor is een analyse van de PAM-configuratie nodig.
In een volgende les (advanced) zien we in detail de werking van de PAM configuratie.

up.png 1.5.2 Het configuratie bestand /etc/login.defs down.png

Een configuratie bestand dat in veel gevallen gebruikt wordt is /etc/login.defs. Hierin kunnen algemene bepalingen worden opgenomen die van toepassing zijn bij het aanmaken van een gebruiker. Het bestand /etc/login.defs wordt geïnstalleerd wanneer men gebruik maakt van shadow-wachtwoorden. Dit ASCII bestand kan met een editor als 'vi' worden aangepast. Hieronder volgt een overzicht van een aantal geselecteerde instellingen. Ook op dit vlak zijn er nogal wat verschillen per distributie.
Alleen de eerste 3 instellingen zijn verplicht de rest is optioneel.

MAIL_DIR Geeft de directory waarin de mail-boxen van gebruikers voorkomen
ENV_SUPATH Definieert het zoekpad voor de gebruiker root
ENV_PATH Definieert het zoekpad voor gebruikers waarvan het UID niet 0 is
FAIL_DELAY 1 Aantal seconden na een mislukte poging tot inloggen voordat er weer een login prompt verschijnt
FAILLOG_ENAB yes Houdt in het bestand /var/log/faillog een overzicht van mislukte login pogingen bij.
LASTLOG_ENAB yes zorgt ervoor dat de laatste succesvolle login wordt genoteerd in /var/log/lastlog
LASTLOG_ENAB yes zorgt ervoor dat de laatste succesvolle login wordt genoteerd in /var/log/lastlog
PASS_ALWAYS_WARN yes Geeft een waarschuwing als een wachtwoord te eenvoudig is

Naast de vernoemde instellingen zijn er nog andere, zie man login.defs

up.png 2 Groepen down.png

Het primaire nut van groepen is het toekennen van extra rechten aan gebruikers en systeem services. Door een account lid te maken van een group erft deze account de groups-rechten in het systeem.
Aan elk bestand is naast een gebruiker ook een groep gekoppeld. Op elk systeem komen groepen voor, die worden bijgehouden in het bestand /etc/group. Groepen zijn vooral handig wanneer men meerdere gebruikers dezelfde machtigingen wil geven. Ook bij groepen kan een shadow-bestand voor wachtwoorden gehanteerd worden. Als deze optie wordt ingezet, heeft het shadow bestand de naam /etc/gshadow. Dit bestand is echter minder belangrijk dan het gebruikersbestand /etc/shadow omdat in veel gevallen geen gebruik wordt gemaakt van de groeps wachtwoorden.

up.png 2.1 Standaard groepen down.png

Op elk linux systeem bestaat een aantal standaard groepen. Zo is er in veel gevallen een groep waar alle gebruikers lid van zijn, bijvoorbeeld de groep users. Er zijn ook standaard groepen waardoor bepaalde functionaliteit van het systeem mogelijk wordt gemaakt. Een voorbeeld is de groep deamon, die door het systeem gebruikt wordt om processen op te starten.
Elke gebruiker is altijd lid van minimaal 1 groep. In veel gevallen heet deze groep users, sommige distributies (fedora, redhat, debian) kiezen er echter voor elke gebruiker lid te maken van een groep met dezelfde naam als de gebruikersnaam. De systeem beheerder is vrij om hiervan af te wijken. De eerste groep waar een gebruiker lid van is wordt aangeduid in het bestand /etc/passwd. Dit wordt de primaire groep genoemd. Een gebruiker kan ook lid zijn van andere groepen, de secundaire groepen. Lidmaatschap hiervan wordt geregeld in /etc/group. Zo kan er bijvoorbeeld voor elke afdeling binnen een bedrijf een groep worden aangemaakt. De systeem beheerder kan er dan voor zorgen dat alleen de mensen die tot de afdelings groep behoren rechten hebben in de document directory van die afdeling. Gebruikers die geen lid zijn van de afdelings groep kunnen niet bij deze bestanden komen.

up.png 2.2 Opbouw van /etc/group down.png

In het bestand /etc/group komen vier velden voor

naam De groeps naam, uniek over het algemeen 8 of minder tekens
wachtwoord Hier kan een wachtwoord worden ingesteld. Dit wachtwoord moet door alle gebruikers worden ingegeven voordat ze door middel van de opdracht 'newgrp' deze groep willen gaan gebruiken
group identification (GID) Het unieke getal dat door het besturings systeem wordt gebruikt om met de groep te werken
Gebruikers Alle gebruikers die lid zijn van de groep. Een zogenaamde komma separated lijst.

Een voorbeeld van een /etc/group lijn : floppy:x:25:haldaemon,vdedauw,an,testtest1,testtest2

up.png 2.3 Opbouw van /etc/gshadow down.png

Het bestand /etc/gshadow bevat de schaduw informatie voor groep accounts. Het bevat lijnen waarin de informatie gescheiden is door een dubbele punt.
Velden in /etc/gshadow

group naam de naam van de groep
versleuteld wachtwoord moet ingevuld zijn, ! betekent niet actief
lijst van groep administrators gescheiden door een komma
lijst van groep leden gescheiden door een komma

up.png 2.4 Actieve group down.png

Gebruikers kunnen dus lid zijn van meerdere groepen. Het systeem kan echter maar 1 groep als de actieve groep van een gebruiker herkennen. De primaire group is normaal gezien de actieve group. Dit betekend dat wanneer men een bestand aanmaakt de actieve groep als de groep van dat bestand wordt ingesteld.
Met de opdracht newgrp wordt een nieuwe actieve groep voor de huidige gebruiker ingesteld.
Om met 'newgrp' een nieuwe actieve groep te kunnen instellen moet eerst worden gecontroleerd of men wel voldoende rechten heeft om dit te doen.
Hiervoor bestaan 2 mogelijkheden :

Men kan achterhalen wat op dit moment de actieve groep is met de opdracht groups. Deze opdracht toont de lijst van groepen waarvan de gebruiker lid is, de eerst getoonde groep is de actieve groep. De actieve groep wordt gebruikt als de eigenaar van nieuwe bestanden.

up.png 3 Beheer van gebruikers en groepen down.png

Uit het bovenstaande is gebleken dat het heel goed mogelijk is om gebruikers en/of groepen aan te maken door met een editor het bestand /etc/passwd, /etc/shadow, /etc/group, of /etc/gshadow te bewerken. Deze werkwijze heeft heel wat nadelen. Het eerste nadeel is dat bijkomende instellingen, zoals bv. het aanmaken van een home directory, eveneens met de hand moeten gebeuren. Nog een nadeel is dat men het risico loopt het gehele systeem onbruikbaar te maken door per ongeluk het formaat van een van de bestanden te wijzigen. Verder is het lastiger om de meer geavanceerde instellingen te gebruiken. Om al deze nadelen te vermijden zal men gebruikers en groepen gaan beheren met een aantal opdrachten en utilities. In de volgende paragrafen worden er een aantal in meer detail bekeken.

up.png 3.1 Aanmaken van een gebruikers account met een editor down.png

Als men weet hoe de bestanden /etc/passwd en /etc/shadow opgebouwd zijn kan men met behulp van een ASCII editor een gebruiker aanmaken, simpelweg door deze gebruiker toe te voegen in de betreffende bestanden.
Wanneer men dit gaat doen zijn er een 3-tal zaken die extra aandacht behoeven.

  1. de home-directory moet met de hand aangemaakt worden met bv. het volgende scenario
    mkdir /home/account-naam
    chown gebruikersnaam /home/account-naam
    chmod 700 /home/account-naam
  2. In het wachtwoord veld in /etc/passwd komt een 'x' te staan
    Het wachtwoord veld in /etc/shadow blijft leeg, de systeem beheerder kan het wachtwoord instellen met de passwd opdracht.
  3. Alle velden in /etc/passwd of /etc/shadow waarvan geen gebruik wordt gemaakt blijven leeg.

warning.png Het is van groot belang wanneer men passwd en shadow met de hand bewerkt dat beide bestanden aan alle vereisten voldoen. Als dit namelijk niet het geval is, kan dit ertoe leiden dat niemand nog kan inloggen op het systeem. Om deze reden bestaan er voor het nakijken van de passwd en shadow bestanden een controle programma. Namelijk: pwck

up.png 3.2 Aanmaken van groepen met een editor down.png

Als men weet hoe de bestanden /etc/group en /etc/gshadow opgebouwd zijn kan men met behulp van een editor een groep aanmaken, simpelweg door deze groep toe te voegen in de betreffende bestanden. Het wachtwoord van een groep kan men achteraf instellen met de opdracht passwd -g groepsnaam.

warning.png Wanneer men met de hand de bestanden /etc/group en /etc/gshadow gaat bewerken is het uitermate belangrijk om het formaat van het bestand te respecteren. Indien het formaat van één van deze bestanden niet het verwachte formaat is, dan loopt men het risico dat er niet meer kan ingelogd worden op het systeem. Om deze reden bestaan er zowel voor het nakijken van het group bestand als het gshadow bestand een check programma. Namelijk: grpck

up.png 3.3 Algemene opdrachten down.png

Voor het beheren van gebruikers en groepen bestaan er op alle distributies, en ook op de Unix systemen (Sun Solaris, Apple), een aantal command line utilities. Alhoewel ze per distributie kunnen verschillen. De meest bekende zijn ongetwijfeld 'useradd' en 'groupadd'.

up.png 3.3.1 useradd down.png

Een vrij universele manier om een gebruiker toe te voegen is de opdracht useradd die in de meeste linux distributies voorkomt. Men geeft door middel van een aantal argumenten de nodige informatie op. Daarnaast is het mogelijk om voor 'useradd' een aantal standaard waarden in te stellen. Deze waarden hoeven dan niet voor elke gebruiker opnieuw te worden opgegeven, dit is handig wanneer grote aantallen gebruikers na elkaar moeten worden gedefinieerd. Als men bijvoorbeeld een standaard groep definieert, is het niet langer noodzakelijk dat men bij het aanmaken van elke individuele gebruiker ook nog een groep definieert. Men gebruikt hiervoor useradd met de optie -D gevolgd door parameters waarmee het standaard gedrag verder wordt aangegeven. Als men de opdracht useradd -D gebruikt zonder opties, worden de opties die nu staan ingesteld afgebeeld. Deze standaard waarden worden opgeslagen in het bestand /etc/default/useradd.

up.png 3.3.2 groupadd down.png

Om groepen aan te maken kan gebruik worden gemaakt van de opdracht groupadd. Gebruik van deze opdracht is niet moeilijk, er zijn namelijk maar weinig opties. De meest gebruikte opties zijn -g GID, waarmee het groeps ID wordt aangegeven, en -o waarmee geforceerd kan worden dat een groep een GID krijgt die reeds door een andere groep in gebruik is. Bovendien moet ook de naam van de groep als argument gegeven worden. Als men de groep boekhouders wil maken met GID 123, gebruikt men daarvoor de opdracht groupadd -g 123 boekhouders.

up.png 3.3.3 Andere opdrachten down.png

Naast de boven genoemde opdrachten zijn er nog enkele waarmee gebruikers, groepen, en wachtwoord bestanden onderhouden kunnen worden.
command line utilities voor gebruikers en groep beheer

chfn Wijzigen van de informatie van een gebruiker
chsh Wijzigen login shell van een gebruiker
groupadd toevoegen nieuwe groep
groupmod Wijzigen van een groep
groupdel Verwijderen van een groep
userdel Verwijderen van een gebruiker
usermod Wijzigen van de instellingen van een gebruiker
chage Wijzigen de instellingen in betrekking tot het verloop van wachtwoorden
grpunconv / grpconv Converteer /etc/gshadow wachtwoorden naar /etc/group wachtwoorden en omgekeerd
pwunconv / pwconv Converteer /etc/shadow wachtwoorden naar /etc/passwd wachtwoorden en omgekeerd
id Toont een geconfigureerde gebruiker

up.png 3.4 GNome Users en Groups down.png

Wanneer de grafische omgeving GNOME geinstalleerd is dan is de ulitity 'Users and Groups' eveneens beschikbaar. Het programma kan gevonden worden via de menu in de submenu Systeem. Of het kan gestart worden vanaf een command line met de opdracht users-admin. Wanneer gestart vanaf het menu zal de grafische omgeving ervoor zorgen dat er een wachtwoord moet ingegeven worden om het programma te starten als root gebruiker. Wanneer gestart vanaf de command line kan alleen de root gebruiker dit doen.
Het is geschikt zowel voor gebruikers als voor groepen.
Hieronder volgen een paar screen-shots.

ggroup1.png

gusers1.png

Het programma behandeld hier de zogenaamde gebruikers profielen, rechten worden aan gebruikers gegeven via benoemde profielen, Desktop (desktop gebruiker), Administrator (gebruiker met administrator privileges). Bovendien is er nog een scherm waarmee men de gebruiker bepaalde privileges kan geven.

remark.png Het programma werkt in 2 stappen. Dat wil zeggen zolang men bezig is met het toevoegen of editeren van gebruikers wijzigt er in werkelijkheid niets. De wijzigingen worden opgeslagen in een buffer geheugen en daadwerkelijk uitgevoerd bij het afsluiten van het programma.

up.png 3.5 KDE kuser down.png

Wanneer de grafische omgeving KDE geïnstalleerd is dan is de ulitity (kuser) 'User Manager' eveneens beschikbaar. Het programma kan gevonden worden via de menu in de submenu Systeem. Of het kan gestart worden vanaf een command line met de opdracht kuser. Wanneer gestart vanaf het menu zal de grafische omgeving ervoor zorgen dat er een wachtwoord moet ingegeven worden om het programma te starten als root gebruiker. Wanneer gestart vanaf de command line kan alleen de root gebruiker dit doen.
Het is geschikt zowel voor gebruikers als voor groepen.
Het programma kuser beschikt wel over de mogelijkheid om de wachtwoord tijdstippen in te stellen.
Hieronder volgen een paar screen-shots.

kuser.png

kgroup.png

remark.png Het programma werkt in 2 stappen. Dat wil zeggen zolang men bezig is met het toevoegen of editeren van gebruikers wijzigt er in werkelijkheid niets. De wijzigingen worden opgeslagen in een buffer geheugen en daadwerkelijk uitgevoerd bij het afsluiten van het programma. In het hoofd scherm vindt men wel een button om de wijzigingen weg te schrijven, en dus door te voeren zonder het programma te sluiten.

up.png 3.6 YaST wachtwoord instellingen down.png

YaST de SuSe centrale configureerder kent ook een grafisch gebruikers beheer.

yast.png

up.png 4 Het begrip 'Ownership' down.png

Op een linux systeem hebben de bestaande bestanden en directories een eigenaar en een groep. Met de opdracht ls -l ziet men de de directory listing de eigenaar en de groep van het bestand afgebeeld staan. Zowel de naam van de eigenaar als de naam van de groep worden door ls afgeleid uit de bestanden /etc/passwd en /etc/group.
De inode entry waar bestands-eigenschappen worden bijgehouden onthoud niet de naam van gebruiker, respectievelijk de groep, maar hun nummer. Wanneer de groep en/of de gebruiker van een bestand niet bestaan dan wordt dit nummer afgebeeld inplaats van de naam.
In de afbeelding van hiernaast zijn de kolommen 3 en 4 respectievelijk de eigenaar en de groep van het bestand.
De directory 'testtest2' is aangemaakt door de gebruiker 'testtest2' waarna deze verwijderd is. Dus als ls de naam van de eigenaar en de groep niet kan vinden worden respectievelijk de SUID en SGID gebruikt.

ls-al.png

up.png 4.1 Gebruiker is eigenaar down.png

Als een gebruiker een bestand aanmaakt wordt hij automatisch de eigenaar van dat bestand. Men kan dit controleren met de opdracht ls -l; de naam van de eigenaar staat in de derde kolom.
Als eigenaar van een bestand heeft men altijd het recht om de toegangs-rechten van het bestand te wijzigen.
De enige andere gebruiker die dit ook kan is de root gebruiker.
De opdracht om de eigenaar van het bestand in te stellen is chown.
Bijvoorbeeld om de eigenaar van het bestand /home/vdedauw/test.txt te wijzigen van test in vdedauw geeft men de opdracht:
chown vdedauw /home/vdedauw/test.txt
Dit kan alleen lukken als de huidige gebruiker 'root' is of de gebruiker 'test'.

up.png 4.2 Groep is eigenaar down.png

Op dezelfde wijze als bij de eigenaar van het bestand wordt de groep van een bestand op de actieve groep van de gebruiker gezet op het moment dat het bestand wordt aangemaakt. In principe is de actieve groep van de gebruiker gelijk aan de primaire groep, tenzij deze actieve groep is ingesteld geworden met de opdracht newgrp.
In de ls -l lijst is de groep van een bestand de 4'de kolom.
Met behulp van de opdracht chgrp wordt de groep van een bestand gewijzigd.
Bijvoorbeeld om de groep van het bestand /home/vdedauw/test.txt te wijzigen naar de groep vdedauw geeft men de opdracht :
chgrp vdedauw /home/vdedauw/text.txt

Ook met de opdracht chown kan men de groep instellen met behulp van de volgende syntax :
chown vdedauw.vdedauw /home/vdedauw/test.txt
of als men niet tegelijk de eigenaar en de groep wil instellen
chown .vdedauw /home/vdedauw/test.txt

remark.png Met behulp van de opdracht 'chown' kan men zowel de eigenaar als de groep van een bestand wijzigen.
vb.: chown vdedauw.vdedauw test.txt wijzigt de eigenaar en de groep van het bestand test.txt in één stap.

up.png 5 Wachtwoord reset procedure down.png

Het kan weleens gebeuren dat om een of andere reden de wachtwoorden van de administratieve gebruiker of van de root vergeten zijn. Om deze reden bestaat er een emergency procedure waarmee men ondanks dat men het root wachtwoord niet kent, toch kan binnen komen in een bestaand systeem.
Voorwaarde is natuurlijke de fysieke toegang tot het systeem.

warning.png De eerste voorwaarde om een systeem te beveiligen is ervoor zorgen dat niemand het systeem kan benaderen.
Deze procedure toont aan dat eens men fysieke toegang tot het systeem heeft men ermee kan doen wat men wil.
Globaal genomen is de procedure als volgt:

Op een Ubuntu (Debian) systeem kan men niet inloggen als root (in principe is het root wachtwoord onbekend).
De procedure wordt dan:

De opdracht chroot kan hier geraadpleegd worden.

up.png 6 Gebruik van groepen down.png

Het onderverdelen van gebruikers in groepen gebeurd om verschillende redenen:

Een linux systeem is, min of meer op voorhand al, georganiseerd volgens de administratieve behoeften van het systeem en het bedrijf of organisatie.

up.png 6.1 Oefening 1 down.png

Bekijk de groepen structuur van een standaard Ubuntu systeem (debian) en zoek uit wat je hieruit kunt afleiden.

up.png 6.2 Oefening 2

  1. bepaal een bedrijfs structuur
  2. definieer een aantal groepen, een afspiegeling van de bedrijfs structuur
  3. bepaal voor iedere groep een aantal gebruikers

up.png Samenvatting down.png

In dit hoofdstuk hebben we gezien waar gebruikers en groeps informatie wordt opgeslagen. Daarnaast hebben we gezien hoe we deze informatie kunnen beheren, zowel met eerder eenvoudige command line utilities als met meer geavanceerde grafische programmas. Tot slot hebben we gezien wat eigenaarschap betekend en wat dit voor gevolg heeft voor de bestanden. In combinatie met het volgende hoofdstuk, toegangs rechten, zullen we zien dat linux een waterdichte veiligheid kan implementeren op niveau van de bestanden.

up.png Literatuur down.png



previous.png Gratis Hosting
Cursus Linux       Basis       Gebruikers   
Last modified: do jan 9 15:56:47 CET 2014