GNU/Linux >> Znalost Linux >  >> Linux

Otázky k pohovoru s Linuxem – základní oprávnění k souborům a adresářům

Co jsou základní oprávnění souboru Linux?

Linux, stejně jako UNIX, je systém pro více uživatelů a oprávnění k souborům jsou jedním ze způsobů, jak systém chrání před škodlivými manipulacemi. Jedním ze způsobů, jak získat vstup, když je vám odepřeno oprávnění, je su to root. Mějte na paměti, že kdokoli zná heslo uživatele root, má úplný přístup. Přepnutí na superuživatele však není vždy pohodlné nebo doporučené, protože je snadné dělat chyby a měnit důležité konfigurační soubory jako superuživatel. Všechny soubory a adresáře jsou „vlastněny“ osobou, která je vytvořila. Například ve výpisu:

-rw-rw-r--    1 john   sap      150 Mar 19 08:08 file1.txt

Soubor file1.txt patří nebo je vlastněn Johnem. To znamená, že můžete určit, kdo může soubor číst, zapisovat do souboru nebo (pokud se jedná o aplikaci namísto textového souboru), kdo může soubor spustit. Podobným způsobem můžete také řídit přístup k adresářům.

Čtení, zápis a spouštění jsou tři hlavní nastavení oprávnění. Protože jsou uživatelé při vytváření účtů umístěni do skupiny, můžete také určit, zda mohou určité skupiny číst, zapisovat nebo spouštět soubor. Pomocí výše uvedeného příkladu file1.txt můžete vidět, že je poskytnuto mnoho podrobností. Můžete vidět, kdo může číst (r) a zapisovat do (w) souboru, stejně jako kdo soubor vytvořil (john) a do které skupiny vlastník patří (sap). Pamatujte však, že ve výchozím nastavení je název vaší skupiny stejný jako vaše přihlašovací jméno.

Další informace napravo od skupiny zahrnují velikost souboru, datum a čas vytvoření souboru a název souboru. První sloupec zobrazuje aktuální oprávnění; má deset slotů. První slot představuje typ souboru. Zbývajících devět slotů jsou ve skutečnosti tři sady oprávnění pro tři různé kategorie uživatelů. Například:

-rw-rw-r--

Tyto tři sady jsou vlastníkem souboru, skupinou, do které soubor patří, a „ostatními“, což znamená všichni ostatní uživatelé.

 -    (rw-)   (rw-)   (r--) 1 john sap
|      |       |       |
type  owner  group   others

První položka, která určuje typ souboru, obvykle zobrazuje jednu z následujících možností:

  • d — adresář
  • – (pomlčka) — běžný soubor (spíše než adresář nebo odkaz)
  • l — symbolický odkaz na jiný program nebo soubor jinde v systému

Za první položkou v každé z následujících tří sad uvidíte jednu z následujících:

  • r — soubor lze číst
  • w — do souboru lze zapisovat
  • x — soubor lze spustit (pokud se jedná o program)

Když uvidíte pomlčku u vlastníka, skupiny nebo jiných, znamená to, že konkrétní oprávnění nebylo uděleno. Podívejte se znovu na první sloupec souboru file1.txt a identifikujte jeho oprávnění.

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Vlastník souboru (v tomto případě Jan) má oprávnění soubor číst a zapisovat do něj. Skupina, sap, má také oprávnění číst a zapisovat do file1.txt. Není to program, takže vlastník ani skupina nemají oprávnění jej spustit. Všichni ostatní uživatelé mohou soubor pouze číst.

Jak bity oprávnění souboru odpovídají hodnotám poskytnutým chmod?

Bity oprávnění aplikované na objekt systému souborů přímo odpovídají hodnotám, které lze zadat ve 4místném n-tici dodaném obslužnému programu chmod v následujícím příkazu:

chmod abcd [file system object]

