Linux je operační systém pro více uživatelů, což znamená, že podporuje více uživatelů najednou.
Protože k systému může přistupovat mnoho lidí současně a některé zdroje jsou sdíleny, Linux řídí přístup prostřednictvím vlastnictví a oprávnění.
Vlastnictví souborů Linux
V Linuxu existují tři typy vlastníků:user , group a others .
Uživatel systému Linux
Uživatel je výchozím vlastníkem a tvůrcem souboru. Tento uživatel se tedy také nazývá vlastník.
Skupina Linux
Uživatelská skupina je sbírka uživatelů. Uživatelé, kteří patří do skupiny, budou mít stejná oprávnění skupiny Linux pro přístup k souboru/složce.
Skupiny můžete použít k hromadnému přidělování oprávnění namísto jejich přidělování jednotlivě. Uživatel může patřit také do více než jedné skupiny.
Jiné
Všichni uživatelé, kteří nejsou součástí tříd uživatelů nebo skupin, patří do této třídy.
Oprávnění souborů Linux
Oprávnění souborů spadají do tří kategorií:read , write a execute .
Oprávnění ke čtení
U běžných souborů umožňují oprávnění ke čtení uživatelům soubor pouze otevřít a číst. Uživatelé nemohou soubor upravovat.
Podobně pro adresáře umožňují oprávnění ke čtení výpis obsahu adresáře bez jakýchkoliv úprav v adresáři.
Oprávnění k zápisu
Když mají soubory oprávnění k zápisu, uživatel může upravit (upravit, smazat) soubor a uložit jej.
U složek umožňují oprávnění k zápisu uživateli upravovat jejich obsah (vytvářet, mazat a přejmenovávat soubory v nich) a upravovat obsah souborů, do kterých má uživatel oprávnění k zápisu.
Oprávnění k provedení
U souborů oprávnění ke spuštění umožňuje uživateli spustit spustitelný skript. U adresářů k nim má uživatel přístup a má přístup k podrobnostem o souborech v adresáři.
Níže je symbolické znázornění oprávnění pro uživatele, skupinu a další.
Všimněte si, že oprávnění souborů a složek můžeme najít pomocí dlouhého výpisu (ls -l ) na linuxovém terminálu.
Ve výše uvedeném výstupu d představuje adresář a- představuje běžný soubor.
Jak změnit oprávnění v Linuxu pomocí chmod Příkaz
Nyní, když známe základy vlastnictví a oprávnění, pojďme se podívat, jak můžeme upravit oprávnění pomocí chmod příkaz.
Syntaxe chmod :
chmod permissions filename Kde,
permissionslze číst, zapisovat, spouštět nebo je kombinovat.filenameje název souboru, pro který je třeba změnit oprávnění. Tento parametr může být také seznam souborů ke změně oprávnění hromadně.
Oprávnění můžeme změnit pomocí dvou režimů:
- Symbolický režim :tato metoda používá symboly jako
u,g,ozastupovat uživatele, skupiny a další. Oprávnění jsou reprezentována jakor, w, xpro čtení, zápis a spouštění. Oprávnění můžete upravit pomocí +, - a =. - Absolutní režim :tato metoda představuje oprávnění jako 3místná osmičková čísla v rozsahu od 0 do 7.
Nyní se na ně podívejme podrobně.
Jak změnit oprávnění pomocí symbolického režimu
Níže uvedená tabulka shrnuje reprezentaci uživatele:
| Zastoupení uživatele | Popis |
|---|---|
| u | uživatel/vlastník |
| g | skupina |
| o | jiné |
K přidávání, odebírání a přidělování oprávnění můžeme použít matematické operátory. Níže uvedená tabulka ukazuje shrnutí:
| Operátor | Popis |
|---|---|
| + | Přidá oprávnění k souboru nebo adresáři |
| – | Odebere oprávnění |
| = | Nastaví oprávnění, pokud předtím nebylo přítomno. Také přepíše oprávnění, pokud byla nastavena dříve. |
Příklad:
Předpokládejme, že mám skript a chci jej nastavit jako spustitelný pro vlastníka souboru zaira .
Aktuální oprávnění k souboru jsou následující:
Rozdělme oprávnění takto:
Chcete-li přidat práva k provedení (x ) vlastníkovi (u ) pomocí symbolického režimu můžeme použít příkaz níže:
chmod u+x mymotd.sh Výstup:
Nyní vidíme, že byla přidána oprávnění k provádění pro vlastníka zaira .
Další příklady pro změnu oprávnění pomocí symbolické metody:
- Odebírání
readawriteoprávnění progroupaothers:chmod go-rw. - Odebírání
readoprávnění proothers:chmod o-r. - Přiřazení
writeoprávnění kegroupa přepsání stávajícího oprávnění:chmod g=w.
Jak změnit oprávnění pomocí absolutního režimu
Absolutní režim používá čísla k vyjádření oprávnění a matematické operátory k jejich úpravě.
Níže uvedená tabulka ukazuje, jak můžeme přiřadit příslušná oprávnění:
| Povolení | Poskytněte oprávnění |
|---|---|
| přečíst | přidat 4 |
| pište | přidat 2 |
| provést | přidat 1 |
Oprávnění lze zrušit pomocí odečítání. Níže uvedená tabulka ukazuje, jak můžete odebrat příslušná oprávnění.
| Povolení | Zrušit oprávnění |
|---|---|
| přečíst | odečíst 4 |
| pište | odečíst 2 |
| provést | odečíst 1 |
Příklad :
- Nastavte
read(přidejte 4) prouser,read(přidejte 4) aexecute(přidejte 1) pro skupinu a pouzeexecute(přidejte 1) pro ostatní.
chmod 451 file-name
Takto jsme provedli výpočet:
Všimněte si, že toto je stejné jako r--r-x--x .
- Odeberte
executionpráva odotheragroup.
Chcete-li odebrat spuštění z other a group , odečtěte 1 od prováděcí části posledních 2 oktetů.

