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.
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.,
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
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).
-
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.
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
: undeletableA
: žádné aktualizace atimeC
: žádné kopírování na zápisuD
: synchronní aktualizace adresářeS
: synchronní aktualizaceT
: 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.
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
tar
--xattrs
for creation and extractionbsdtar
-p
for extraction--xattrs
- 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í?