souborové systémy používají oprávnění a atributy k regulaci úrovně interakce, kterou mohou mít systémové procesy se soubory a adresáři.

Varování: Pokud je použit pro účely zabezpečení, oprávnění a atributy pouze bránit proti útokům zahájen od nastartoval systém. Chcete-li chránit uložená data před útočníky s fyzickým přístupem k počítači, musíte také implementovat šifrování dat v klidu.,

Prohlížení oprávnění

Použití příkazu ls je -l možnost zobrazit oprávnění (nebo režim souboru) stanovené pro obsah adresáře, například:

$ ls-l /cesta/do/adresáře

V prvním sloupci je to, co se musíme zaměřit., Taking an example value of drwxrwxrwx+, the meaning of each character is explained in the following tables:

d rwx rwx rwx +
The file type, technically not part of its permissions. See info ls -n "What information is listed" for an explanation of the possible values., oprávnění, která má vlastník nad souborem, je vysvětleno níže. oprávnění, která skupina má nad souborem, je vysvětleno níže. oprávnění, která mají všichni ostatní uživatelé v souboru, jsou vysvětlena níže. jeden znak, který určuje, zda se na soubor vztahuje alternativní metoda přístupu. Pokud je tento znak prostorem, neexistuje žádná alternativní metoda přístupu. . znak označuje soubor s bezpečnostním kontextem, ale žádná jiná alternativní metoda přístupu., Soubor s jakoukoli jinou kombinací alternativních přístupových metod je označen znakem+, například v případě seznamů řízení přístupu.,

Každý ze tří povolení triády (rwx v příkladu výše) může být složeno z následujících znaků:

Charakter Vliv na soubory Vliv na adresáře
oprávnění Číst (první znak) - soubor nelze přečíst., obsah adresáře nelze zobrazit.
r soubor lze přečíst. obsah adresáře lze zobrazit.
Zápis (druhý znak) - soubor nelze upravit. obsah adresáře nelze změnit.
w soubor lze upravit., adresáře, jeho obsah může být upraven (vytvořit nové soubory nebo složky; přejmenovat nebo odstranit existující soubory nebo složky); vyžaduje oprávnění spouštět být také nastavit, jinak toto oprávnění nemá žádný vliv.
Execute povolení (třetí znak) - soubor nelze provést. adresář nelze přistupovat pomocí cd.
x soubor lze spustit., adresář lze přistupovat s cd; to je jediný bit oprávnění, které v praxi mohou být považovány za „zdědil“ od předchůdce adresáře, ve skutečnosti, pokud libovolnou složku v cestě nemá x sada bitů, poslední soubor nebo složku nelze přistupovat buď, bez ohledu na jeho oprávnění; viz path_resolution(7) pro více informací.,
s setuid bit, když našel v uživatelské trojice; setgid bit, když našel ve skupině trojice; není nalezen v další trojice; to také znamená, že x je nastaven.
S stejně jako s, ale na x není nastaven; vzácné na pravidelné soubory, a k ničemu na složky.,
t The sticky bit; it can only be found in the others triad; it also implies that x is set.
T Same as t, but x is not set; rare on regular files, and useless on folders.

See info Coreutils -n "Mode Structure" and chmod(1) for more details.,

Tip: Můžete zobrazit oprávnění podél cesty s namei -l path.

Příklady

podívejme se na pár příkladů pro objasnění:

drwx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie má plný přístup do adresáře Dokumenty. Může seznamovat, vytvářet soubory a přejmenovávat, mazat jakýkoli soubor v dokumentech, bez ohledu na oprávnění souboru. Jeho schopnost přístupu k souboru závisí na povolení souboru.

dr-x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie má plný přístup, kromě toho, že nemůže vytvořit, přejmenovat, odstranit žádný soubor., Ten může seznam souborů a (pokud povolení souboru zmocňuje) může přistupovat k existujícímu souboru v dokumentech.

d-wx------ 6 archie users 4096 Jul 5 17:37 Documents