- Přiřadit
read,writeaexecuteuser,readaexecutedogroupa pouzereadostatním.
To by bylo stejné jako rwxr-xr-- .
Jak změnit vlastnictví pomocí chown Příkaz
Dále se naučíme, jak změnit vlastnictví souboru. Vlastnictví souboru nebo složky můžete změnit pomocí chown příkaz. V některých případech změna vlastnictví vyžaduje sudo oprávnění.
Syntaxe chown :
chown user filename
Jak změnit vlastnictví uživatele pomocí chown
Pojďme převést vlastnictví od uživatele zaira uživateli news .
chown news mymotd.sh
Příkaz ke změně vlastnictví:sudo chown news mymotd.sh
Výstup:
Jak současně změnit vlastnictví uživatele a skupiny
Můžeme také použít chown pro změnu uživatele a skupiny současně.
chown user:group filename Jak změnit vlastnictví adresáře
Vlastnictví obsahu v adresáři můžete změnit rekurzivně. Níže uvedený příklad mění vlastnictví /opt/script složku, kterou uživatel povolí admin .
chown -R admin /opt/script Jak změnit vlastnictví skupiny
V případě, že potřebujeme změnit pouze vlastníka skupiny, můžeme použít chown před název skupiny dvojtečkou :
chown :admins /opt/script Prováděné cvičení oprávněními pro Linux
Až dosud jsme zkoumali oprávnění, vlastnictví a způsoby, jak je změnit. Nyní posílíme naše učení pomocí řízeného cvičení.
Cíl :K vytváření skupin a přidělování příslušných oprávnění jejich členům. Ověřte přístup přístupem od neoprávněných uživatelů.
Úkol :Vytvořte skupinu s názvem dev-team a přidejte k němu dva členy (Johna a Boba). Vytvořte složku /home/dev-team a změnit vlastnictví na skupinu dev-team . Ověřte, zda jsou oba uživatelé v dev-team skupina přečetla a napište přístup ke složce.
Vytvořte další skupinu project-manager a přidejte uživatele Fatima k tomu. Ověřte, zda je složka /home/dev-team je přístupný pro Fatima .
Vizualizace problému
Problém si můžeme představit takto:
Krok 1:Přepněte na uživatele root.
Přepněte na uživatele root, abychom měli práva k vytváření nových uživatelů a skupin.
Zobrazit nápovědu
Použijte sudo příkaz s příznakem i .
Pokud máte heslo root, můžete se přihlásit také pomocí něj.
Zobrazit řešení
Zadejte sudo -i pro přepnutí na uživatele root.
Zadejte whoami abyste zjistili, zda jste uživatel root:

Pokud nemáte root přístup, použijte příkazy s připojením sudo .
Krok 2:Vytvořte skupinu dev-team
Zobrazit nápovědu
Použijte groupadd příkaz.
Syntaxe:groupadd group-name
Zobrazit řešení
Zadejte groupadd dev-team vytvořit dev-team skupina
Ověřte:cat /etc/group | grep dev-team
Krok 3:Vytvořte dva nové uživatele Johna a Boba a přidejte je do dev-team skupina
Zobrazit nápovědu
Použijte příkaz useradd .
useradd vytvoří nového uživatele a přidá ho do zadané skupiny.
Syntaxe:useradd -G groupname username
Kde -G určuje skupinu.
Zobrazit řešení
useradd -G dev-team John
useradd -G dev-team Bob
Ověřte:cat /etc/group | grep dev-team

Krok 4:Zadejte hesla pro uživatele John a Bob
Zobrazit nápovědu
Použijte příkaz passwd
passwd vytvoří heslo pro uživatele.
Syntaxe:passwd username
Zobrazit řešení
passwd John
passwd Bob
Krok 5:Vytvořte adresář v /home a pojmenujte jej dev-team
Zobrazit nápovědu
Použijte příkaz mkdir
mkdir vytvoří adresář.
Syntaxe:mkdir directory-name
Zobrazit řešení
mkdir /home/dev-team
Ověřte:

Krok 6:Změňte skupinové vlastnictví složky dev-team do skupiny dev-team
Zobrazit nápovědu
Použijte příkaz chown
Syntaxe:chown :group-name folder
Zobrazit řešení
chown :dev-team /home/dev-team/

