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,
permissions
lze číst, zapisovat, spouštět nebo je kombinovat.filename
je 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
,o
zastupovat uživatele, skupiny a další. Oprávnění jsou reprezentována jakor, w, x
pro č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í
read
awrite
oprávnění progroup
aothers
:chmod go-rw
. - Odebírání
read
oprávnění proothers
:chmod o-r
. - Přiřazení
write
oprávnění kegroup
a 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
execution
práva odother
agroup
.
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
,write
aexecute
user
,read
aexecute
dogroup
a pouzeread
ostatní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.