GNU/Linux >> Znalost Linux >  >> Linux

Základní příklady příkazů „chmod“ v Linuxu

Příkaz Linuxu ke změně oprávnění k souboru nebo adresáři je chmod, který rádi čteme jako režim změny souboru. chmod má dva provozní režimy:

  1. symbolický režim
  2. numerický/osmičkový režim

Chcete-li změnit oprávnění pomocí příkazu Linux chmod, musíme dodržovat určitou syntaxi a pravidla. Jak jsme diskutovali výše, můžeme změnit oprávnění pomocí numerického a abecedního způsobu, zde jsem vysvětlil oba způsoby se všemi triky.

Abecední způsob

Chcete-li použít tuto metodu, musíte si zapamatovat níže uvedená pravidla a abecedy pro správné použití. Chcete-li změnit oprávnění uživatele, musíte použít abecedu „u “. Podobně jako u skupiny „g “ a pro ostatní je to „o “.

Stejně jako Uživatel, Skupina a Ostatní si musíme pamatovat některé abecedy, abychom udělili oprávnění ke čtení, zápisu a spouštění Stejně jako u oprávnění ke čtení musíte použít abecedu „r “, pro Napište „w “ a pro Execute je to „x “.

Vzorec pro přidělování oprávnění pomocí příkazu chmod je tedy uveden níže:

  • u – uživatel
  • g – Skupina
  • o – Ostatní
  • r – Číst
  • w – Napište
  • x – Provést

Například, pokud chcete udělit oprávnění ke čtení a zápisu uživateli/vlastníkovi a oprávnění ke čtení skupině a ostatním pomocí abecedy, příkaz by byl:

# chmod u+rw,g+r,o+r file_name

Číselná cesta

Chcete-li použít tuto metodu, musíte si pamatovat níže uvedená Pravidla a čísla pro správné použití.

  • 4 – Udělit oprávnění ke čtení
  • 2 – Udělit oprávnění k zápisu
  • 1 – Udělit oprávnění k provedení

Pokud například chcete udělit oprávnění ke čtení a zápisu uživateli/vlastníkovi a oprávnění ke čtení skupině a ostatním pomocí číselného způsobu, výpočet příkazu by byl:

4+2 =6 :Toto přidá oprávnění ke čtení a zápisu uživateli/vlastníkovi.
4 :přidá oprávnění číst skupině.
4 :přidá oprávnění číst k ostatním.

Příkaz by tedy vypadal takto:

# chmod 644 filename

Oprávnění libovolného souboru můžete zkontrolovat pomocí níže uvedeného příkazu:

# ls -l file.txt 
-rw-rw-r-- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

A pomocí níže uvedeného příkazu zkontrolujte oprávnění adresáře:

# ls -ld data/
drwxrwxr-x 2 geeklab geeklab 4096 Feb 20 06:18 data/

Nyní je zde otázka – jak zjistit, jaká oprávnění byla přiřazena souboru nebo adresáři. je to docela jednoduché. Výše jsem uvedl dva příklady. Nyní pojďme identifikovat oprávnění souboru.txt. Pokud si všimnete, že vlastnosti souboru začínají „-rw-rw-r–“. Zde můžeme určit, jaké oprávnění je souboru.txt přiděleno.

Sekce oprávnění je rozdělena na 10 bitů, z nichž

” :První bit je zodpovědný za identifikaci, zda se jedná o soubor, adresář nebo symbolický odkaz. Viz níže uvedené symboly:

Důležité symboly:

  • :Oprávnění přiřazené k souboru
  • d :Oprávnění přidělené adresáři
  • l :Oprávnění přidělené symbolickému odkazu
  • 2., 3., 4. bit jsou pro povolení vlastníka.
  • 5., 6., 7. bit jsou pro povolení skupiny.
  • 8., 9., 10. bit jsou pro povolení ostatních.

Chcete-li udělit oprávnění k libovolnému souboru/adresáři, musíte použít „+ “Symbol. Chcete-li odebrat oprávnění z jakéhokoli souboru/adresáře, musíte použít „ “ Symbol.

Příklady použití příkazu chmod

Přiřadit oprávnění k souboru

Zde mám soubor s názvem soubor.txt. Udělme oprávnění ke čtení a zápisu uživateli/vlastníkovi pomocí příkazu chmod.

$ chmod u+rw file.txt
$ ls -l file.txt 
-rw------- 1 geeklab geeklab 0 Feb 20 06:16 file.txt

Numerickým způsobem použijte níže uvedený příkaz:

$ chmod 600 file.txt

Přiřadit oprávnění k adresáři

Níže uvedený příkaz lze použít k udělení oprávnění k adresáři. Zde mám adresář s názvem data. Dejme tedy úplné oprávnění (čtení, zápis, spouštění) uživateli/vlastníkovi. Viz příkaz níže.

$ chmod u+rwx data/
$ ls -ld data/
drwx------ 2 geeklab geeklab 4096 Feb 20 06:18 data/

Číselný způsob:

$ chmod 700 data/

Odebrat oprávnění ze souboru/adresáře

Odeberte oprávnění ze souboru/adresáře pomocí níže uvedeného příkazu Linux chmod. Zde odebírám oprávnění ke čtení a zápisu uživateli/vlastníkovi.

$ chmod u-rw file.txt 
$ ls -l file.txt 
----rw-r-- 1 geeklab geeklab 0 Feb 20 07:18 file.txt

