Megosztás a következőn keresztül:


Az Azure NetApp Files módbitjeinek ismertetése

Az NFS fájlhozzáférés-engedélyei korlátozzák, hogy a felhasználók és csoportok mit tehetnek a NAS-kötet csatlakoztatása után. A módbitek az Azure NetApp Files NFS-fájlengedélyeinek kulcsfontosságú funkciói.

NFS mód bitjei

Az NFS módbitengedélyei alapszintű engedélyeket biztosítanak a fájlokhoz és mappákhoz a hozzáférés-vezérlők szabványos numerikus ábrázolása használatával. A módbitek NFSv3 vagy NFSv4.1 esetén is használhatók, de a módbitek az RFC-1813-ban meghatározott NFSv3 biztonságossá tételének szabványos módjai. Az alábbi táblázat bemutatja, hogy ezek a numerikus értékek hogyan felelnek meg a hozzáférési vezérlőknek.

Módbit numerikus
1 – végrehajtás (x)
2 – írás (w)
3 – írás/végrehajtás (wx)
4 – olvasás (r)
5 – olvasás/végrehajtás (rx)
6 – olvasás/írás (rw)
7 – olvasás/írás/végrehajtás (rwx)

A rendszer numerikus értékeket alkalmaz a hozzáférés-vezérlés különböző szegmenseire: tulajdonosra, csoportra és mindenki másra, ami azt jelenti, hogy nincsenek részletes felhasználói hozzáférés-vezérlők az alapszintű NFSv3-hoz. Az alábbi képen egy példa látható arra, hogyan hozható létre módbites hozzáférés-vezérlés NFSv3 objektummal való használatra.

.

Az Azure NetApp Files nem támogatja a POSIX ACL-eket. Így az NFSv3 csak akkor lehetséges részletes ACL-ekkel, ha érvényes UNIX- és Windows-névleképezéseket tartalmazó NTFS biztonsági stílusú kötetet használ egy névszolgáltatáson, például az Active Directory LDAP-n keresztül. Alternatív megoldásként használhatja az NFSv4.1-et az Azure NetApp Files és az NFSv4.1 ACL-ek használatával.

Az alábbi táblázat összehasonlítja az NFSv3 módú bitek és az NFSv4.x ACL-ek engedélyeinek részletességét.

NFSv3 módú bitek NFSv4.x ACL-ek
  • Felhasználói azonosító beállítása végrehajtáshoz (setuid)
  • Csoportazonosító beállítása végrehajtáshoz (setgid)
  • Felcserélt szöveg mentése (ragacsos bit)
  • Olvasási engedély a tulajdonos számára
  • Írási engedély a tulajdonos számára
  • A fájl tulajdonosának engedélyének végrehajtása; vagy keressen (keresési) engedélyt a tulajdonos számára a címtárban
  • Olvasási engedély csoporthoz
  • Írási engedély csoporthoz
  • Csoport engedélyének végrehajtása egy fájlon; vagy keressen (keresési) engedélyt a címtárban lévő csoporthoz
  • Olvasási engedély másoknak
  • Írási engedély másoknak
  • Más fájlokra vonatkozó engedélyek végrehajtása; vagy keressen (keresési) engedélyt mások számára a címtárban
  • ACE-típusok (Engedélyezés/Megtagadás/Naplózás)
  • Öröklési jelzők:
  • címtár-öröklődés
  • fájl öröklése
  • nem propagálás-öröklődés
  • csak öröklődő
  • Engedélyek:
  • read-data (fájlok) / list-directory (könyvtárak)
  • write-data (files) / create-file (könyvtárak)
  • append-data (files) / create-subdirectory (könyvtárak)
  • végrehajtás (fájlok) / change-directory (könyvtárak)
  • Töröl
  • delete-child
  • olvasási attribútumok
  • írási attribútumok
  • read-named-attributes
  • write-named-attributes
  • read-ACL
  • write-ACL
  • írás-tulajdonos
  • Szinkronizálás

További információ: Az NFSv4.x hozzáférés-vezérlési listák ismertetése.

Ragadós bitek, setuid és setgid

Ha módbiteket használ NFS-csatlakoztatásokkal, a fájlok és mappák tulajdonjoga a uid fájlokat és mappákat létrehozó felhasználótól gid és felhasználótól függ. Emellett amikor egy folyamat fut, az a felhasználóként fut, aki elindítja, és így rendelkezik a megfelelő engedélyekkel. Speciális engedélyekkel (például setuid, setgidragadós bittel) ez a viselkedés szabályozható.

Setuid

A setuid bitet egy "s" jelöli ki az engedély tulajdonosi bitjének végrehajtási részében. A setuid bit lehetővé teszi a végrehajtható fájlok futtatását a fájl tulajdonosaként, nem pedig a fájlt végrehajtó felhasználóként. Az alkalmazás például /bin/passwd alapértelmezés szerint engedélyezve van, setuid ezért az alkalmazás gyökérként fut, amikor egy felhasználó megpróbálja módosítani a jelszavát.

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

Ha a setuid bit el lett távolítva, a jelszómódosítási funkció nem fog megfelelően működni.

# 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

setuid A bit visszaállításakor a passwd alkalmazás tulajdonosként (gyökérként) fut, és megfelelően működik, de csak a passwd parancsot futtató felhasználó számára.

# 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

A Setuid nincs hatással a könyvtárakra.