Archie nemůže v dokumentech dělat „ls“, ale pokud zná název existujícího souboru, může jej vypsat, přejmenovat, smazat nebo (pokud mu oprávnění souboru Umožňuje) k němu přistupovat. Také je schopen vytvářet nové soubory.

d--x------ 6 archie users 4096 Jul 5 17:37 Documents

Archie je schopen (pokud mu povolení souboru umožňuje) přistupovat k těmto souborům v dokumentech, o kterých ví. Nemůže uvést již existující soubory nebo vytvořit, přejmenovat, odstranit některý z nich.,

měli byste mít na paměti, že zpracováváme oprávnění adresáře a nemá to nic společného s jednotlivými oprávněními souboru. Když vytvoříte nový soubor, změní se adresář. To je důvod, proč potřebujete povolení k zápisu do adresáře.

podívejme se na další příklad, tentokrát ze souboru, není adresář:

-rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

Tady můžeme vidět první písmeno je d -. Takže víme, že je to soubor, Ne adresář., Další oprávnění vlastníka jsou rw- takže majitel má možnost číst a psát, ale neprovádí. To se může zdát divné, že majitel nebude mít všechny tři oprávnění, ale na x povolení není potřeba, jak to je text/soubor dat, lze přečíst pomocí textového editoru, například v Gedit, EMACS, nebo software, jako je R, a není spustitelný, v jeho vlastní pravý (pokud to obsahovalo něco jako python kód, tak se to velmi dobře by mohla být)., Skupiny oprávnění jsou nastavena na r--, tak skupina má schopnost číst soubor, ale ne psát/editovat to v žádném případě — je to v podstatě něco, jako je nastavení jen pro čtení. Vidíme, že stejná oprávnění platí i pro všechny ostatní.

Změna oprávnění

chmod je příkaz Linux a další Unix-jako operační systémy, které umožňuje změnit oprávnění (nebo režim přístupu) souboru nebo adresáře.

textová metoda

Chcete-li změnit oprávnění — nebo přístupový režim — souboru, použijte příkaz chmod v terminálu., Níže je příkaz obecnou strukturu:

chmod who=permissions filename

Kde who je některý z řady dopisů, každý projev, který je uveden v povolení. Jsou následující:

  • u: uživatel, který vlastní soubor.
  • g: skupina uživatelů, do které soubor patří.
  • o: ostatní uživatelé, tj. všichni ostatní.
  • a: všechny výše uvedené; použijte toto místo psaní ugo.,

oprávnění jsou stejné, jak je popsáno v #Prohlížení oprávnění (r w x).

nyní se podívejte na některé příklady pomocí tohoto příkazu., Předpokládejme, že jste se stal velmi ochranný z adresáře Dokumenty a chtěl popírat všechny kromě sebe, oprávnění číst, zapisovat a spouštět (nebo v tomto případě search/hledat) v tom:

Před: drwxr-xr-x 6 archie users 4096 Jul 5 17:37 Documents

$ chmod g= Documents$ chmod o= Documents

Po: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

Zde protože chcete odepřít oprávnění, nechcete dát žádné dopisy po =, kde permissions by vstoupil. Nyní můžete vidět, že pouze oprávnění vlastníka jsou rwx a všechna ostatní oprávnění jsou -.,

To může být se vrátil s:

Před: drwx------ 6 archie users 4096 Jul 6 17:32 Documents

$ chmod g=rx Documents$ chmod o=rx Documents

Po: drwxr-xr-x 6 archie users 4096 Jul 6 17:32 Documents

V následujícím příkladu, chcete udělit oprávnění číst a spouštět pro skupinu a ostatní uživatele, takže si dát dopisy pro oprávnění (r x) za =, bez mezer.

můžete to zjednodušit tak, aby více než jeden who písmeno ve stejném příkazu, e.,g:

