Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Přístupová oprávnění k souborům v systému souborů NFS omezují, co můžou uživatelé a skupiny dělat po připojení svazku NAS. Bity režimu jsou klíčovou funkcí oprávnění souborů NFS ve službě Azure NetApp Files.
Bity režimu systému souborů NFS
Bitová oprávnění režimu v systému souborů NFS poskytují základní oprávnění pro soubory a složky pomocí standardní číselné reprezentace řízení přístupu. Bity režimu lze použít s NFSv3 nebo NFSv4.1, ale bity režimu jsou standardní možností pro zabezpečení NFSv3, jak je definováno v RFC-1813. Následující tabulka ukazuje, jak tyto číselné hodnoty odpovídají ovládacím prvkům přístupu.
| Numerický režim bitu |
|---|
| 1 – provést (x) |
| 2 – zápis (w) |
| 3 – zápis/spuštění (wx) |
| 4 – čtení (r) |
| 5 – čtení/spuštění (rx) |
| 6 – čtení/zápis (rw) |
| 7 – čtení/zápis/vykonání (rwx) |
Číselné hodnoty se použijí na různé segmenty řízení přístupu: vlastník, skupina a všichni ostatní, což znamená, že pro základní NFSv3 nejsou zavedené žádné podrobné řízení přístupu uživatelů. Následující obrázek ukazuje příklad, jak může být řízení přístupu bitového režimu vytvořené pro použití s objektem NFSv3.
Azure NetApp Files nepodporuje POSIX ACLs. Jemné seznamy ACL jsou proto možné pouze u NFSv3, pokud používáte svazek stylu zabezpečení NTFS s platným mapováním názvů UNIX na Windows prostřednictvím názvové služby, jako je Active Directory LDAP. Alternativně můžete použít NFSv4.1 s Azure NetApp Files a ACL NFSv4.1.
Následující tabulka porovnává členitost oprávnění mezi bity režimu NFSv3 a seznamy ACL NFSv4.x.
| Bity režimu NFSv3 | Seznamy ACL NFSv4.x |
|---|---|
|
|
Další informace najdete v tématu Vysvětlení seznamů řízení přístupu NFSv4.x.
Rychlé bity, setuid a setgid
Když používáte bity režimu s připojením NFS, vlastnictví souborů a složek závisí na uid a gid uživatele, který tyto soubory a složky vytvořil. Když se navíc proces spustí, spustí se jako uživatel, který ho spustil, a proto by měl odpovídající oprávnění. Při speciálních oprávněních (například setuid, setgidsticky bit) je možné toto chování řídit.
Setuid
Bit setuid je určen písmenem „s“ v prováděcí části bitu vlastníka oprávnění. Bit setuid umožňuje spustitelný soubor spustit jako vlastníka souboru, a ne jako uživatel, který se pokouší soubor spustit. Například aplikace /bin/passwd má ve výchozím nastavení povolený bit setuid, proto se aplikace spustí jako uživatel root, když se uživatel pokusí změnit své heslo.
# ls -la /bin/passwd
-rwsr-xr-x 1 root root 68208 Nov 29 2022 /bin/passwd
setuid Pokud se bit odebere, funkce změny hesla nebude fungovat správně.
# 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
Po obnovení bitu setuid se aplikace passwd spustí jako vlastník (root) a funguje správně, ale pouze pro uživatele, který spouští příkaz passwd.
# 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 nemá žádný vliv na adresáře.
Setgid
Bit setgid lze použít v souborech i adresářích.
S adresáři lze setgid použít jako způsob, jak dědit skupinu vlastníka pro soubory a složky vytvořené pod nadřazeným adresářem s bitovou sadou. Podobně jako setuid, spustitelný bit se změní na "s" nebo "S".
Poznámka:
Velká "S" znamená, že spustitelný bit nebyl nastaven, například pokud oprávnění k adresáři jsou "6" nebo "rw".
Například:
# 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
U souborů se setgid chová podobně setuidjako – spustitelné soubory se spouštějí pomocí oprávnění skupiny vlastníka skupiny. Pokud je uživatel ve skupině vlastníka, znamená to, že uživatel má přístup ke spuštění spustitelného souboru při nastavení setgid. Pokud nejsou ve skupině, nezískají přístup. Pokud například správce chce omezit, kteří uživatelé můžou příkaz spustit mkdir na klientovi, můžou použít setgid.
/bin/mkdir Za normálních okolností má oprávnění 755 s rootovým vlastnictvím. To znamená, že každý může běžet mkdir na klientovi.
# ls -la /bin/mkdir
-rwxr-xr-x 1 root root 88408 Sep 5 2019 /bin/mkdir
Chcete-li změnit chování tak, aby omezilo, kteří uživatelé mohou spustit mkdir příkaz, změňte skupinu, která vlastní mkdir aplikaci, změňte oprávnění na /bin/mkdir 750 a pak přidejte bit setgid do 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
V důsledku toho aplikace běží s oprávněními pro group1. Pokud uživatel není členem group1, uživatel nemá přístup ke spuštění mkdir.
User1 je členem group1, ale user2 není:
# id user1
uid=1001(user1) gid=1001(group1) groups=1001(group1)
# id user2
uid=1002(user2) gid=2002(group2) groups=2002(group2)
Po této změně může běžet user1, mkdir ale user2 nemůže, protože user2 není v group1.
# 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
Rychlý bit
Sticky bit se používá pouze pro adresáře a při použití určuje, které soubory lze v tomto adresáři měnit bez ohledu na jejich oprávnění bitového režimu. Pokud je nastavený rychlý bit, můžou soubory upravovat jenom vlastníci souborů (a root), a to i v případě, že se oprávnění k souborům zobrazují jako 777.
V následujícím příkladu se adresář "sticky" nachází ve svazku Azure NetApp Fils a má široká otevřená oprávnění, ale rychlý bit je nastavený.
# mkdir sticky
# chmod 777 sticky
# chmod o+t sticky
# ls -la | grep sticky
drwxrwxrwt 2 root root 4096 Oct 11 19:24 sticky
Uvnitř složky jsou soubory vlastněné různými uživateli. Všechna mají 777 oprávnění.
# 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
Za normálních okolností by každý mohl tyto soubory upravit nebo odstranit. Vzhledem k tomu, že nadřazená složka má nastavený sticky bit, mohou změny v souborech provádět pouze vlastníci souborů.
Uživatel1 například nemůže upravit ani odstranit 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
Naopak, user2 nemůže upravovat ani odstranit user1-file, protože soubor nevlastní a sticky bit je nastavený v nadřazeném adresáři.
# 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
Uživatel s právy root však stále může soubory odstranit.
# rm UNIX-file
Chcete-li změnit oprávnění uživatele root pro úpravu souborů, musíte omezit práva uživatele root a přiřadit je jinému uživateli prostřednictvím pravidla zásad exportu služby Azure NetApp Files. Další informace naleznete v tématu root squashing.
Umask
V operacích NFS je možné oprávnění řídit prostřednictvím bitů režimu, které využívají číselné atributy k určení přístupu k souborům a složkám. Tyto bity režimu určují atributy čtení, zápisu, spouštění a speciálních atributů. Číselně jsou oprávnění reprezentována takto:
- Execute = 1
- Čtení = 2
- Napište = 4
Celková oprávnění jsou určena sčítáním nebo odečtením kombinace předchozích oprávnění. Například:
- 4 + 2 + 1 = 7 (může dělat vše)
- 4 + 2 = 6 (čtení/zápis)
Další informace naleznete v nápovědě k oprávněním systému UNIX.
Umask je funkce, která správci umožňuje omezit úroveň oprávnění povolených pro klienta. Ve výchozím nastavení je umask pro většinu klientů nastaven na 0022. 0022 znamená, že soubory vytvořené příslušným klientem dostávají přiřazený umask. Umask se odečte od základních oprávnění objektu. Pokud má svazek oprávnění 0777 a je připojený pomocí systému souborů NFS k klientovi s umaskem 0022, objekty zapsané z klienta do tohoto svazku mají přístup 0755 (0777 – 0022).
# umask
0022
# umask -S
u=rwx,g=rx,o=rx
Mnoho operačních systémů ale neumožňuje vytváření souborů s oprávněními ke spuštění, ale umožňují složkám mít správná oprávnění. Soubory vytvořené pomocí umask 0022 proto můžou skončit s oprávněními 0644. Následující příklad používá RHEL 6.5:
# 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