V Unixu jsem se před dlouhou dobou dozvěděl o chmod
:tradiční způsob nastavení oprávnění na Unixu (a umožnění programům získat oprávnění pomocí setuid, setgid).
Nedávno jsem objevil nějaké novější příkazy na GNU/Linux:
setfacl
rozšiřuje tradičníugo:rwx
bitů at
bitchmod
.setcap
poskytuje větší kontrolu ploutví nežug:s
bitůchmod
.chattr
Umožňuje některé další ovládací prvky (trochu mix) souboru.
Existují nějaké další?
Přijatá odpověď:
chmod
:změna bitů režimu souboru
Použití (osmičkový režim):
chmod <octal-mode> files...
Použití (symbolický režim):
chmod <references><operator><modes> files..
references
je kombinací písmen ugoa
, které určují, který uživatel má přístup k files
bude upraveno:
u
uživatele, který jej vlastníg
ostatní uživatelé vfile
's groupo
ostatní uživatelé, kteří nejsou ve skupině souboru-
a
všichni uživateléPokud je vynecháno, výchozí nastavení pro všechny uživatele, ale pouze oprávnění povolená
umask
jsou upraveny.operator
je jedním ze znaků+-=
:+
přidat zadané bity režimu souboru k existujícím bitům režimu souboru každéhofile
-
odebere zadané bity režimu souboru ze stávajících bitů režimu souboru každéhofile
=
přidá zadané bity a odebere nespecifikované bity, kroměsetuid
asetgid
bity nastavené pro adresáře, pokud to není výslovně uvedeno.
mode
se skládá z kombinace písmenrwxXst
, které určují, který bit oprávnění se má upravit:r
čístw
psátx
spustit (nebo vyhledat adresáře)X
vykonat/vyhledat pouze v případě, že soubor je adresář nebo již má pro některého uživatele nastaven spouštěcí bits
setuid nebo setgid (v závislosti na zadanýchreferences
)t
příznak omezeného smazání nebo lepivý bit
Případně
mode
se může skládat z jednoho z písmenugo
, v takovém případě režim odpovídá oprávněním aktuálně uděleným vlastníkovi (u
), členovéfile
's group (g
) nebo oprávnění uživatelů v žádné z předchozích kategorií (o
).
Různé části chmod
vysvětlil:
- Řízení přístupu (viz také
setfacl
)rwx
— číst (r), zapisovat (w) a spouštět/křížovat (x) oprávnění.- Read (r) ovlivňuje, zda lze číst soubor nebo zda lze vypsat adresář.
- Zápis (w) ovlivňuje, zda lze do souboru zapisovat nebo zda lze adresář upravovat (přidávat, mazat, přejmenovávat soubory).
- Spustit (x) ovlivní, zda lze soubor spustit, použít pro skripty (viz
#!
) a další spustitelné soubory. - Křížka (x) ovlivňuje, zda lze adresářem procházet.
s
at
— sticky bit (t) a setgid (s) v adresářích- Pasný bit ovlivňuje pouze adresáře. Zabrání komukoli kromě vlastníka souboru a roota ve smazání souborů v adresáři.
- bit setgid v adresářích způsobí, že nové soubory a adresáře budou mít skupinu nastavenou na stejnou skupinu a nové adresáře budou mít nastaven bit setgid (viz také výchozí hodnoty v setfacl).
s
— setuid, setgid, na spustitelné soubory.- Pokud nevíte, co děláte, může to nepříznivě ovlivnit zabezpečení.
- Pokud je při spuštění spustitelného souboru nastaven jeden z těchto bitů, pak se skutečným uživatelem/skupinou spustitelného souboru stane uživatel/skupina souboru. Program tedy běží jako tento uživatel. viz
setcap
pro modernější způsob, jak toho dosáhnout.
chown
chgrp
:
chattr
:změna atributů souboru
Použití:
chattr <operator><attribute> files...
operator
je jedním ze znaků +-=
:
* +
přidá vybrané atributy ke stávajícím attributes
ze files
* -
odstraní vybrané attributes
* =
přepíše aktuální sadu atributů, které mají soubory, zadanými attributes
.
attribute
je kombinací písmen acdeijstuADST
, které odpovídají atributům:
a
pouze připojitc
komprimovanýd
žádná skládkae
formát rozsahui
neměnnýj
žurnálování dats
bezpečné smazánít
žádné slučování ocasuu
nesmazatelnýA
žádnéatime
aktualizaceD
synchronní aktualizace adresářůS
synchronní aktualizaceT
vrchol hierarchie adresářů
setfattr
:změna atributů rozšířeného souboru
Použití (nastavení atributu):
setfattr -n <name> -v <value> files...
Použití (odstranit):
setfattr -x <name> files...
name
je název rozšířeného atributu, který se má nastavit nebo odebrat
value
je nová hodnota rozšířeného atributu
setfacl
:změna seznamů řízení přístupu k souborům
Použití:
setfacl <option> [default:][<target>:][<param>][:<perms>] files...
option
musí obsahovat jednu z následujících položek:
--set
nastavit ACL souboru nebo adresáře a nahradit předchozí ACL-m
|--modify
upravit ACL souboru nebo adresáře-
-x
|--remove
odstranit položky ACL souboru nebo adresářetarget
je jedno z písmenugmo
(nebo delší forma zobrazená níže): -
u
,users
oprávnění jmenovaného uživatele identifikovaného pomocíparam
, výchozí je vlastník souboruuid
pokud je vynechán g
,group
oprávnění pojmenované skupiny označenéparam
, výchozí je vlastnící skupinauid
pokud je vynechánm
,mask
účinná maska práv-
o
,other
oprávnění ostatníchperms
je kombinací písmenrwxX
, která odpovídají oprávněním: -
r
číst w
psátx
provést-
X
spustit pouze v případě, že soubor je adresář nebo již má oprávnění ke spuštění pro některého uživatelePřípadně
perms
může být osmičková číslice (–
7
) označující sadu oprávnění.
setcap
:změna možností souboru
Použití:
setcap <capability-clause> file
capability-clause
sestává ze seznamu názvů funkcí oddělených čárkami, za kterým následuje seznam dvojic operátor-příznak.
Dostupné operátory jsou =
, +
a -
. Dostupné příznaky jsou e
, i
a p
které odpovídají Efektivní , Dědičné a Povoleno sady schopností.
=
operátor zvýší specifikované sady schopností a resetuje ostatní. Pokud nejsou uvedeny žádné příznaky ve spojení s =
operátora, všechny sady schopností budou resetovány. +
a -
operátoři zvýší nebo sníží jednu nebo více specifikovaných sad schopností.
chcon
:změna kontextu zabezpečení SELinux
Použití:
chcon [-u <user>] [-r <role>] [-t <type>] files...
uživatel je uživatel SELinuxu, například user_u
, system_u
nebo root
.
role je role SELinux (vždy object_r
pro soubory)
typ je předmět typu SELinux
chsmack
:změna rozšířených atributů SMACK
Použití:
chsmack -a <value> file
value
je štítek SMACK, který se má nastavit pro SMACK64
rozšířený atribut souboru
setrichacl:změna rozšířeného seznamu řízení přístupu.
richacls jsou funkce, která přidá pokročilejší ACL.
V současné době se na nich pracuje, takže vám o nich nemohu moc říct. Nepoužil jsem je.