$ chmod go=rx Documents
Poznámka: nezáleží na Tom, v jakém pořadí dáte who písmena nebo povolení písmena v chmod příkaz: mohl jsi chmod go=rx file nebo chmod og=xr file. Je to všechno stejné.,ider druhý příklad, předpokládejme, že chcete změnit na foobar souboru tak, že máte oprávnění číst a zapisovat, a ostatními uživateli ve skupině users, který může být kolegy, kteří pracují na foobar, můžete také číst a psát do něj, ale ostatní uživatelé mohou pouze číst:

Před: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=rw foobar

Po: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

to je přesně To, stejně jako první příklad, ale s pilníkem, není adresář, a můžete udělit práva pro zápis (jen tak dát příklad k vydání každého povolení).,

Text metoda zkratky

chmod umožňuje přidávat a odebírat oprávnění z existující nastavit pomocí + nebo - místo =. To je odlišné od výše uvedených příkazů, které v podstatě re-psát oprávnění (např. pro změnu povolení od r-- rw-, stále musíte zahrnout r i w po = v chmod příkaz vyvolání., Pokud jste vynechal ven r, to bude trvat pryč r oprávnění jako jsou re-psaný s =. Použití + a - se tomu vyhýbá přidáním nebo odebráním aktuální sady oprávnění).,>Před: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod a-w foobar

Po: -r--r--r-- 1 archie users 5120 Jun 27 08:28 foobar

různé zkratky je zvláštní X režimu: toto není skutečný soubor režimu, ale to je často používáno ve spojení s -R možnost nastavit executable bit pouze pro adresáře, a ponechat beze změny pro běžné soubory, například:

$ chmod -R a+rX ./data/

Kopírování oprávnění

je možné říct, chmod kopírovat oprávnění z jedné třídy, řekl majitel, a dát ty stejné oprávnění skupiny nebo i všechny., K tomu, místo toho, aby r w nebo x po =, dát další, kteří dopis. e.g:

Před: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod g=u foobar

Po: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Tento příkaz v podstatě znamená „změnit oprávnění skupiny (g=), být stejný jako vlastnictví uživatele (=u). Všimněte si, že nemůžete kopírovat sadu oprávnění, stejně jako udělit nové, např.,:

$ chmod g=wu foobar

v tomto případě chmod hodí chybu.

numerická metoda

chmod může také nastavit oprávnění pomocí čísel.

použití čísel je další metoda, která umožňuje upravovat oprávnění pro všechny tři majitele, skupinu a další současně, stejně jako setuid, setgid a sticky bits. Tato základní struktura kódu, je toto:

$ chmod xxx filename

Kde xxx je 3-místné číslo, kde každá číslice může být cokoliv, od 0 do 7., První číslice se vztahuje na oprávnění pro vlastníka, druhá číslice vztahuje na oprávnění pro skupinu a třetí číslice se vztahuje na oprávnění pro všechny ostatní.

V tomto číslo zápisu, hodnoty r w x mají své vlastní číslo hodnotu:

r=4w=2x=1

přijít s 3-místné číslo, které potřebujete, aby zvážila, jaké oprávnění chcete, vlastníka, skupiny, a všechny ostatní, a pak se jejich celkové hodnoty., chcete, skupinu a ostatní jen číst a spouštět oprávnění, by přijít s číselnými hodnotami jako:

  • Majitel: rwx=4+2+1=7
  • Skupina: r-x=4+0+1=5
  • Další: r-x=4+0+1=5
$ chmod 755 filename

Toto je ekvivalentní použití následující:

$ chmod u=rwx filename$ chmod go=rx filename

Pro prohlížení stávajících oprávnění souboru nebo adresáře v číselné podobě, pomocí stat(1) příkaz:

$ stat -c %a filename

Kde %možnost určuje výstupu v číselné podobě.,

Většina složky a adresáře jsou nastaveny tak, aby 755 povolit čtení, zápisu a spuštění pro vlastníka, ale popřít psaní, aby všichni ostatní, a soubory jsou obvykle 644 povolit čtení a psaní pro vlastníka, ale jen čtení pro každého jiný; viz poslední poznámka na nedostatek x permissions s non spustitelné soubory: to je to samé tady.,

