GNU/Linux >> Znalost Linux >  >> Linux

Otázky k rozhovoru s Linuxem – Zvláštní oprávnění (SUID, SGID a sticky bit)

Existují dvě speciální oprávnění, která lze nastavit pro spustitelné soubory:Set User ID (setuid) a Set Group ID (sgid). Tato oprávnění umožňují, aby byl spouštěný soubor spuštěn s oprávněními vlastníka nebo skupiny. Podobně existují dvě speciální oprávnění pro adresáře:sticky bit a setgid bit. Níže je uvedeno několik nejčastějších dotazů na rozhovory s Linuxem týkající se speciálních oprávnění, jako je SUID, SGID a sticky bit.

Co je nastavení ID uživatele (setuid)?

SUID je speciální oprávnění přiřazené souboru. Tato oprávnění umožňují, aby byl spouštěný soubor spuštěn s oprávněními vlastníka. Pokud by například soubor vlastnil uživatel root a měl nastavený bit setuid, bez ohledu na to, kdo soubor spustil, vždy by se spouštěl s právy uživatele root.

Jak nastavit bit SUID v souboru?

Chcete-li nastavit bit setuid, musíte být vlastníkem souboru nebo uživatelem root. Spusťte následující příkaz pro nastavení bitu setuid:

# chmod u+s file1

Zobrazte oprávnění pomocí příkazu ls -l:

# ls -l file1
-rwSrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1

Všimněte si velkého S . To znamená, že neexistují žádná oprávnění ke spuštění. Spuštěním následujícího příkazu přidejte oprávnění ke spuštění k souboru file1 a poznamenejte si malá písmena s .

# chmod u+x file1
# ls -l file1
-rwsrw-r-- 1 user1 user1 0 2017-10-29 21:41 file1

Všimněte si malých písmen s. To znamená, že existují oprávnění ke spuštění.

Alternativně můžete nastavit bit setuid pomocí numerické metody přidáním 4 před režim. Chcete-li například nastavit bit setuid, číst, zapisovat a spouštět oprávnění pro vlastníka souboru file1, spusťte následující příkaz:

# chmod 4700 file1

Co je nastavení ID skupiny (setgid) pro soubory?

Když je nastaven bit Set Group ID, spustí se spustitelný soubor s oprávněním skupiny. Pokud by například soubor vlastnila uživatelská skupina, bez ohledu na to, kdo tento soubor spustil, byl by vždy spuštěn s oprávněním skupiny uživatelů.

Jak nastavit bit SGID pro soubory?

Spusťte následující příkaz a nastavte bit setgid pro soubor file1:

# chmod g+s
Poznámka :Bity setuid i setgid se nastavují pomocí symbolu s. Setgid je reprezentován stejně jako setuid bit, s výjimkou skupiny oprávnění.

Spusťte následující příkaz jako root k nastavení bitu setgid a ke čtení, zápisu a spouštění oprávnění pro vlastníka souboru file1:

# chmod 2700 file1

Setgid je reprezentován stejně jako bit setuid, s výjimkou skupiny oprávnění:

ls -l file1
-rwx--S--- 1 user1 user1 0 2017-10-30 21:40 file1

Pomocí příkazu chmod u+s nastavte bit setuid. Pomocí příkazu chmod g+s nastavte bit setgid.

Co je nastavení oprávnění ID skupiny pro adresáře

Když je v adresáři nastaven bit setgid, všechny soubory vytvořené v tomto adresáři zdědí skupinové vlastnictví tohoto adresáře. Například složku folder1 vlastní uživatel user1 a skupina group1:

# ls -ld folder1
drwxrwxr-x 2 user1 group1 4096 2017-10-30 22:25 folder1

Soubory vytvořené ve složce folder1 zdědí členství ve skupině group1:

# touch folder1/file1
# ls -l folder1/file1
-rw-rw-r-- 1 user1 group1 0 2017-10-30 22:29 folder1/file1

Jak nastavit bit SGID pro adresáře?

Chcete-li nastavit bit setgid na adresář, použijte příkaz chmod g+s:

# chmod g+s folder1

Zobrazte oprávnění pomocí příkazu ls -ld a poznamenejte si s ve skupinových oprávněních:

# ls -ld folder1
drwxrwsr-x 2 user1 group1 4096 2017-10-30 22:32 folder1

Případně přidejte před režim adresářů 2:

# chmod 2770 folder1

Co je lepivý bit v adresáři

Když je v adresáři nastaven sticky bit, může soubory v tomto adresáři odstraňovat pouze uživatel root, vlastník adresáře a vlastník souboru.

Jak nastavit lepivý bit

Příkladem lepivého bitu je adresář /tmp. K zobrazení oprávnění použijte příkaz ls -ld /tmp:

# ls -ld /tmp
drwxrwxrwt  24 root root  4096 2017-10-30 22:00 tmp

t na konci symbolizuje, že je nastaven lepivý bit. Soubor vytvořený v adresáři /tmp může odstranit pouze jeho vlastník nebo uživatel root. Například spusťte následující příkaz pro nastavení lepivého bitu pro složku folder1:

# chmod a+t folder1

Případně přidejte před režim adresáře 1, abyste nastavili lepivý bit:

# chmod 1777 folder1

Oprávnění by se měla číst, zapisovat a spouštět pro vlastníka, skupinu a všechny ostatní v adresářích, které mají nastavený lepivý bit. To umožňuje komukoli cd do adresáře a vytvářet soubory.

jak najít soubory s SUID/SGID ale nastaveným

1. Chcete-li najít všechny soubory s SUID, ale nastaveným, použijte níže uvedený příkaz:

# find / -perm +4000

2. Chcete-li najít všechny soubory s nastaveným bitem SGID, použijte níže uvedený příkaz:

# find / -perm +2000

Můžete také zkombinovat oba příkazy a najít soubory SGID i SUID but set.

# find / -type f \\( -perm -4000 -o -perm -2000 \\) -exec ls -l {} \\;
Co je SUID, SGID a Sticky bit?
Linux / UNIX :Jak najít soubory, které mají nastaveno SUID/SGID
Linux / UNIX :Příklady příkazu find k nalezení souborů se specifickými sadami oprávnění Konečný rozhovor s Linuxem otázky :swap


Linux
  1. Cheat sheet pro uživatele Linuxu a oprávnění

  2. Jak najít soubory s oprávněními SUID a SGID v Linuxu

  3. 25 nejčastějších otázek k pohovoru o Linuxu

  1. Oprávnění pro Linux:SUID, SGID a sticky bit

  2. Co je Sticky Bit, SUID a SGID v Linuxu

  3. UNIX / Linux:Jak používat Sticky Bit na adresář a soubor

  1. Linux / UNIX :Jak najít soubory, které mají nastaveno SUID/SGID

  2. Otázky k pohovoru s Linuxem – základní oprávnění k souborům a adresářům

  3. Otázky k rozhovoru pro Linux – Linux Printing (CUPS)