RHCSA Serie: Gebruik ACL’s (Toegangscontrollijsten) en monteer Samba / NFS-shares – Deel 7

In het laatste artikel (RHCSA serie deel 6) hebben we begonnen met het uitleg hoe u lokale systeemopslag opzetten en configureren met behulp van parted en ssm.

RHCSA Series:: Configure ACL’s and Mounting NFS / Samba Shares – Part 7

We hebben ook geprobeerd u te vertellen hoe u versleutelde volumes met een wachtwoord kan maken en monteren tijdens het opstarten van het systeem. Daarnaast waarschuwden we u ervoor om belangrijke opslagbeheeroperaties op ge montede bestandssystemen uit te voeren. Met dit in achterdenk gebruiken we nu de meest gebruikte bestandssysteemformaten in Red Hat Enterprise Linux 7 en ga dan over naar de onderwerpen van het monteren, gebruiken en ontmontage van zowel handmatig als automatisch netwerkbestandssystemen (CIFS en NFS), samen met de implementatie van toegangslijsten voor uw systeem.

Vereisten

Voordat u verder gaat, zorg ervoor dat u een Samba server en een NFS server hebt beschikbaar (merk op dat NFSv2 niet langer wordt ondersteund in RHEL 7).

Tijdens deze gids zullen we een machine gebruiken met IP 192.168.0.10 die zowel diensten als server draait, en een RHEL 7 station als client met de IP-adres 192.168.0.18. later in het artikel vertellen we u welke pakketten u op de client moeten installeren.

Bestandssysteemformaten in RHEL 7

Vanaf RHEL 7 is XFS ingevoerd als standaard bestandssysteem voor alle architecturen vanwege zijn hoge prestaties en schaalbaarheid. Hij ondersteunt momenteel een maximum bestandssysteemgrootte van 500 TB volgens de laatste testen die zijn uitgevoerd door Red Hat en zijn partners voor mainstream hardware.

Ook ondersteunt XFS user_xattr (uitgebreide gebruikersattributen) en acl (POSIX-toegangslijsten) als standaard mountopties, in tegenstelling tot ext3 of ext4 (ext2 wordt sinds RHEL 7 als verouderd beschouwd), wat betekent dat u deze opties niet expliciet moet opgeven op de commandoregel of in /etc/fstab bij het monteren van een XFS-bestandssysteem (als u deze opties in dit laatste geval wilt uitschakelen, moet u expliciet no_acl en no_user_xattr gebruiken).

Onthoud dat uitgebreide gebruikersattributen aan bestanden en directory’s kunnen worden toegekend voor het opslaan van arbitraire aanvullende informatie, zoals de MIME-type, tekenset of code van een bestand, terwijl de toegangsrechten voor gebruikersattributen worden bepaald door de gewone bestandstoegangsbits.

Toegangslijstenbeheer

Zoals elke systeembeheerder, zowel beginner als expert, goed bekend is met reguliere toegangsrechten op bestanden en mappen, die bepaalde privileges (lezen, schrijven en uitvoeren) specificeren voor de eigenaar, de groep en “de wereld” (alle anderen). Voel je echter vrij om te verwijzen naar Deel 3 van de RHCSA-serie als je je geheugen een beetje wilt opfrissen.

Maar aangezien de standaard ugo/rwx set niet toestaat om verschillende rechten te configureren voor verschillende gebruikers, werden ACL’s geïntroduceerd om meer gedetailleerde toegangsrechten voor bestanden en mappen te definiëren dan die gespecificeerd door reguliere rechten.

Feitelijk zijn de door ACL’s gedefinieerde machtigingen een superset van de machtigingen gespecificeerd door de bestandstoestemming bits. Laten we eens kijken hoe dit allemaal wordt toegepast in de echte wereld.

1. Er zijn twee soorten ACL’s: toegangs-ACL’s, die kunnen worden toegepast op een specifiek bestand of een map, en standaard-ACL’s, die alleen kunnen worden toegepast op een map. Als bestanden daarin geen ACL hebben ingesteld, erven ze de standaard ACL van hun oudermap.

2. Om te beginnen kunnen ACL’s geconfigureerd worden per gebruiker, per groep of per een gebruiker die niet in de eigenaarsgroep van een bestand zit.

3. ACL’s worden ingesteld (en verwijderd) met behulp van setfacl, met respectievelijk de opties -m of -x.

Bijvoorbeeld, laten we een groep genaamd tecmint aanmaken en gebruikers johndoe en davenull eraan toevoegen:

# groupadd tecmint
# useradd johndoe
# useradd davenull
# usermod -a -G tecmint johndoe
# usermod -a -G tecmint davenull

En laten we verifiëren dat beide gebruikers tot de aanvullende groep tecmint behoren:

# id johndoe
# id davenull
Verify Users

Laten we nu een map genaamd playground aanmaken binnen /mnt, en een bestand genaamd testfile.txt erin. We zullen de groepseigenaar instellen op tecmint en de standaard ugo/rwx machtigingen wijzigen naar 770 (lees-, schrijf- en uitvoermachtigingen verleend aan zowel de eigenaar als de groepseigenaar van het bestand):

# mkdir /mnt/playground
# touch /mnt/playground/testfile.txt
# chmod 770 /mnt/playground/testfile.txt

Vervolgens schakelen we over naar gebruiker johndoe en davenull, achtereenvolgens, en schrijven naar het bestand:

echo "My name is John Doe" > /mnt/playground/testfile.txt
echo "My name is Dave Null" >> /mnt/playground/testfile.txt

Zover, zo goed. Laten we nu gebruiker gacanepa laten schrijven naar het bestand – en de schrijfoperatie zal mislukken, zoals verwacht was.

Maar wat als we eigenlijk willen dat gebruiker gacanepa (die geen lid is van groep tecmint) schrijfmachtigingen heeft op /mnt/playground/testfile.txt? Het eerste wat in je opkomt is om dat gebruikersaccount toe te voegen aan groep tecmint. Maar dat zal hem schrijfmachtigingen geven voor ALLE bestanden waar de schrijfbit is ingesteld voor de groep, en dat willen we niet. We willen alleen dat hij kan schrijven naar /mnt/playground/testfile.txt.

# touch /mnt/playground/testfile.txt
# chown :tecmint /mnt/playground/testfile.txt
# chmod 777 /mnt/playground/testfile.txt
# su johndoe
$ echo "My name is John Doe" > /mnt/playground/testfile.txt
$ su davenull
$ echo "My name is Dave Null" >> /mnt/playground/testfile.txt
$ su gacanepa
$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt
Manage User Permissions

Geef de gebruiker gacanepa lees- en schrijftoegang tot /mnt/playground/testfile.txt.

Als root uitvoeren,

# setfacl -R -m u:gacanepa:rwx /mnt/playground

en je hebt succesvol een ACL toegevoegd die gacanepa toestaan om naar het testbestand te schrijven. Verander dan naar de gebruiker gacanepa en probeer opnieuw naar het bestand te schrijven:

$ echo "My name is Gabriel Canepa" >> /mnt/playground/testfile.txt

Om de ACLs voor een specifiek bestand of directory te bekijken, gebruik getfacl:

# getfacl /mnt/playground/testfile.txt
Check ACLs of Files

Om een default ACL aan een directory te zetten (die zijn inhoud erft, tenzij anders overschreven), voeg d: voor de regel toe en specificeer een directory in plaats van een bestandsnaam:

# setfacl -m d:o:r /mnt/playground

De bovenstaande ACL zal gebruikers die niet tot de eigenaargroep behoren toestaan om leestoegang te hebben tot de toekomstige inhoud van de /mnt/playground directory. Noteer de verschillen in de uitvoer van getfacl /mnt/playground voor en na de wijziging:

Set Default ACL in Linux

Hoofdstuk 20 in het officiële RHEL 7 Storage Administration Guide biedt meer ACL-voorbeelden, en ik raadt u aan om dit te bekijken en gemakkelijk ter hand te hebben als referentie.

Source:
https://www.tecmint.com/rhcsa-exam-configure-acls-and-mount-nfs-samba-shares/