GNU/Linux >> Znalost Linux >  >> Linux

Linux chmod and chown – Jak změnit oprávnění a vlastnictví souborů v Linuxu

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ů:

  1. Symbolický režim :tato metoda používá symboly jako u , g , o zastupovat uživatele, skupiny a další. Oprávnění jsou reprezentována jako r, w, x pro čtení, zápis a spouštění. Oprávnění můžete upravit pomocí +, - a =.
  2. 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 a write oprávnění pro group a others :chmod go-rw .
  • Odebírání read oprávnění pro others :chmod o-r .
  • Přiřazení write oprávnění ke group 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) pro user , read (přidejte 4) a execute (přidejte 1) pro skupinu a pouze execute (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 od other a group .

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 a execute user , read a execute do group a pouze read 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.


Linux
  1. Jak zkopírovat oprávnění a vlastnictví souboru do jiného souboru v Linuxu

  2. Jak používat příkaz chown ke změně vlastnictví v Linuxu

  3. Jak spravovat oprávnění/vlastnictví souborů a adresářů v Linuxu

  1. Výukový program oprávnění k souboru Linux:Jak zkontrolovat a změnit oprávnění

  2. Jak používat příkaz chmod (Change Mode) v Linuxu

  3. Jak chmodovat a chown skryté soubory v Linuxu?

  1. Jak změnit oprávnění souborů rekurzivně pomocí chmod v Linuxu

  2. Jak změnit vlastníka souboru/skupiny pomocí příkazu chown v systému Linux

  3. Jak změnit uživatelské heslo v Linuxu