Každá hodnota v sadě číslic abcd se skládá ze součtu hodnot 1 2 a 4. Sečtením těchto hodnot pro každou číslici lze vygenerovat hodnotu pro nastavení všech atributů objektu souboru:

  • a – Tato číslice řídí nastavení speciálních atributů. hodnota 1 nastavuje bit setuid, hodnota 2 nastavuje bit setgid a hodnota 4 nastavuje bit sticky na objektu
  • b , c a d – Tyto číslice řídí oprávnění ke čtení, zápisu a spouštění pro vlastníka souboru, primární skupinu vlastníků souborů a všechny ostatní uživatele. Hodnota 4 povolí oprávnění ke čtení, hodnota 2 povolí oprávnění k zápisu a hodnota 1 povolí oprávnění ke spuštění.

Příklady

Chcete-li nastavit soubor souboru tak, aby byl fixní, čitelný a zapisovatelný vlastníkem, čitelný pro jeho primární skupinu a nepřístupný všem ostatním:

# chmod 4610 filename

Chcete-li udělit všechna oprávnění všem v systému:

# chmod 0777 filename

Další informace o chmod najdete na manuálové stránce chmod.

Jak nastavit oprávnění k souborům a adresářům pomocí chown a chmod?

Použijte chown příkaz ke změně vlastníka a/nebo skupiny souboru. Syntaxe je jednoduchá. Stačí napsat chown, za ním uživatel, který má soubor vlastnit, pak volitelně dvojtečku („:“) a název skupiny. Vezměte prosím na vědomí, že jména uživatelů a/nebo skupin musí v systému existovat. Například:

# chown john:sap file1.txt
# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

vede k tomu, že uživatel john vlastní soubor. Vlastník skupiny souboru je také nastaven na john's group, což je sap.

Ke změně oprávnění použijte příkaz chmod. Tento příklad ukazuje, jak změnit oprávnění na soubor1.txt pomocí příkazu chmod. Pokud jste vlastníkem souboru nebo jste přihlášeni k účtu root, můžete změnit jakákoli oprávnění pro vlastníka, skupinu a další. Právě teď mohou vlastník a skupina číst a zapisovat do souboru. Kdokoli mimo skupinu může soubor pouze číst (r–).

POZOR :Pamatujte, že oprávnění k souborům jsou bezpečnostní funkcí. Kdykoli dovolíte komukoli jinému číst, zapisovat a spouštět soubory, zvyšujete riziko, že se soubory bude manipulováno, pozměněno nebo smazáno. Oprávnění ke čtení a zápisu byste zpravidla měli udělovat pouze těm, kteří je skutečně potřebují.

Jak změnit oprávnění k souboru/adresáři pomocí zkrácené notace?

V následujícím příkladu chcete všem povolit zápis do souboru, aby jej mohli číst, zapisovat do něj poznámky a ukládat jej. To znamená, že budete muset změnit sekci „ostatní“ v oprávněních k souboru. Nejprve se podívejte do souboru. Na výzvu shellu byste napsali:

# ls -l file1.txt
-rw-rw-r--    1 john sap     150 Mar 19 08:08 file1.txt

Nyní byste napsali následující:

# chmod o+w file1.txt

Výše uvedený příkaz říká systému, že chcete ostatním udělit oprávnění k zápisu do souboru file1.txt. Chcete-li zkontrolovat výsledky, znovu vypište podrobnosti o souboru. Nyní soubor vypadá takto:

-rw-rw-rw-    1 john sap     150 Mar 19 08:08 file1.txt

Nyní může každý číst a zapisovat do souboru. Chcete-li odebrat oprávnění ke čtení a zápisu ze souboru 1.txt, použijte příkaz chmod k odebrání oprávnění ke čtení i zápisu.

# chmod go-rw file1.txt

Zadáním go-rw , říkáte systému, aby odstranil oprávnění ke čtení a zápisu pro skupinu a pro ostatní ze souboru file1.txt.

Výsledek bude vypadat takto:

-rw-------    1 john sap    150 Mar 19 08:08 file1.txt

Berte tato nastavení jako určitou zkratku, když chcete změnit oprávnění pomocí chmod, protože vše, co opravdu musíte udělat, je zapamatovat si několik symbolů a písmen pomocí příkazu chmod. Zde je seznam toho, co zkrácený text představuje:

