Delen via


Informatie over modus-bits in Azure NetApp Files

Machtigingen voor bestandstoegang in NFS beperken wat gebruikers en groepen kunnen doen zodra een NAS-volume is gekoppeld. Modus-bits zijn een belangrijke functie van NFS-bestandsmachtigingen in Azure NetApp Files.

NFS-modus bits

Modus-bitsmachtigingen in NFS bieden basismachtigingen voor bestanden en mappen, met behulp van een standaard numerieke weergave van toegangsbeheer. Modus bits kunnen worden gebruikt met NFSv3 of NFSv4.1, maar modus bits zijn de standaardoptie voor het beveiligen van NFSv3 zoals gedefinieerd in RFC-1813. In de volgende tabel ziet u hoe deze numerieke waarden overeenkomen met besturingselementen voor toegang.

Modus-bits numeriek
1 – uitvoeren (x)
2 – schrijven (w)
3 – schrijven/uitvoeren (wx)
4 – lezen (r)
5 – lezen/uitvoeren (rx)
6 – lezen/schrijven (rw)
7 – lezen/schrijven/uitvoeren (rwx)

Numerieke waarden worden toegepast op verschillende segmenten van een toegangsbeheer: eigenaar, groep en iedereen, wat betekent dat er geen gedetailleerde besturingselementen voor gebruikerstoegang aanwezig zijn voor basic NFSv3. In de volgende afbeelding ziet u een voorbeeld van hoe een modus-bits toegangsbeheer kan worden samengesteld voor gebruik met een NFSv3-object.

.

Azure NetApp Files biedt geen ondersteuning voor POSIX-ACL's. Gedetailleerde ACL's zijn dus alleen mogelijk met NFSv3 wanneer u een NTFS-beveiligingsstijlvolume met geldige UNIX-naar-Windows-naamtoewijzingen gebruikt via een naamservice zoals Active Directory LDAP. U kunt ook NFSv4.1 gebruiken met Azure NetApp Files en NFSv4.1 ACL's.

De volgende tabel vergelijkt de machtiginggranulariteit tussen NFSv3-modus-bits en NFSv4.x ACL's.