Abyste to viděli v akci s příklady vezměme si předchozí příklad, který byl použit, ale s tímto numerické metody aplikované místo:

Před: -rw-r--r-- 1 archie users 5120 Jun 27 08:28 foobar

$ chmod 664 foobar

Po: -rw-rw-r-- 1 archie users 5120 Jun 27 08:28 foobar

Kdyby to byl spustitelný i na množství bude 774 pokud byste chtěli udělit spustitelný soubor oprávnění pro vlastníka a skupinu. Případně, pokud byste chtěli, aby všichni měli pouze oprávnění ke čtení, číslo by bylo 444., Léčba r jako na 4, w jako 2, a x jako 1 je asi nejjednodušší způsob, jak cvičit číselných hodnot pomocí chmod xxx filename, ale tam je také binární metodu, kde každé povolení má binární číslo, a pak, že je zase převeden na číslo. Je to trochu spletitější, ale zde je zahrnuto pro úplnost.,

Zvážit toto oprávnění nastavit:

-rwxr-xr--

Když si dáš 1 za každé povolení uděleno, a 0 pro každý jeden není samozřejmost, výsledkem by bylo něco jako toto:

-rwxrwxr-x 111111101

pak můžete převést tyto binární čísla:

000=0 100=4001=1 101=5010=2 110=6011=3 111=7

hodnota výše uvedené by proto bylo 775.

Zvážit, chtěli jsme odstranit zapisovat oprávnění ze skupiny:

-rwxr-xr-x 111101101

hodnota by proto mělo být 755 a vy by jste použít chmod 755 filename odstranit oprávnění zapisovat., Všimnete si, že dostanete stejné třímístné číslo bez ohledu na to, jakou metodu používáte. Ať už používáte text nebo čísla, bude záviset na osobních preferencích a rychlosti psaní. Pokud chcete obnovit soubor nebo adresář výchozí oprávnění např. číst a psát (a spustit) povolení majitele, ale odepřít oprávnění k zápisu pro ostatní, může být rychlejší použít chmod 755/644 filename. Pokud však měníte oprávnění na něco mimo normu, může být jednodušší a rychlejší použít textovou metodu na rozdíl od pokusu o její převod na čísla, což může vést k chybě., Dalo by se tvrdit, že neexistuje žádný skutečný významný rozdíl v rychlosti jedné metody pro uživatele, který potřebuje pouze příležitostně používat chmod.

numerickou metodou můžete také nastavit setuid, setgid a pomocí čtyř číslic.

setuid=4setgid=2sticky=1

například, chmod 2777 filename nastaví pro čtení/zápis/spustitelný bitů pro každého a také povolit setgid bit.

hromadné chmod

obecně adresáře a soubory by neměly mít stejná oprávnění., Pokud je nutné hromadně Upravit strom adresářů, použijte find k selektivní úpravě jednoho nebo druhého.

chmod pouze adresáře na 755:

$ find directory -type d -exec chmod 755 {} +

chmod pouze soubory 644:

$ find directory -type f -exec chmod 644 {} +

Změna vlastnictví

chown změní vlastníka souboru nebo adresáře, který je rychlejší a jednodušší, než měnit oprávnění, v některých případech.

zvažte následující příklad a vytvořte nový oddíl s GParted pro záložní data. Gparted dělá to všechno jako kořen, takže vše patří ke kořenům ve výchozím nastavení., To je vše v pořádku a dobré, ale pokud jde o zápis dat do připojeného oddílu, oprávnění je odepřeno běžným uživatelům.

brw-rw---- 1 root disk 8, 9 Jul 6 16:02 sda9drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

Jak můžete vidět zařízení v /dev je ve vlastnictví root, jako je mount umístění (/media/Backup)., Ke změně vlastníka mount umístění jedné můžete udělat následující:

Před: drwxr-xr-x 5 root root 4096 Jul 6 16:01 Backup

# chown archie /media/Backup