Identity

u - the user who owns the file (that is, the owner)
g - the group to which the user belongs
o - others (not the owner or the owner's group)
a - everyone or all (u, g, and o)

Oprávnění

r - read access
w — write access
x — execute access

Akce

+ — adds the permission
- — removes the permission
= — makes it the only permission

Zde je několik běžných příkladů nastavení, která lze použít s chmod:

g+w - adds write access for the group
o-rwx - removes all permissions for others
u+x - allows the file owner to execute the file
a+rw - allows everyone to read and write to the file
ug+r - allows the owner and group to read the file
g=rx - allows only the group to read and execute (not write)

Jak odebrat všechna oprávnění všem uživatelům používajícím zkrácený zápis?

Chcete otestovat své dovednosti v oblasti oprávnění? Odeberte všechna oprávnění z file1.txt — pro všechny.

# chmod a-rwx file1.txt

Nyní se podívejte, zda můžete soubor přečíst příkazem cat file1.txt, který by měl vrátit následující:

cat: file1.txt: Permission denied

Odebráním všech oprávnění, včetně vašich vlastních, byl soubor úspěšně uzamčen. Ale protože soubor patří vám, můžete jeho oprávnění kdykoli změnit zpět pomocí následujícího příkazu:

# chmod u+rw file1.txt

Jak vypsat oprávnění k souborům v osmičkovém formátu?

Chcete-li zobrazit oprávnění souborů v osmičkovém formátu, použijte stat příkaz poskytovaný coreutils balík. Chcete-li získat osmičková oprávnění pro všechny soubory a adresáře v aktuálním pracovním adresáři, spusťte níže uvedený příkaz:

$ stat -c "%a %n" *

Chcete-li získat osmičková oprávnění obsahu v konkrétním adresáři, řekněte /usr/share, spusťte níže uvedený příkaz:

$ stat -c "%a %n" /usr/share/*
755 /usr/share/aclocal
755 /usr/share/alsa
755 /usr/share/anaconda
755 /usr/share/appdata
...

Chcete-li získat osmičková oprávnění pouze pro adresář, řekněte /usr/share, a nikoli obsah v něm, proveďte následující příkaz:

$ stat -c "%a %n" /usr/share/
755 /usr/share/

Jak obnovit všechna oprávnění k souborům systému na výchozí hodnoty v případě, že se všechna oprávnění k souborům změnila na 777?

Omylem jste provedli následující příkaz.

# chmod -R 777 /

Existuje nějaký způsob, jak se vrátit zpět k původním oprávněním?

Provedením následujícího příkazu se vrátíte zpět k původním oprávněním.

# rpm -a --setperms

To ukáže některé chyby, ale je možné je zanedbat.

Jak kopírovat soubory se specifickým oprávněním přes síť?

Chcete-li dosáhnout kopírování souborů se specifickými oprávněními, lze použít nástroj rsync:

# rsync --chmod=u+rwx,g+rx,o+rx  testfile [email protected]:/tmp/

Tím se zkopíruje testovací soubor do domovského adresáře uživatele a oprávnění ke zkopírovanému souboru budou 755.


Linux
  1. Jak zajistit, aby byly soubory a adresáře neodstranitelné, a to i přes kořen v Linuxu

  2. Otázky k rozhovoru s Linuxem:Otevřít soubory / Otevřít deskriptory souborů

  3. Cheat sheet pro oprávnění k souborům/adresáři pro Linux

  1. Základy oprávnění k souborům Linux

  2. Linux – Rozumíte unixovým oprávněním a typům souborů?

  3. Linux – Jak nastavit výchozí oprávnění k souborům pro všechny složky/soubory v adresáři?

  1. 25 nejčastějších otázek a odpovědí v rozhovoru pro Linux

  2. Priorita uživatele a vlastníka skupiny v oprávněních k souboru?

  3. Otázky k rozhovoru s Linuxem – Zvláštní oprávnění (SUID, SGID a sticky bit)