Krok 7:Zkontrolujte oprávnění složky dev-team umožnit členům skupiny vytvářet a mazat soubory.
Zobrazit nápovědu
Použijte příkaz chmod
Oprávnění k zápisu umožňují uživatelům a skupinám vytvářet a mazat soubory.
Syntaxe:chmod permissions folder
Zobrazit řešení
chmod g+w /home/dev-team/

Krok 8:Ujistěte se, že „ostatní“ nemají žádný přístup k souborům dev-team složka.
Zobrazit nápovědu
Použijte příkaz chmod
Odeberte oprávnění ke čtení, zápisu a spouštění od „ostatních“, pokud existují.
Syntaxe:chmod permissions folder
Zobrazit řešení
chmod o-rx dev-team

Krok 9:Ukončete root relaci a přepněte na John
Zobrazit nápovědu
Použijte příkaz exit k odhlášení uživatele root.
Použijte su přepnout uživatele.
Syntaxe:su - user
Pro potvrzení aktuálního uživatele použijte příkaz whoami .
Zobrazit řešení
exit
su - John
Ověřte pomocí příkazu whoami .
Krok 10:Přejděte do složky:/home/dev-team
Zobrazit nápovědu
Použijte příkaz cd pro přepínání složek.
Syntaxe:cd /path/to/folder
Potvrďte aktuální cestu pomocí pwd .
Zobrazit řešení
cd /home/dev-team
Krok 11:Vytvořte prázdný soubor ve složce:/home/dev-team
Zobrazit nápovědu
Použijte příkaz touch vytvořit prázdný soubor.
Syntaxe:touch filename
Zobrazit řešení
touch john-file.txt
Ověřte:ls -lrt

Krok 12:Změňte skupinové vlastnictví vytvořeného souboru na dev-team a ověřit.
Zobrazit nápovědu
Použijte příkaz chown změnit vlastnictví.
Syntaxe:chown :group file-name
Zobrazit řešení
chown :dev-team john-file.txt
Po úpravě vlastnictví skupiny budou mít k tomuto souboru přístup všichni členové skupiny.
Ověřte ls -lrt

Krok 13:Opusťte shell a přepněte na uživatele Bob
Zobrazit nápovědu
Použijte příkaz exit pro ukončení terminálu.
Použijte su přepnout uživatele.
Syntaxe:su - user
Pro potvrzení aktuálního uživatele použijte příkaz whoami .
Zobrazit řešení
exit
su - Bob
Ověřte aktuálního uživatele příkazem whoami .
Krok 14:Přejděte na cestu /home/dev-team
Zobrazit nápovědu
Použijte příkaz cd pro přepínání složek.
Syntaxe:cd /path/to/folder
Potvrďte aktuální cestu pomocí pwd .
Zobrazit řešení
cd /home/dev-team
Krok 15:Zjistěte Bob's oprávnění pro přístup k souboru john-file.txt
Zobrazit nápovědu
Použijte příkaz ls -l pro dlouhý seznam.
Syntaxe:ls -l | grep file-name
Má skupina rw- oprávnění?
Zobrazit řešení
ls -l | grep john-file.txt

Krok 16:Upravte soubor john-file.txt při přihlášení jako Bob
Zobrazit nápovědu
Použijte příkaz echo přidat nějaký text do souboru.
Syntaxe:echo "Some text" >>file-name
To by přesměrovalo text v uvozovkách na konec souboru.
Zobrazit řešení
echo "This is Bob's comment" > john-file.txt
Pokud jsou všechna oprávnění správně nastavena, Bob bude moci tento soubor upravit a uložit. V opačném případě by se zobrazila tato chyba:Permission denied .
Ověřte cat john-file.txt

Krok 17:Vytvořte další skupinu project-manager a přiřadit člena Fatima k tomuu
Zobrazit nápovědu
Použijte příkaz groupadd pro přidání nové skupiny.
Syntaxe:groupadd group-name
Vytvořte nového uživatele pomocí příkazu useradd .
Použijte příznak -G přiřadit k němu uživatele.
Zobrazit řešení
groupadd project-manager
useradd -G project-manager Fatima
passwd Fatima
Krok 18:Přejděte do složky /home/dev-team a ověřte, zda Fatima má k němu přístup
Zobrazit nápovědu
Použijte cd přejděte na /home/dev-team .
Zobrazit řešení
cd /home/dev-team .
Dostáváme tuto chybu:

Je to proto, že others nemají přístup ke složce dev-team .
Pokud si vzpomínáme, níže jsou práva dev-team složka.

Zabalení
Oprávnění a vlastnictví jsou užitečné koncepty pro vynucení zabezpečení napříč operačními systémy pro více uživatelů. Doufám, že jste se mohli dozvědět o změně oprávnění a vlastnictví do hloubky.
Jaká je vaše oblíbená věc, kterou jste se z tohoto tutoriálu naučili? Dejte mi vědět na Twitteru!
Zde si také můžete přečíst mé další příspěvky.
Děkuji Tomu Mondlochovi za pomoc s řízeným cvičením.