te beheren wanneer je een Linux machine beheert die meerdere gebruikers herbergt, kunnen er momenten zijn waarop je meer controle over die gebruikers moet nemen dan de basisgebruikerstools bieden. Dit idee komt op de voorgrond vooral als je nodig hebt om machtigingen voor bepaalde gebruikers te beheren. Bijvoorbeeld, je hebt een map die moet worden benaderd met lees / schrijf machtigingen door een groep gebruikers en alleen Lees Machtigingen voor een andere groep. Met Linux is dit heel goed mogelijk., Om dit mogelijk te maken, moet u echter eerst begrijpen hoe u met gebruikers kunt werken, via groepen en toegangscontrolelijsten (ACL ‘ s).
we beginnen vanaf het begin met gebruikers en werken ons een weg naar de meer complexe ACL ‘ s. Alles wat je nodig hebt om dit te laten gebeuren zal worden opgenomen in je Linux distributie naar keuze. We zullen niet ingaan op de basisprincipes van gebruikers, als de focus op dit artikel gaat over groepen.,
voor dit stuk ga ik uit van het volgende:
u moet twee gebruikers aanmaken met Gebruikersnamen:
-
olivia
nathan
u moet twee groepen aanmaken:
-
readers
-
editors
Olivia moet lid zijn van de groepsredacteuren, terwijl Nathan lid moet zijn van de groepsreaders. De groep lezers moeten alleen leesrechten hebben voor de directory / DATA, terwijl de groep editors zowel lees-als schrijfrechten moeten hebben voor de directory / DATA., Dit is natuurlijk zeer minimaal, maar het geeft je de basisinformatie die je nodig hebt om de taken uit te breiden om aan je veel grotere behoeften te voldoen.
Ik zal demonstreren op het Ubuntu 16.04 Server platform. De commando ‘ s zullen universeel zijn—het enige verschil zou zijn als uw distributie van keuze geen gebruik maakt van sudo. Als dit het geval is, moet je eerst su naar de root gebruiker om de commando ‘ s uit te geven die sudo nodig hebben in de demonstraties.
gebruikers aanmaken
het eerste wat we moeten doen is de twee gebruikers aanmaken voor ons experiment., Het aanmaken van gebruikers wordt afgehandeld met het useradd Commando. In plaats van simpelweg de gebruikers te creëren, moeten we ze beiden maken met hun eigen home directory ‘ s en ze dan wachtwoorden geven.
het eerste wat we doen is de gebruikers aanmaken. Om dit te doen, geef je de commando ‘ s:
sudo useradd -m oliviasudo useradd -m nathan
We hebben nu onze gebruikers aangemaakt. Als je in de /home directory kijkt, zul je hun respectievelijke huizen vinden (omdat we de-m optie hebben gebruikt, die een home directory aanmaakt).
volgende elke gebruiker moet een wachtwoord hebben., Om wachtwoorden aan de mix toe te voegen, geeft u de volgende opdrachten:
sudo passwd oliviasudo passwd nathan
wanneer u elk commando uitvoert, wordt u gevraagd een nieuw wachtwoord in te voeren (en te verifiëren) voor elke gebruiker.
dat is het, uw gebruikers worden aangemaakt.
groepen aanmaken en gebruikers toevoegen
nu gaan we de groepen readers en editors aanmaken en er gebruikers aan toevoegen. De commando ‘ s om onze groepen aan te maken zijn:
addgroup readersaddgroup editors
dat is het. Als je het commando less /etc/group uitvoert, zie je onze nieuw aangemaakte groepen in de lijst (figuur 1).,
met onze groepen aangemaakt, moeten we onze gebruikers toevoegen. We zullen gebruiker nathan toevoegen aan groep lezers met het commando:
sudo usermod -a -G readers nathan
We zullen de gebruiker olivia toevoegen aan de groep editors met het commando:
sudo usermod -a -G editors olivia
nu zijn we klaar om te beginnen met het beheren van de gebruikers met groepen.,
groepen toegang geven tot mappen
stel dat je de map / READERS hebt en je moet alle leden van de readers groep toegang geven tot die map., Verander eerst de groep van de map met het commando:
sudo chown -R :readers /READERS
Vervolgens verwijderen schrijven toestemming van de groep met het commando:
sudo chmod -R g-w /READERS
Nu we verwijderen de andere x bits van het /de LEZERS directory (om te voorkomen dat een gebruiker niet in de groep lezers van het openen van een bestand binnen) met de opdracht:
sudo chmod -R o-x /READERS
Op dit punt, alleen de eigenaar van de map (root) en de leden van de groep lezers van toegang tot een bestand in /LEZERS.,
stel dat je de directory /EDITORS hebt en dat je leden van de editors groep lees-en schrijfrechten moet geven voor de inhoud ervan. Om dat te doen, zou het volgende commando nodig zijn:
sudo chown -R :editors /EDITORSsudo chmod -R g+w /EDITORSsudo chmod -R o-x /EDITORS
Op dit moment kan elk lid van de editors groep bestanden binnen benaderen en wijzigen. Alle anderen (minus root) hebben geen toegang tot de bestanden en mappen binnen /EDITORS.
het probleem met het gebruik van deze methode is dat u slechts één groep tegelijk aan een map kunt toevoegen. Dit is waar toegangscontrolelijsten van pas komen.,
met behulp van toegangscontrolelijsten
nu, laten we lastig worden. Stel dat je een enkele map—/DATA—en je wilt de leden van de groep lezers lees rechten en leden van de groep editors lees/schrijf rechten te geven. Om dat te doen, moet je gebruik maken van het setfacl Commando. Het commando setfacl stelt bestandstoegangsbeheer lijsten in voor bestanden en mappen.,
de structuur van dit commando ziet er als volgt uit:
setfacl OPTION X:NAME:Y /DIRECTORY
waarbij optie de beschikbare opties is, X is u (voor gebruiker) of g (voor groep), naam is de naam van de gebruiker of groep, en Map is de te gebruiken map. We gebruiken de optie-m voor modify. Dus ons commando om de groepslezer toe te voegen voor leestoegang tot de /DATA directory zou er als volgt uitzien:
sudo setfacl -m g:readers:rx -R /DATA
nu kan elk lid van de readers groep de bestanden in /DATA lezen, maar ze kunnen ze niet wijzigen.,
om leden van de editors-groep lees – /schrijfrechten te geven (met behoud van lees-rechten voor de readers-groep), geven we het commando;
sudo setfacl -m g:editors:rwx -R /DATA
het bovenstaande commando geeft elk lid van de editors-groep zowel lees-als schrijfrechten, met behoud van de alleen-lezen-rechten voor de readers-groep.
alle controle die je nodig hebt
en daar heb je het. U kunt nu leden aan groepen toevoegen en de toegang van die groepen tot verschillende mappen beheren met alle kracht en flexibiliteit die u nodig hebt., Om meer te lezen over de bovenstaande gereedschappen, commando ‘ s uit:
-
man usradd
-
man-addgroup
-
man usermod
-
man sefacl
-
man chown
-
man chmod
Leer meer over Linux via de gratis “Inleiding tot de Linux -” cursus van De Linux Foundation en edX.