Jako začínající uživatel Linuxu se dozvíte o oprávněních a vlastnictví spojených se souborem a adresáři. Operační systémy podobné Linuxu/Unixu umožňují nastavit kombinaci devíti bitových oprávnění, aby se ostatním uživatelům zabránilo v přístupu k nepotřebným souborům/adresářům. Podobná jsou speciální oprávnění pro spustitelné soubory známá jako set UID, set GID a sticky bits.
Pochopení speciálních oprávnění může být pro začínající administrátory Linuxu trochu zdrcující. Zde se dozvíte trochu pozadí běžných oprávnění k souborům a vysvětlíte, jak se liší od zvláštních oprávnění. Demonstrujeme také funkce SetID, GetID a sticky bits s příklady pro komplexní pochopení.
Běžná oprávnění k souborům Linux
Linux používá příkaz chmod přiřadit/změnit čtení (r=4), napsat (w=2) a spustit (x=1) oprávnění k souborům a složkám. To znamená, že výše zmíněných devět bitů platí pro tři hlavní kategorie skupin oprávnění. První tři jsou pro uživatele, který vlastní soubor, druhá sada je pro skupinu přiřazenou k souboru/adresáři a poslední tři představují všechny ostatní uživatele.
Například běžný soubor se všechny typy oprávnění pro všechny kategorie uživatelů zobrazí jako -rwxrwxrwx. Zatímco - nahradí písmena představují absenci tohoto povolení. Nyní chmod příkaz používá čísla a písmena ke změně oprávnění následovně:
sudo chmod 755 soubor #for rwxr-xr-x
soubor sudo chmod 644 #for rw-r--r--
sudo chmod a-w soubor #for r-xr-xr-x
sudo chmod a+x soubor #for --x--x--x
Speciální oprávnění k souborům Linux
The setuid bit představuje oprávnění ke spustitelnému souboru, který mohou spouštět jiní uživatelé s oprávněním vlastníka. Například, když uživatel max spustí příkaz vi jako uživatel John, budete mít oprávnění ke čtení/zápisu John.
K identifikaci souborů s setuid použijte ls příkaz a hledejte s bit místo spustitelného bitu X, jak následuje.
Nastavte bit UID
The setuid bit představuje oprávnění ke spustitelnému souboru, který mohou spouštět jiní uživatelé s oprávněním vlastníka. Například, když uživatel max spustí příkaz vi jako vykořenit, bude mít oprávnění ke čtení/zápisu vykořenit. K identifikaci souborů s setuid použijte ls příkaz a hledejte s bit místo prováděcího bitu X, jak následuje:
ls -la /etc/passwd
-rwsr-xr-x 1 kořenový kořenový adresář 88464 14. prosince 12:46 passwd
Některé další příklady jsou:
ls -la /bin/gpasswd
-rwsr-xr-x 1 root root 88464 Jul 14 15:08 gpasswd
ls -la /bin/su
-rwsr-xr-x 1 root root 67816 Jul 21 2020 Su
ls -la /newgrp
-rwsr-xr-x 1 root root 44784 Jul 14 15:08 newgrp
ls -la /bin/sudo
-rwsr-xr-x 1 kořenový kořenový adresář 166056 19. ledna 2021 sudo
Chcete-li nastavit bit setuid pro spustitelné soubory, použijte příkaz chmod takto:
chmod u+s /etc/passwd
Chcete-li odebrat oprávnění ke spouštění souborů uživatelům nebo vlastníkům bez oprávnění root:
chmod u-s /etc/passwd
Nastavte bit GID
Jak bylo diskutováno, bit set uid řídí přístup k souboru pro ostatní uživatele, zatímco bit setgid (GID) vytváří adresáře pro spolupráci. To znamená, že každý soubor vytvořený v tomto adresáři je přístupný skupině adresáře. Umožňuje tedy všem členům skupiny spouštět spustitelné soubory bez oprávnění vlastníka a chrání je před ostatními uživateli.
Chcete-li vytvořit adresář pro spolupráci v systému Linux, postupujte takto:
Vytvořte skupinu pomocí groupadd příkaz s ID skupiny 415 pro spolupráci:
groupadd -g 415 správci
Pro přidání použijte příkaz usermod Johndo skupiny pro přístup/spuštění souboru.
usermod -aG admins john
Použijte mkdir příkaz k vytvoření adresáře:
mkdir /tmp/collaborative_dir
Použijte chgrp příkaz k přiřazení adresáře k adminů skupina:
chgrp admins /tmp/collaborative_dir
Použijte chmod příkaz ke změně oprávnění k adresáři na 2775. 2 bit zapíná nastavené gid, 7 pro přiřazení plného rwx uživateli a skupině, zatímco 5 (r-w) pro ostatní.
chmod 2775 /tmp/collaborative_dir
Nakonec změňte svůj uživatelský účet na John a vytvořit soubor v adresáři pro spolupráci a zkontrolujte oprávnění k souboru.
su - john
klepněte na /tmp/collaborative_dir/file.txt
Příkaz su vám může způsobit chybu ověřování. V tomto případě zadejte sudo su příkaz pro přepnutí do kořenového adresáře a opětovné spuštění su - john pro změnu uživatelského účtu
Nyní vypište oprávnění ke kontrole GID bitů (bitů) nastavených pro adresář a nově vytvořený soubor.
ls -ld /tmp/collaborative_dir /tmp/collaborative_dir/file.txt
V typickém scénáři bude mít soubor vytvořený uživatelem john přiřazenou skupinu john. Protože soubor vytváříte v nastaveném adresáři bitů GID, přiděluje oprávnění k adminů skupina, takže každý, kdo patří do skupiny, bude mít rád uživatele chris, k němu bude mít přístup.Příbuzný: Jak vytvářet nové soubory v systému Linux pomocí dotyku
Lepkavé kousky
Na rozdíl od bitů SID a GID se lepivé bity liší ve funkčnosti, protože chrání soubory a adresáře před přejmenováním a odstraněním jinými uživateli. Běžné oprávnění k souboru umožňuje každému uživateli s oprávněním pro zápis soubor odstranit nebo přejmenovat. Zatímco s nastaveným lepivým bitem to není možné, pokud nejste uživatelem root nebo vlastníkem souboru.
Ideálním případovým scénářem pro použití lepivých bitů je adresář přístupný všem uživatelům pro vytváření souborů. Použijte například ls -ld příkaz ke kontrole \tmp oprávnění k adresářům, a to následovně:
Můžete si všimnout, že lepkavý kousek t nahrazuje prováděcí bit X. Chcete-li vytvořit adresář s omezeným odstraněním, postupujte podle uvedené sady pokynů:
Nyní vytvořte další adresář v /tmp složka:
mkdir /tmp/new_dir
Změňte oprávnění k souboru na 1777 pro nastavení lepivého bitu (t) a úplný přístup k adresáři:
chmod 1777 /tmp/new_dir
Nyní zkopírujte libovolný soubor z /etc do složky /tmp/new_dir a změnit jeho oprávnění na 666:
cp /etc/ /tmp/new_dir
chmod 666 /tmp/new_dir/services
Chcete-li zobrazit oprávnění, uveďte adresář a veškerý jeho obsah:
ls -ld /tmp/new_dir /tmp/new_dir/services
Místo prováděcího bitu si můžete všimnout lepivého bitu, což znamená, že soubor může smazat pouze root nebo uživatel john, protože soubor je v adresáři s lepivými bity.
Porozumění speciálním oprávněním souborů v Linuxu
Článek ukazuje, jak nastavit tyto bity, aby se zlepšila spolupráce nad sdílenými soubory a adresáři a chránily je před neoprávněným přístupem, spuštěním a smazáním. I když nevytváříte soubory/adresáře s těmito bity, pochopení zvláštních oprávnění k souborům je užitečné v mnoha situacích, zejména při odstraňování problémů nebo jako správce systému. Nerozumné používání těchto bitů může způsobit různé bezpečnostní chyby.
Chcete zachovat oprávnění k souborům při kopírování souborů v systému Linux? Zde je návod, jak to udělat pomocí cp a rsync.
Přečtěte si další
- Linux
- Správa souborů
- Linux

Rumaisa je spisovatelkou na volné noze v MUO. Ušla dlouhou cestu od matematika k nadšenci pro informační bezpečnost a pracuje jako analytička SOC. Mezi její zájmy patří čtení a psaní o nových technologiích, linuxových distribucích a všem kolem Information Security.
Přihlaste se k odběru našeho newsletteru
Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné e-knihy a exkluzivní nabídky!
Chcete-li se přihlásit k odběru, klikněte sem