Dejte oprávnění všem

Pomocí níže uvedeného příkazu můžete udělit oprávnění všem. Zde uděluji všem plné oprávnění k přístupu k souboru.txt. Existují dva způsoby, jak udělat totéž.

Metoda 1

$ chmod a+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Metoda 2
Můžete také použít níže uvedený příkaz chmod pro Linux.

$ chmod ugo+rwx file.txt 
$ ls -l file.txt 
-rwxrwxrwx 1 geeklab geeklab 0 Feb 20 06:44 file.txt

Číselná cesta :

$ chmod 777 file.txt 

Přidělte různá oprávnění uživatelům, skupinám a ostatním pomocí jediného příkazu Linux chmod

Zde odebírám oprávnění ke spouštění od uživatele/vlastníka a přidávám oprávnění ke spouštění skupině a ostatním pomocí jediného příkazu.

$ chmod u-x,g+x,o+x file.txt
$ ls -l file.txt 
-rw-rwxrwx 1 geeklab geeklab 0 Feb 20 09:40 file.txt

Přidělte oprávnění souboru odkazem na jakýkoli jiný soubor

Oprávnění můžete kopírovat z jednoho souboru do druhého. Zde mám soubor s názvem a1.txt, jehož oprávnění je něco jako „-rw-r–r– “.

$ ls -l a1.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:21 a1.txt

Nyní chci přidělit stejné oprávnění mému jinému souboru s názvem a2.txt. Můžete tak učinit pomocí příkazu Linux chmod s argumentem –reference. Viz příkaz níže.

$ chmod --reference=a1.txt a2.txt 
$ ls -l a2.txt 
-rw-r--r-- 1 geeklab geeklab 0 Feb 20 07:22 a2.txt

Přidělte oprávnění rekurzivně

Mám adresář s názvem data, ve kterém mám tolik souborů a chci jim udělit oprávnění všechny najednou místo ručně jeden po druhém. K tomu můžete použít linuxový příkaz chmod s argumentem -R. To vám pomůže udělit oprávnění rekurzivně.

$ chmod -R ugo+rwx data/

Číselná cesta :

$ chmod -R 777 data/

Přidělte oprávnění podrobnému výstupu

Výstup můžete získat po přiřazení oprávnění libovolným souborům/adresářům pomocí příkazu Linux chmod s argumentem -v. Viz příkaz níže.

$ chmod -v 777 file.txt 
mode of 'file.txt' changed from 0664 (rw-rw-r--) to 0777 (rwxrwxrwx)

Přiřadit oprávnění výstupu (Tento příkaz poskytne výstup pouze v případě, že dojde k nějakým změnám)

Příkaz chmod s argumentem -c také dělá to samé jako podrobný výstup (tj. -v). Ale zobrazí výstup pouze v případě, že dojde ke změnám v oprávnění. Pokud přidělujete stejné oprávnění, nezobrazí se žádný výstup.

$ chmod -c 755 file.txt 
mode of 'file.txt' changed from 0777 (rwxrwxrwx) to 0755 (rwxr-xr-x)

Přidělování oprávnění ignorováním/řešením chyb

Chcete-li se vyhnout chybám nebo opravit chyby při přidělování oprávnění, můžete použít příkaz Linux chmod s argumentem -f. Viz příkaz níže.

$ chmod -f 755 file.txt 

Pro nápovědu příkazu chmod

Pro příkaz chmod více možností a argumentů můžete použít níže uvedený příkaz.

$ chmod --help
Usage: chmod [OPTION]... MODE[,MODE]... FILE...
  or:  chmod [OPTION]... OCTAL-MODE FILE...
  or:  chmod [OPTION]... --reference=RFILE FILE...
Change the mode of each FILE to MODE.
With --reference, change the mode of each FILE to that of RFILE.

  -c, --changes          like verbose but report only when a change is made
  -f, --silent, --quiet  suppress most error messages
  -v, --verbose          output a diagnostic for every file processed
      --no-preserve-root  do not treat '/' specially (the default)
      --preserve-root    fail to operate recursively on '/'
      --reference=RFILE  use RFILE's mode instead of MODE values
  -R, --recursive        change files and directories recursively
      --help     display this help and exit
      --version  output version information and exit

Each MODE is of the form '[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+'.

GNU coreutils online help: [http://www.gnu.org/software/coreutils/]
Full documentation at: [http://www.gnu.org/software/coreutils/chmod]
or available locally via: info '(coreutils) chmod invocation'

Zkontrolujte verzi příkazu chmod

Pro kontrolu verze nainstalovaného příkazu chmod můžete použít linuxový příkaz chmod s argumentem –version.

$ chmod --version
chmod (GNU coreutils) 8.25
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later [http://gnu.org/licenses/gpl.html].
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by David MacKenzie and Jim Meyering.


Linux
  1. Příkaz mv v Linuxu:7 základních příkladů

  2. Příklady příkazů gzip v Linuxu

  3. více příkladů příkazů v Linuxu

  1. Příklady příkazů Linux tail

  2. V příkladech příkazů v Linuxu

  3. Příklady příkazů hlavy v Linuxu

  1. 8 Příklady příkazů hlavy v Linuxu

  2. 8 Příklady příkazů Stat v Linuxu

  3. soubor Příklady příkazů v Linuxu