Po: drwxr-xr-x 5 archie root 4096 Jul 6 16:01 Backup

oddíl může mít údaje napsané na to nový majitel, archie, bez změny oprávnění (jako vlastník trojice již rwx permissions).

Poznámka:

  • chown vždy vymaže setuid a setgid bity.
  • non-root uživatelé nemohou používat chown“ rozdávat “ soubory, které vlastní jinému uživateli.,

Seznamy Řízení Přístupu

Seznamy Řízení Přístupu poskytuje další, více flexibilní, oprávnění mechanismus pro systémy souborů tím, že umožňuje nastavit oprávnění pro každého uživatele nebo skupinu, aby se soubor.

Umask

nástroj umask se používá k ovládání masky režimu vytváření souborů, která určuje počáteční hodnotu bitů oprávnění souborů pro nově vytvořené soubory.,

atributy souborů

kromě bitů režimu souborů, které řídí čtení, zápis a spuštění oprávnění uživatele a skupiny, několik souborových systémů podporuje atributy souborů, které umožňují další přizpůsobení povolených operací souborů. Tato část popisuje některé z těchto atributů a jak s nimi pracovat.

varování: ve výchozím nastavení nejsou atributy souborů zachovány cp, rsync a dalšími podobnými programy.,

chattr a lsattr

Pro ext2 a ext3 souborové systémy, balíček e2fsprogs obsahuje programy lsattr a chattr, že seznam a změnit soubor má atributy, resp.,/li>

  • u: undeletable
  • A: žádné aktualizace atime
  • C: žádné kopírování na zápisu
  • D: synchronní aktualizace adresáře
  • S: synchronní aktualizace
  • T: vrchol hierarchie adresářů
  • například, pokud chcete nastavit neměnná trochu na nějakém souboru, použijte následující příkaz:

    # chattr +i /path/to/file

    Chcete-li odebrat atribut souboru jen změnit + -.,

    Rozšířené atributy

    Z xattr(7): „Rozšířené atributy jsou jméno:hodnoty páry spojena trvale se soubory a adresáře“. Existují čtyři rozšířené třídy atributů: bezpečnost, systém, důvěryhodný a uživatel.

    varování: ve výchozím nastavení nejsou rozšířené atributy zachovány cp, rsync a dalšími podobnými programy, viz #zachování rozšířených atributů.

    rozšířené atributy se také používají k nastavení funkcí.

    uživatelské rozšířené atributy

    uživatelské rozšířené atributy lze použít k ukládání libovolných informací o souboru., To create one:

    $ setfattr -n user.checksum -v "3baf9ebce4c664ca8d9e5f6314fb47fb" foo.txt

    Use getfattr to display extended attributes:

    $ getfattr -d foo.txt
    # file: foo.txtuser.,3de557528">
    --preserve=mode,ownership,timestamps,xattr mv preserves by default1 tar --xattrs for creation and extraction bsdtar -p for extraction rsync --xattrs
    1. mv silently discards extended attributes when the target file system does not support them.,

    Chcete-li zachovat rozšířené atributy pomocí textových editorů, musíte je nakonfigurovat tak, aby zkrátily soubory Při ukládání namísto použití přejmenování(2).

    Tipy a triky

    Zachovat root

    Použití --preserve-root vlajky, aby se zabránilo chmod od herectví rekurzivně na /. To může například zabránit tomu, aby jeden odstranil spustitelný bit systémově a tím přerušil systém. Chcete-li tento příznak použít pokaždé, nastavte jej do aliasu. Vidět .,

    Viz také

    • wikipedie:Chattr
    • Linux Oprávnění Souboru Zmatek.
    • Linux Oprávnění Souboru Zmatek část 2
    • wikipedie:Rozšířené atributy souboru#Linux
    • Rozšířené atributy: dobré, ne tak dobré, špatné.
    • oprávnění k zálohování a obnovení souborů v Linuxu
    • proč je“ chmod-R 777 / “ destruktivní?

    Napsat komentář

    Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *