RHCSA-serien: Brug af ACL'er (adgangskontrolister) og montering af Samba/NFS-aktier - Del 7


I den sidste artikel (RHCSA-serien del 6) begyndte vi at forklare, hvordan man opsætter og konfigurerer lokal systemlagring ved hjælp af parted og ssm.

Vi diskuterede også, hvordan man opretter og monterer krypterede diskenheder med en adgangskode under systemstart. Derudover advarede vi dig om at undgå at udføre kritiske lagerstyringshandlinger på monterede filsystemer. Med det i tankerne vil vi nu gennemgå de mest anvendte filsystemformater i Red Hat Enterprise Linux 7 og derefter fortsætte med at dække emnerne om montering, brug og afmontering af både manuelt og automatisk netværksfilsystemer (CIFS og NFS) sammen med implementeringen af lister til adgangskontrol til dit system.

Inden du fortsætter, skal du sørge for, at du har en Samba-server og en NFS-server tilgængelig (bemærk, at NFSv2 ikke længere understøttes i RHEL 7).

I denne vejledning bruger vi en maskine med IP 192.168.0.10 med begge tjenester, der kører som server, og en RHEL 7-boks som klient med IP-adresse 192.168.0.18. Senere i artiklen fortæller vi dig, hvilke pakker du skal installere på klienten.

Filsystemformater i RHEL 7

Begyndende med RHEL 7 er XFS blevet introduceret som standardfilsystemet til alle arkitekturer på grund af dets høje ydeevne og skalerbarhed. Den understøtter i øjeblikket en maksimal filsystemstørrelse på 500 TB i henhold til de seneste tests udført af Red Hat og dets partnere for mainstream-hardware.

XFS muliggør også user_xattr (udvidede brugerattributter) og acl (POSIX-adgangskontrollister) som standardmonteringsindstillinger i modsætning til ext3 eller ext4 (ext2 anses for at være udfaset fra RHEL 7 ), hvilket betyder, at du ikke behøver at specificere disse indstillinger eksplicit hverken på kommandolinjen eller i/etc/fstab, når du monterer et XFS-filsystem (hvis du vil deaktivere sådanne indstillinger i dette sidste tilfælde, skal du eksplicit bruge < b> no_acl og no_user_xattr ).

Husk, at de udvidede brugerattributter kan tildeles filer og mapper til lagring af vilkårlige yderligere oplysninger såsom mime-typen, tegnsættet eller kodningen af en fil, mens adgangstilladelserne til brugerattributter er defineret af de almindelige filtilladelsesbits.

Da enhver systemadministrator, enten nybegynder eller ekspert, er fortrolig med regelmæssige adgangstilladelser til filer og kataloger, der specificerer bestemte privilegier (læse, skrive og udføre) for ejeren, gruppen og "verdenen" (alle andre) . Du er dog velkommen til at henvise til del 3 i RHCSA-serien, hvis du har brug for at opdatere din hukommelse lidt.

Da standard ugo/rwx-sættet ikke tillader konfiguration af forskellige tilladelser for forskellige brugere, blev der imidlertid indført ACL'er for at definere mere detaljerede adgangsrettigheder til filer og mapper end de, der er angivet af almindelige tilladelser.

Faktisk er ACL-definerede tilladelser et supersæt af de tilladelser, der er angivet af filtilladelsesbitene. Lad os se, hvordan alt dette oversættes, anvendes i den virkelige verden.

1. Der er to typer ACL'er: adgangs-ACL'er, der kan anvendes på enten en bestemt fil eller en mappe) og standard-ACL'er, som kun kan anvendes på en mappe. Hvis filer deri ikke har et ACL-sæt, arver de standard-ACL'en i deres overordnede bibliotek.

2. Til at begynde med kan ACL'er konfigureres pr. Bruger, pr. Gruppe eller pr. Bruger, der ikke er i filens ejergruppe.

3. ACL'er indstilles (og fjernes) ved hjælp af setfacl med henholdsvis valgmulighederne -m eller -x.

Lad os for eksempel oprette en gruppe ved navn tecmint og tilføje brugere johndoe og davenull til den:

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

Og lad os kontrollere, at begge brugere tilhører supplerende gruppetekst:

# id johndoe
# id davenull

Lad os nu oprette et bibliotek, der hedder legeplads inden for/mnt, og en fil med navnet testfile.txt indeni. Vi indstiller gruppeejeren til tecmint og ændrer dens standard ugo/rwx-tilladelser til 770 (læs, skriv og udfør tilladelser, der er givet til både ejeren og gruppeejeren af filen):

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

Skift derefter bruger til johndoe og davenull, i den rækkefølge, og skriv til filen:

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

Så langt så godt. Lad os nu have bruger gacanepa til at skrive til filen - og skrivehandlingen mislykkes, hvilket man kunne forvente.

Men hvad hvis vi faktisk har brug for bruger gacanepa (der ikke er medlem af gruppetecmint) for at have skrivetilladelser på /mnt/playground/testfile.txt? Den første ting, der kan komme til at tænke dig, er at føje den brugerkonto til gruppeteknet. Men det giver ham skrivetilladelser til ALLE filer, hvis skrivebiten er indstillet til gruppen, og det ønsker vi ikke. Vi vil kun have, at han kan skrive til /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

Lad os give bruger gacanepa læse- og skriveadgang til /mnt/playground/testfile.txt.

Kør som rod,

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

og du har tilføjet en ACL, der gør det muligt for gacanepa at skrive til testfilen. Skift derefter til bruger gacanepa, og prøv at skrive til filen igen:

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

For at se ACL'erne for en bestemt fil eller mappe skal du bruge getfacl:

# getfacl /mnt/playground/testfile.txt

For at indstille en standard-ACL til en mappe (som dens indhold arver, medmindre andet overskrives), skal du tilføje d: før reglen og angive en mappe i stedet for et filnavn:

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

ACL ovenfor tillader brugere, der ikke er i ejergruppen, at have læseadgang til det fremtidige indhold i/mnt/legepladsmappen. Bemærk forskellen i output fra getfacl/mnt/legeplads før og efter ændringen:

Kapitel 20 i den officielle RHEL 7 Storage Administration Guide indeholder flere ACL-eksempler, og jeg anbefaler stærkt, at du kigger på det og har det praktisk som reference.