Skip to content
Snippets Groups Projects
Commit 21e05612 authored by Martin Zimen's avatar Martin Zimen
Browse files

Poznamky o atributech

parent 5e016337
No related branches found
No related tags found
No related merge requests found
# Atributy souborů
## Inode
* Změna skupin uživatele se projeví až při novém přihlášení
> Skupiny přístupné pod heslem
> /etc/gshadow
### Filesystem specific
* např. ext4
* immutable
* append-only
* existuje nějaký bitík na zálohování
## ACL
Jak vypadá pravidlo
* Někumu přiřazuji nějakou množinu
* Pro vlastníka souborů platí množina
* Pro skupinu
* Pro konkrétního uživatele
* Pro konkrétní skupinu
* Pro ostatní
* Maska
* Defaulty
Umožňuje nemonotónní konstrukce (mohu zakázat uživatele)
### Maska
Slouží k tomu, aby programy, které nevědí o ACL nedělaly nebezpečné věci.
Dává horní odhad na práva, která by někdo mohl mít. (Vyjímka user a other z inodových)
### Default
Množina ACL pro adresář, která se přiřazuje dětem.
> Umask
>
> Vlastnost procesu. Při zakládání inode shodí konkrétní práva.
>
> Motivace pro skupinu pro každého uživatele je ten, aby umaska nemusela brát práva pro skupinu.
## Extended attributy
Dá se tam uložit všechno možné (jsou tam např. ACL). Je to key:value. Má to podstromy -- system, user, trusted, security
## Příkazy
* setfacl
* getfacl
* getfattr
* setfattr
* chattr -- je to flagy typu immutable, atd.
* stat
## Man
* acl
* capabilities
* inode
* xattr
See also manuálových stránek mi možná ukáže vhodné příkazy.
# Security model
Zatím ignorujeme security modules. Dodatečně lze definovat bezpečnostní pravidla (může pouze víc omezit).
Existují uživatelé a skupiny. Inody mají vlastníka a vlastnící skupinu. Procesy mají vlastníka, primární skupinu a n sekundárních skupin.
Dva typy kontroly práv:
* Věci, které pouze vlastník (změnit práva inodu, signály)
1) Pokud jsem vlastník, vstahují se na mě práva vlastníka
2) Jinak pokud jsem v nějaké vlastnící skupině, vstahují se na mě práva skupiny
3) Jinak ostatní
Zajímavé věci nastávají, když práva nejsou monotónní. Nedoporučuje se to. Trochu to funguje, ale jsou v tom díry.
Vlastnosti procesu jsou dědičné.
## setuid bit
Je bit, který přepíná, jestli se binárka spustí s právy vlastníka nebo volajícího.
Nefunguje, když je to voláno přes shebang. Volající by mohl ve správnou chvíli přepsat soubor a tím exekutnout libovolný kód.
## Různé druhy UID
Login prostě sobě změní UID a GID. Su funguje stejně akorát s setuid.
Jak ale po změně nevyužije otevřené file deskriptory do /etc/passwd?
> Víc do detailu:
>
> Mám reálné a efektivní UID. Pokud měl nastavené setuid
> * reálné - volající
> * efektivní - vlastník
>
> Pomocí syscallu je mohu mezi sebou měnit.
>
> Saved UID - Posixové rozšíření
>
> * aby se snáze žonglovalo s UID
> * nikdy se nepoužívá ale mám možnost mezi ním přepínat
>
> Filesystem UID (spíš obskurita)
>
> * zjemněné efektive UID, které se používá pouze pro filesystem operace
>
> Tohle je všechno popsané v `man 7 credentials`.
Kvůli bezpečnosti se občas věci, které mají setuid chovají jinak.
> Dumpable flag
>
> Ovlivňuje
## Capabilities
Rozdrobení práv roota
man 7 capabilities
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment