GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit oprávnění v Linuxu

V Linuxu a Unixu začíná zabezpečení oprávněními k souboru. Na velmi základní úrovni hrají oprávnění k souborům a adresářům zásadní roli v zabezpečení systému. Když vytvoříte soubor nebo adresář na systémech Linux, jsou dodávány s výchozími oprávněními.

Oprávnění k souboru se uplatňují na třech úrovních:owner , group members a others . Ke změně těchto oprávnění se v Linuxu používá příkaz chmod.

V tomto tutoriálu probereme, jak změnit oprávnění souborů v Linuxu pomocí příkazu chmod.

1) Změňte oprávnění pomocí číselné (osmičkové) metody

Oprávnění (režimy přístupu) lze změnit pomocí příkazu chmod pomocí některých operátorů (-, + nebo =) k přiřazení oprávnění (r, w nebo x) konkrétnímu uživateli (u, g, o nebo a). Příkaz přijímá buď číselné (osmičkové) nebo symbolické specifikace režimu přístupu.

Numerická metoda je nejběžněji používaný způsob nastavení oprávnění pro soubory a adresáře. Chcete-li to provést, zadejte chmod numeric_permission filename .

Každé oprávnění je reprezentováno číslem a oprávnění pro konkrétní entitu je nakonec reprezentováno sadou tří sloupců.

Ve výše uvedeném diagramu

'Uživatel' je uděleno (4 2 1 ) oprávnění tam, kde uživatel četl, zapisoval a spouštěl.

'Skupině' je uděleno (4 2 0) oprávnění, kde mohou členové skupiny číst a psát.

Povolení „Jiný (svět)“ je uděleno (4 0 0) tam, kde ostatní mohou pouze číst.

V numerické metodě se všechna oprávnění změní najednou.

Například,

755 :nastavte oprávnění ke čtení+zápisu+provádění pro user , nastavte oprávnění ke čtení a spouštění na group a nastavte oprávnění ke čtení a spouštění na others .

# chmod 755 asciiquarium.tar.gz
# ls -l asciiquarium.tar.gz 
-rwxr-xr-x 1 linoadmin linoadmin 15436 Mar 9 2013 asciiquarium.tar.gz

476 :nastavit oprávnění pouze ke čtení pro user , nastavte oprávnění pro čtení+zápis+spouštění pro group a nastavte oprávnění pro čtení a zápis na others .

# chmod 476 bootstrap
# ls -l bootstrap
-r--rwxrw- 1 root root 5747 Apr 25 01:45 bootstrap

500 :nastavte oprávnění ke čtení a spouštění pro user , nenastavujte žádná oprávnění pro group a nenastavujte žádná oprávnění pro others .

# chmod 500 asciiquarium_1.1/
# ls -ld asciiquarium_1.1/
dr-x------ 2 linoadmin linoadmin 4096 Mar 9 2013 asciiquarium_1.1/

Při použití numerické metody byste měli vždy zadat tři hodnoty (vlastník, skupina a další).

2) Změňte oprávnění pomocí symbolického režimu

Většina uživatelů Linuxu preferuje režim numerického přístupu. Někteří lidé však dávají přednost použití symbolických forem, protože obvykle upravují existující režim namísto jeho úplného nahrazení.

Symbolický režim se používá jako chmod entity=permissions filename . Specifikace symbolického režimu mají tři části, které se skládají z jednotlivých znaků a k identifikaci části používají písmeno:

  • Entity :Vlastník uživatele =u , vlastník skupiny =g , jiné =o a všechny =a
  • Operation :+ přidat, - odebrat nebo = přiřadit (odebrat ostatní existující oprávnění)
  • Permissions to set :r =číst, w =zápis a x =provést

Několik příkladů, abyste pochopili.

chmod +x  :Přidat oprávnění ke spuštění pro všechny uživatele entity, skupinu a další. Používá se k vytvoření spustitelného skriptu nebo programu za účelem jeho spuštění

# chmod +x hello.sh
# ls -l hello.sh 
-rwxr-xr-x 1 root root   66 May 15 20:12 hello

Nyní můžete spustit skript, jak je uvedeno níže

# ./hello 
Hello... How are you ?

u+x :Přidat oprávnění ke spuštění pouze pro uživatele

# chmod u+x backupdb.sh
# ls -l backupdb.sh 
-rwxr--r-- 1 linoadmin linoadmin 15436 Mar 9 2013 backupdb.sh

go-w :Odebrat oprávnění k zápisu pouze skupinovým a jiným třídám.

# chmod go-w script-test/
# ls -ld script-test/
drwxr-xr-x 3 root root 4096 Apr 25 02:21 script-test/

a=rw :Nastavte oprávnění pro čtení a zápis, ale ne pro provádění.

# chmod a=rw bootstrap
# ls -l bootstrap
-rw-rw-rw- 1 root root 5747 Apr 25 01:45 bootstrap

g-x,o-rx :Odeberte oprávnění ke spuštění pro group a odeberte oprávnění ke čtení a spouštění pro other .

Poznámka:Za čárkou nepoužívejte mezeru (, )

# chmod g-x,o-rx baba/

Ověřte oprávnění pomocí příkazu ls:

# ls -ld baba/
drwxr----- 2 root root 4096 Apr 13 01:35 baba/

Při použití symbolické metody je možné provádět kombinace pro manipulaci s některými entitami současně.

Mějte na paměti, že při použití symbolického režimu zůstanou oprávnění, která nezadáte, jako před spuštěním příkazu chmod

3) Změňte oprávnění rekurzivně

Když použijete příkaz chmod v adresáři bez jakékoli volby, neovlivní to oprávnění v jeho podadresářích. To znamená, že oprávnění jsou aplikována pouze na samotný adresář.

Chcete-li změnit oprávnění adresáře s jeho podadresáři (rekurzivně), můžeme použít -R možnost.

Podívejte se například do našeho adresáře 'asciiquarium_1.1', na který jsme aplikovali 500 oprávnění.

Když vypíšeme oprávnění pro soubory a adresáře v adresáři 'asciiquarium_1.1', můžeme, že není nastaveno na '500'.

# ls -l asciiquarium_1.1/
total 60
-rw-rw-r-- 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-rw-rw-r-- 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-rw-rw-r-- 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-rw-rw-r-- 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-rw-rw-r-- 1 linoadmin linoadmin  1060 Mar  9  2013 README

Nyní použijeme chmod -R příkaz se stejnými oprávněními pro adresář 'asciiquarium_1.1' pomocí následujícího příkazu:

# chmod -R 500 asciiquarium_1.1/

Nyní ověřte oprávnění k souborům a adresářům následovně:

# ls -l asciiquarium_1.1/
total 60
-r-x------ 1 linoadmin linoadmin 27679 Mar  9  2013 asciiquarium
-r-x------ 1 linoadmin linoadmin   228 Mar  9  2013 CHANGES
-r-x------ 1 linoadmin linoadmin 18092 Mar  9  2013 gpl.txt
-r-x------ 1 linoadmin linoadmin    45 Mar  9  2013 MANIFEST
-r-x------ 1 linoadmin linoadmin  1060 Mar  9  2013 README

Můžete vidět, že jsou nastavena oprávnění pro soubory a podadresáře.

4) Zvláštní bitová oprávnění

Většina úloh, které dokončíte s oprávněními, bude mít oprávnění ke čtení, zápisu a spouštění. Existuje však několik dalších speciálních oprávnění, která můžete přiřadit souborům a adresářům ve vašem systému souborů. Tato speciální oprávnění jsou označována jako další číslice přidaná na začátek režimu souboru nebo adresáře.

Pro použití systému souborů Linux jsou k dispozici následující speciální bity:

  • SUID :oprávnění Nastavit ID uživatele umožňuje uživatelům spouštět program, jako by byli uživatelským vlastníkem programu; ve většině případů je vlastníkem uživatele uživatel root. Číselná hodnota této sady oprávnění je 4XXX (kde „XXX“ je nahrazeno číselnými hodnotami pro sadu tří zmíněných výše).
  • SGID :Když je nastaveno v adresáři, oprávnění Set Group ID automaticky uděluje skupinové vlastnictví všech nových souborů vytvořených v adresáři vlastníkovi skupiny v adresáři (číselný =2XXX). Když je SGID nastaveno na soubor, umožňuje uživatelům spouštět program, jako by byli skupinovým vlastníkem souboru.
  • Přilnavý bit:t jeho sada oprávnění se používá k tomu, aby „nevlastníci“ nemohli mazat soubory ve společném adresáři (číselný =1XXX). V adresáři s lepivým bitem může soubor smazat pouze vlastník souboru nebo vlastník adresáře (root může soubory mazat také vždy).

Abychom to pochopili, uvedu jeden příklad:

Oprávnění SUID použijeme na soubor pomocí následujícího příkazu:

# chmod 4755 bootstrap
# ls -l bootstrap
-rwsr-xr-x 1 root root 5747 Apr 25 01:45 bootstrap

Závěr

Při změně oprávnění můžete vždy použít buď číselnou metodu, nebo symbolickou metodu. Číselná oprávnění jsou nejčastěji používaná a objevují se pokaždé. Zpravidla doporučuji použít číselný režim k nastavení nebo vynucení oprávnění k objektu, na rozdíl od provádění malých změn oprávnění. Měli byste mít uživatel root nebo sudo přístup ke změně oprávnění pro soubory a adresáře vlastněné ostatními, jinak je možné měnit pouze oprávnění souborů a adresářů, které vlastníte.


Linux
  1. Jak změnit uživatelské jméno v Linuxu

  2. Jak změnit název hostitele v systému Linux

  3. Jak změnit port SSH v Linuxu

  1. Jak změnit název hostitele v Linuxu

  2. Jak změnit Shell v Linuxu

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

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

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

  3. Jak změnit název hostitele na Redhat 7 Linux