
Linux is een besturingssysteem voor meerdere gebruikers, dus het maken van meerdere gebruikersaccounts is eenvoudig. Na verloop van tijd is het gemakkelijk om uit het oog te verliezen welke accounts vereist zijn. Door gebruikersaccounts te vermelden, kunt u ze beheren.
Gebruikersaccounts
Vooruitgang in technologie brengt vaak hun eigen nieuwe problemen met zich mee. Zodra computers meerdere gebruikers konden ondersteunen, werd de noodzaak duidelijk om het werk van elke persoon af te schermen en in te kapselen van alle anderen. Dit leidde tot het concept van gebruikersaccounts. Elke gebruiker heeft een benoemde ID en een wachtwoord. Dit zijn de inloggegevens waarmee ze kunnen inloggen op hun account. Hun bestanden worden bewaard in een gebied dat privé is voor elke gebruiker.
Op een druk systeem verlies je gemakkelijk uit het oog welke accounts je hebt aangemaakt en welke niet meer nodig zijn. Vanuit veiligheidsoogpunt is het een slechte gewoonte om gebruikersaccounts te behouden die u niet langer hoeft te configureren en toegankelijk te maken op uw computer. U moet die gebruikers verwijderen.
Zelfs als je geen andere mensen hebt die je computer gebruiken, heb je misschien een aantal accounts aangemaakt om te leren hoe je het moet doen, of om administratieve processen te leren en te oefenen.
De eerste stap is het weergeven van de gebruikersaccounts die op uw computer zijn geconfigureerd. Hiermee kunt u ze bekijken en een oordeel vellen over die kan worden verwijderd. Er zijn verschillende methoden om gebruikers te vermelden. Welke distributie u ook gebruikt, deze technieken zouden voor u moeten werken zonder dat u toepassingen of hulpprogramma’s hoeft te installeren.
Lijst gebruikers met het kat-commando
Een lijst van de geconfigureerde gebruikers wordt bijgehouden, samen met informatie over elke gebruiker, in het bestand “/etc/passwd”. Dit is een tekstbestand dat gewone gebruikers in het terminalvenster kunnen plaatsen. U hoeft niet te gebruiken sudo
om in het bestand “/etc/passwd” te kijken.
We kunnen de cat
commando om de inhoud van het bestand “/etc/passwd” naar het terminalvenster te sturen. Hiermee wordt de volledige inhoud van het bestand weergegeven. Dit betekent dat u ook de vermeldingen ziet voor gebruikersaccounts die eigendom zijn van processen en het systeem, niet van mensen.
cat /etc/passwd
Er is een regel met dichte informatie gerapporteerd voor elk gebruikersaccount.
De informatie voor het gebruikersaccount genaamd “dave” bevat deze stukjes informatie, met dubbele punten “:
” tussen hen.
- dave: De naam van het gebruikersaccount. Meestal de naam van de persoon die eigenaar is van het account.
- x: Dit was ooit het wachtwoord voor het account. Tegenwoordig worden wachtwoorden opgeslagen in het bestand “/etc/shadow”. De “x” betekent dat het wachtwoord in dat bestand staat.
- 1000: De gebruikers-ID voor dit account. Alle gebruikersaccounts hebben een unieke numerieke ID. Normale gebruikersaccounts beginnen meestal bij 1000, waarbij elk nieuw account de volgende gratis ID krijgt, zoals 1001, 1002, enzovoort.
- 1000: De groeps-ID van de standaardgroep waartoe de gebruiker behoort. In normale omstandigheden heeft de standaardgroep dezelfde waarde als de gebruikers-ID.
-
dave,,,: Een verzameling optionele extra informatie over de gebruiker. Dit veld bevat gegevens met komma’s “
,
” tussen hen. Ze kunnen dingen bevatten zoals de volledige naam van de gebruiker, hun kantoornummer en hun telefoonnummer. De invoer voor gebruikersaccount “mary” laat zien dat haar volledige naam Mary Quinn is. - /home/dave: Het pad naar de thuismap van de gebruiker.
- /bin/bash: De standaard shell voor deze gebruiker.
Als we de uitvoer van dit commando via de wc
hulpprogramma en gebruik de -l
(lijnen) optie kunnen we de regels in het bestand tellen. Dat geeft ons het aantal accounts dat op deze computer is geconfigureerd.
cat /etc/passwd | wc -l
Dat cijfer omvat de systeemaccounts en gebruikers die door applicaties zijn gemaakt. Er zijn ongeveer 400 vaste gebruikers geconfigureerd op deze computer. Uw resultaat zal waarschijnlijk een stuk minder zijn.
Met zoveel accounts is het handiger in gebruik less
om het bestand “/etc/passwd” te bekijken.
less /etc/passwd
Gebruik makend van less
stelt u ook in staat om binnen de uitvoer te zoeken, mocht u naar een bepaald gebruikersaccount willen zoeken.
Het awk-commando
De … gebruiken awk
commando kunnen we alleen de gebruikersnaam weergeven. Dit kan handig zijn wanneer u een script schrijft dat iets met veel gebruikersaccounts moet doen. Het opsommen van de namen van de gebruikersaccounts en het omleiden ervan naar een tekstbestand kan veel tijd besparen. Het enige dat u hoeft te doen, is de rest van de opdracht op elke regel kopiëren en plakken.
We vertellen awk om de dubbele punt “:” als veldscheidingsteken te gebruiken en om het eerste veld af te drukken. We gebruiken de -F (veldscheidingsteken) optie.
awk -F: '{print $1}' /etc/passwd
De namen van de gebruikersaccounts worden naar het terminalvenster geschreven zonder enige andere accountinformatie.
Het knippen Commando
We kunnen hetzelfde bereiken met de cut
opdracht. We moeten de gebruiken -d
(scheidingsteken) optie en vraag het om alleen het eerste veld te selecteren, met behulp van de -f
(velden) optie.
cutr -d: -f1
Dit geeft een overzicht van alle gebruikersaccounts, inclusief het systeem en andere niet-menselijke accounts.
Het compgen-commando
De compgen
commando kan worden gebruikt met de -u
(gebruiker) optie om de gebruikersaccounts weer te geven. We sturen de uitvoer door de column
commando om de gebruikersaccounts in kolommen weer te geven, in plaats van één lange lijst met één gebruikersnaam per regel.
compgen -u | column
Nogmaals, de eerste vermelde gebruikersaccounts behoren tot processen, niet tot mensen.
UID MIN en UID MAX
Gebruikersaccounts krijgen een numerieke ID, die we eerder zagen. Gewoonlijk beginnen de gewone menselijke gebruikersaccounts bij 1000, en de systeem-, niet-menselijke gebruikersaccounts beginnen bij 0. De ID van het root-account is 0.
Als we de laagst en hoogst mogelijke gebruikers-ID’s kunnen verifiëren, kunnen we die informatie gebruiken om de gebruikersaccounts te selecteren die tussen die twee waarden liggen. Dat laat ons alleen de gebruikersaccounts selecteren die toebehoren aan echte mensen.
Linux houdt deze twee waarden bij met behulp van configuratieparameters genaamd UID_MIN
en UID_MAX
. Deze worden bewaard in het bestand “/etc/login.defs”. We kunnen deze waarden gemakkelijk zien met grep
.
We gaan de gebruiken -E
(uitgebreide regex) optie. Onze zoekreeks zoekt naar regels die beginnen met “UID_MIN” of “UID_MAX” in het bestand “/etc/login.defs”. het karretje “^
” staat voor het begin van een regel.
grep -E '^UID_MIN|^UID_MAX' /etc/login.defs
Het bereik voor gebruikers-ID’s op deze computer loopt van 1000 tot 60.000.
Het getent Commando
De getent
commando leest informatie uit systeemdatabases. We kunnen het vertellen om de items in het “/etc/passwd”-bestand op te sommen door “passwd” als parameter te gebruiken.
getent passwd
Dit geeft ons dezelfde uitlezing die we kunnen gebruiken cat
. Maar waar getent
schijnt is door waarden te accepteren die bekend staan als ‘sleutels’. Een sleutel bepaalt welke informatie getent
rapporteert over. Als we het item voor een enkele gebruiker willen zien, kunnen we hun gebruikersnaam doorgeven op de opdrachtregel.
getent passwd Sarah
Houd er rekening mee dat de naam van de gebruikersaccount hoofdlettergevoelig is.
getent passwd sarah
We kunnen ook de boven- en ondergrenzen doorgeven van de gebruikersaccount-ID’s die we willen zien. Om absoluut alle reguliere gebruikersaccounts te zien, kunnen we de waarden gebruiken van UID_MIN
en UID_MAX
.
getent passwd {1000..60000}
Dit duurt enige tijd om te draaien. Uiteindelijk keert u terug naar de opdrachtprompt.
De reden voor de lange uitvoeringstijd is dat: getent
probeert overeenkomsten te vinden voor alle gebruikersaccountwaarden tot 60000.
Laten we eens kijken wat de hoogste gebruikersaccount-ID is. We gebruiken de cut
commando, maar deze keer vragen we om veld drie, het veld gebruikers-ID. We sturen de uitvoer door sort
en gebruik de -g
(algemene numerieke sortering) optie.
cut -d: -f3 /etc/passwd | sort -g
De hoogste ID-waarde van een gebruikersaccount dat eigendom is van mensen is 1401.
Gebruikers-ID 65534 is toegewezen aan het systeemconcept “niemand”.
getent passwd {65534..65534}
Dus we weten dat in plaats van de UID_MAX
waarde van 60000, op deze computer kunnen we een meer realistische waarde gebruiken, zoals 1500. Dat zal de zaken aardig versnellen. We zullen ook de uitvoer doorsluizen cut
om alleen de namen van de gebruikersaccounts te extraheren.
getent passwd {1000..1500} | knippen -d: -f1
De gebruikers worden vermeld en we keren onmiddellijk terug naar de opdrachtprompt.
In plaats van de uitvoer er doorheen te leiden cut
laten we de uitvoer doorleiden wc
en tel de regels nog een keer. Dat geeft ons het aantal “echte” gebruikersaccounts.
getent passwd {1000..1500} | wc -l
We kunnen nu zien dat er op deze computer definitief 400 geconfigureerde gebruikersaccounts zijn die eigendom zijn van mensen.
Kracht en eenvoud
Een van deze technieken zal zeker aan uw behoeften voldoen wanneer u de gebruikersaccounts op een Linux-computer moet bekijken. Deze commando’s zouden aanwezig moeten zijn op alle distributies, en geen van hen vereist: sudo
toegang, zodat ze allemaal beschikbaar zijn voor elke gebruiker.