NFSv3-modus bits NFSv4.x ACL's
  • Gebruikers-id instellen bij uitvoering (setuid)
  • Groeps-id instellen bij uitvoering (setgid)
  • Gewisselde tekst opslaan (plakbit)
  • Leesmachtiging voor eigenaar
  • Schrijfmachtiging voor eigenaar
  • Machtiging uitvoeren voor de eigenaar van een bestand; of zoekmachtiging (zoekmachtiging) voor eigenaar in map
  • Leesmachtiging voor groep
  • Schrijfmachtiging voor groep
  • Machtiging uitvoeren voor groep op een bestand; of zoekmachtiging (zoekmachtiging) voor groep in map
  • Leesmachtiging voor anderen
  • Schrijfmachtiging voor anderen
  • Machtiging uitvoeren voor anderen in een bestand; of zoekmachtiging (zoekmachtiging) voor anderen in de map
  • ACE-typen (toestaan/weigeren/controleren)
  • Overnamevlagmen:
  • directory overnemen
  • bestand overnemen
  • no-propagate-inherit
  • alleen overnemen
  • Machtigingen:
  • read-data (bestanden) / list-directory (directory's)
  • write-data (bestanden) / create-file (mappen)
  • append-data (bestanden) / create-subdirectory (directory's)
  • uitvoeren (bestanden) / change-directory (directory's)
  • Verwijderen
  • onderliggend item verwijderen
  • read-attributes
  • write-attributes
  • read-named-attributes
  • write-named-attributes
  • read-ACL
  • write-ACL
  • write-owner
  • Synchroniseren

Zie NFSv4.x-toegangsbeheerlijsten begrijpen voor meer informatie.

Plak bits, setuid en setgid

Wanneer u modus-bits met NFS-koppelingen gebruikt, is het eigendom van bestanden en mappen gebaseerd op de uid en gid van de gebruiker die de bestanden en mappen heeft gemaakt. Wanneer een proces wordt uitgevoerd, wordt het uitgevoerd als de gebruiker die het proces heeft gestart, en heeft het dus de bijbehorende machtigingen. Met speciale machtigingen (zoals setuid, setgidplakbit) kan dit gedrag worden beheerd.

Setuid

De setuid bit wordt aangewezen door een 's' in het uitvoergedeelte van de eigenaar-bit van een machtiging. Met de setuid bit kan een uitvoerbaar bestand worden uitgevoerd als de eigenaar van het bestand in plaats van als de gebruiker die het bestand probeert uit te voeren. De /bin/passwd toepassing heeft bijvoorbeeld standaard de setuid bit ingeschakeld, waardoor de toepassing wordt uitgevoerd als hoofdmap wanneer een gebruiker probeert zijn wachtwoord te wijzigen.

# ls -la /bin/passwd 
-rwsr-xr-x 1 root root 68208 Nov 29  2022 /bin/passwd

Als de setuid bit wordt verwijderd, werkt de functionaliteit voor wachtwoordwijziging niet goed.

# ls -la /bin/passwd
-rwxr-xr-x 1 root root 68208 Nov 29  2022 /bin/passwd
user2@parisi-ubuntu:/mnt$ passwd
Changing password for user2.
Current password: 
New password: 
Retype new password: 
passwd: Authentication token manipulation error
passwd: password unchanged

Wanneer de setuid bit wordt hersteld, wordt de passwd-toepassing uitgevoerd als de eigenaar (root) en werkt deze goed, maar alleen voor de gebruiker die de passwd-opdracht uitvoert.

# chmod u+s /bin/passwd
# ls -la /bin/passwd
-rwsr-xr-x 1 root root 68208 Nov 29  2022 /bin/passwd
# su user2
user2@parisi-ubuntu:/mnt$ passwd user1
passwd: You may not view or modify password information for user1.
user2@parisi-ubuntu:/mnt$ passwd
Changing password for user2.
Current password: 
New password: 
Retype new password: 
passwd: password updated successfully

Setuid heeft geen effect op mappen.

Setgid

De setgid bit kan worden gebruikt voor zowel bestanden als mappen.

Met mappen kan setgid worden gebruikt als een manier om de eigenaarsgroep over te nemen voor bestanden en mappen die onder de bovenliggende map zijn gemaakt met de bitset. De uitvoerbare bit wordt bijvoorbeeld setuidgewijzigd in een 's' of 'S'.

Notitie

Hoofdletter 'S' betekent dat de uitvoerbare bit niet is ingesteld, bijvoorbeeld als de machtigingen voor de map '6' of 'rw' zijn.

Voorbeeld:

# chmod g+s testdir
# ls -la | grep testdir
drwxrwSrw-  2 user1 group1     4096 Oct 11 16:34 testdir
# who
root     ttyS0        2023-10-11 16:28
# touch testdir/file
# ls -la testdir
total 8
drwxrwSrw- 2 user1 group1 4096 Oct 11 17:09 .
drwxrwxrwx 5 root  root   4096 Oct 11 16:37 ..
-rw-r--r-- 1 root  group1    0 Oct 11 17:09 file

Voor bestanden gedraagt setgid zich op dezelfde manier als setuiduitvoerbare bestanden die worden uitgevoerd met behulp van de groepsmachtigingen van de groepseigenaar. Als een gebruiker zich in de eigenaarsgroep bevindt, heeft de gebruiker toegang om het uitvoerbare bestand uit te voeren wanneer setgid is ingesteld. Als ze zich niet in de groep bevinden, krijgen ze geen toegang. Als een beheerder bijvoorbeeld wil beperken welke gebruikers de mkdir opdracht op een client kunnen uitvoeren, kunnen ze setgid gebruiken.

Normaal gesproken /bin/mkdir heeft u 755 machtigingen met hoofdeigendom. Dit betekent dat iedereen op een client kan worden uitgevoerd mkdir .

# ls -la /bin/mkdir 
-rwxr-xr-x 1 root root 88408 Sep  5  2019 /bin/mkdir

Als u het gedrag wilt wijzigen om te beperken welke gebruikers de mkdir opdracht kunnen uitvoeren, wijzigt u de groep die eigenaar is van de mkdir toepassing, wijzigt u de machtigingen voor /bin/mkdir 750 en voegt u vervolgens de setgid-bit toe aan mkdir.

# chgrp group1 /bin/mkdir
# chmod g+s /bin/mkdir
# chmod 750 /bin/mkdir
# ls -la /bin/mkdir
-rwxr-s--- 1 root group1 88408 Sep  5  2019 /bin/mkdir

Als gevolg hiervan wordt de toepassing uitgevoerd met machtigingen voor group1. Als de gebruiker geen lid is van group1, krijgt de gebruiker geen toegang om uit te voeren mkdir.

User1 is lid van group1, maar user2 niet:

# id user1
uid=1001(user1) gid=1001(group1) groups=1001(group1)
# id user2
uid=1002(user2) gid=2002(group2) groups=2002(group2)

Na deze wijziging kan deze worden uitgevoerd, user1 maar user2 niet omdat user2 het niet in group1mkdirstaat is.

# su user1
$ mkdir test
$ ls -la | grep test
drwxr-xr-x  2 user1 group1     4096 Oct 11 18:48 test

# su user2
$ mkdir user2-test
bash: /usr/bin/mkdir: Permission denied

Plakbit

De plak-bit wordt alleen gebruikt voor mappen en, wanneer gebruikt, bepaalt welke bestanden in die map kunnen worden gewijzigd, ongeacht hun modus bitmachtigingen. Wanneer een plak-bit is ingesteld, kunnen alleen bestandseigenaren (en root) bestanden wijzigen, zelfs als bestandsmachtigingen worden weergegeven als '777'.

In het volgende voorbeeld bevindt de map 'plakkerig' zich in een Azure NetApp Fils-volume en heeft brede open machtigingen, maar de plak-bit is ingesteld.

# mkdir sticky
# chmod 777 sticky
# chmod o+t sticky
# ls -la | grep sticky
drwxrwxrwt  2 root  root       4096 Oct 11 19:24 sticky

In de map bevinden zich bestanden die eigendom zijn van verschillende gebruikers. Ze hebben allemaal 777 machtigingen.

# ls -la
total 8
drwxrwxrwt 2 root     root   4096 Oct 11 19:29 .
drwxrwxrwx 8 root     root   4096 Oct 11 19:24 ..
-rwxr-xr-x 1 user2    group1    0 Oct 11 19:29 4913
-rwxrwxrwx 1 UNIXuser group1   40 Oct 11 19:28 UNIX-file
-rwxrwxrwx 1 user1    group1   33 Oct 11 19:27 user1-file
-rwxrwxrwx 1 user2    group1   34 Oct 11 19:27 user2-file

Normaal gesproken zou iedereen deze bestanden kunnen wijzigen of verwijderen. Maar omdat de bovenliggende map een plak-bits set heeft, kunnen alleen de bestandseigenaren wijzigingen aanbrengen in de bestanden.

Gebruiker1 kan bijvoorbeeld niet wijzigen of verwijderen user2-file:

# su user1
$ vi user2-file
Only user2 can modify this file.
Hi
~
"user2-file"
"user2-file" E212: Can't open file for writing
$ rm user2-file 
rm: can't remove 'user2-file': Operation not permitted

Omgekeerd kan het bestand niet worden gewijzigd of verwijderduser1-file, user2 omdat ze geen eigenaar zijn van het bestand en de plak-bit is ingesteld op de bovenliggende map.

# su user2
$ vi user1-file
Only user1 can modify this file.
Hi
~
"user1-file"
"user1-file" E212: Can't open file for writing
$ rm user1-file 
rm: can't remove 'user1-file': Operation not permitted

Root kan de bestanden echter nog steeds verwijderen.

# rm UNIX-file 

Als u de mogelijkheid van root wilt wijzigen om bestanden te wijzigen, moet u rooten naar een andere gebruiker via een Azure NetApp Files-exportbeleidsregel. Zie root squashing voor meer informatie.

Umask

In NFS-bewerkingen kunnen machtigingen worden beheerd via modus-bits, die gebruikmaken van numerieke kenmerken om de toegang tot bestanden en mappen te bepalen. Deze modus-bits bepalen lees-, schrijf-, uitvoer- en speciale kenmerken. Numeriek worden machtigingen weergegeven als:

  • Execute = 1
  • Lezen = 2
  • Schrijven = 4

Totaal aantal machtigingen wordt bepaald door een combinatie van de voorgaande op te tellen of af te trekken. Voorbeeld:

  • 4 + 2 + 1 = 7 (kan alles doen)
  • 4 + 2 = 6 (lezen/schrijven)

Zie de Help voor UNIX-machtigingen voor meer informatie.

Umask is een functionaliteit waarmee een beheerder het machtigingsniveau voor een client kan beperken. De umask voor de meeste clients is standaard ingesteld op 0022. 0022 betekent dat bestanden die zijn gemaakt op basis van die client, die umask zijn toegewezen. De umask wordt afgetrokken van de basismachtigingen van het object. Als een volume 0777 machtigingen heeft en wordt gekoppeld met NFS aan een client met een umask van 0022, hebben objecten die van de client naar dat volume zijn geschreven 0755-toegang (0777 – 0022).

# umask
0022
# umask -S
u=rwx,g=rx,o=rx 

Veel besturingssystemen staan echter niet toe dat bestanden worden gemaakt met uitvoermachtigingen, maar ze staan wel toe dat mappen over de juiste machtigingen beschikken. Bestanden die zijn gemaakt met een umask van 0022, kunnen dus eindigen met machtigingen van 0644. In het volgende voorbeeld wordt RHEL 6.5 gebruikt:

# umask
0022
# cd /cdot
# mkdir umask_dir
# ls -la | grep umask_dir
drwxr-xr-x.  2 root     root         4096 Apr 23 14:39 umask_dir

# touch umask_file
# ls -la | grep umask_file
-rw-r--r--.  1 root     root            0 Apr 23 14:39 umask_file

Volgende stappen