Setgid

A setgid bit fájlokon és könyvtárakon egyaránt használható.

Könyvtárak esetén a setgid használatával örökölheti a szülőkönyvtár alatt létrehozott fájlok és mappák tulajdonoscsoportját a bitkészlettel. A végrehajtható bit például setuid"s" vagy "S" értékre módosul.

Feljegyzés

Az "S" nagybetű azt jelenti, hogy a végrehajtható bit nincs beállítva, például ha a könyvtár engedélyei "6" vagy "rw".

Példa:

# 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

Fájlok esetében a setgid ugyanúgy viselkedik, mint setuid– a végrehajtható fájlok a csoporttulajdonos csoportengedélyei alapján futnak. Ha egy felhasználó a tulajdonoscsoportban van, az említett felhasználónak hozzáférése van a végrehajtható fájl futtatásához a setgid beállításakor. Ha nincsenek a csoportban, nem kapnak hozzáférést. Ha például egy rendszergazda korlátozni szeretné, hogy mely felhasználók futtathatják a parancsot egy ügyfélen, használhatják a mkdir setgid parancsot.

Általában 755 jogosultsággal rendelkezik, /bin/mkdir fő tulajdonjoggal. Ez azt jelenti, hogy bárki futtathat mkdir egy ügyfelet.

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

Ha úgy szeretné módosítani a viselkedést, hogy korlátozza, hogy mely felhasználók futtathatják a mkdir parancsot, módosítsa az alkalmazás tulajdonoscsoportját mkdir , módosítsa az engedélyeket 750-re /bin/mkdir , majd adja hozzá a setgid bitet 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

Ennek eredményeképpen az alkalmazás a következő engedélyekkel group1fut: . Ha a felhasználó nem tagja group1, a felhasználó nem kap hozzáférést a futtatáshoz mkdir.

User1group1tagja, de user2 nem:

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

A módosítás után futtatható, user1 de user2 azóta nem user2group1.mkdir

# 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

Ragadós bit

A ragadós bit csak könyvtárakhoz használható, és használat esetén szabályozza, hogy mely fájlok módosíthatók az adott könyvtárban a módbit-engedélyektől függetlenül. Ha be van állítva egy ragadós bit, csak a fájltulajdonosok (és a gyökér) módosíthatják a fájlokat, még akkor is, ha a fájlengedélyek "777" néven jelennek meg.

A következő példában a "ragadós" könyvtár egy Azure NetApp Fils-kötetben található, és széles körű nyitott engedélyekkel rendelkezik, de a ragadós bit be van állítva.

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

A mappában különböző felhasználók által birtokolt fájlok találhatók. Mindegyiknek 777 engedélye van.

# 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

Általában bárki módosíthatja vagy törölheti ezeket a fájlokat. Mivel azonban a szülőmappa ragacsos bitkészlettel rendelkezik, csak a fájltulajdonosok módosíthatják a fájlokat.

Az 1. felhasználó például nem módosíthatja és nem törölheti user2-filea következőt:

# 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

Ezzel szemben nem módosítható és nem törölhetőuser1-file, mivel nem rendelkeznek a fájl tulajdonosával, user2 és a ragadós bit be van állítva a szülőkönyvtárban.

# 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

A gyökér azonban továbbra is eltávolíthatja a fájlokat.

# rm UNIX-file 

Ha módosítani szeretné a gyökérfájlokat a fájlok módosításához, egy másik felhasználóhoz kell a rootot egy Azure NetApp Files exportálási szabályzatszabály alapján módosítania. További információkért lásd a gyökér összenyomását.

Umask

Az NFS-műveletekben az engedélyek módbitekkel vezérelhetők, amelyek numerikus attribútumokkal határozzák meg a fájl- és mappahozzáférést. Ezek a módbitek határozzák meg az olvasási, írási, végrehajtási és speciális attribútumokat. Numerikusan az engedélyek a következőképpen jelennek meg:

  • Végrehajtás = 1
  • Olvasás = 2
  • Írás = 4

A teljes engedélyek az előzőek kombinációjának hozzáadásával vagy kivonásával határozhatók meg. Példa:

  • 4 + 2 + 1 = 7 (mindenre képes)
  • 4 + 2 = 6 (olvasás/írás)

További információ: UNIX-engedélyek súgója.

Az Umask egy olyan funkció, amellyel a rendszergazda korlátozhatja az ügyfél számára engedélyezett engedélyek szintjét. Alapértelmezés szerint a legtöbb ügyfél umask értéke 0022. A 0022 azt jelenti, hogy az ügyfélből létrehozott fájlok az adott umaszkhoz vannak rendelve. A rendszer kivonja az umaszkot az objektum alapengedélyeiből. Ha egy kötet 0777 engedélyekkel rendelkezik, és NFS használatával van csatlakoztatva egy 0022 umaszkot tartalmazó ügyfélhez, az ügyféltől a kötethez írt objektumok 0755 hozzáféréssel rendelkeznek (0777 – 0022).

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

Sok operációs rendszer azonban nem engedélyezi a fájlok végrehajtási engedélyekkel való létrehozását, de lehetővé teszik a mappák számára a megfelelő engedélyekkel való létrehozását. Így a 0022 umaszkgal létrehozott fájlok 0644 engedélyekkel végződhetnek. Az alábbi példa az RHEL 6.5-öt használja:

# 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

Következő lépések