GNU/Linux >> Znalost Linux >  >> Linux

Jaký je účel každého z různých UID, který proces může mít?

Každý proces UNIX má přiřazena 3 UID. Oprávnění superuživatele je UID=0.

Skutečné UID

Toto je UID uživatele/procesu, který vytvořil TENTO proces. Lze jej změnit pouze v případě, že běžící proces má EUID=0.

Efektivní UID

Toto UID se používá k vyhodnocení oprávnění procesu k provedení konkrétní akce. EUID lze změnit buď na RUID, nebo SUID, pokud EUID!=0. Pokud EUID=0, lze jej změnit na cokoli.

Uložené UID

Pokud spustíte spustitelný soubor s nastaveným bitem set-UID, pak výsledný běžící proces začne se skutečným UID skutečného uživatele, který jej spouští, a účinným a uloženým UID vlastníka spustitelného souboru. Pokud pak proces zavolá setuid() nebo seteuid() ke změně jejich efektivního UID, mohou stále získat zpět svá původní oprávnění díky uloženému UID. Pokud není nastaven bit set-UID, bude SUID RUID.


Skutečné uid je id uživatele, který spustil proces.

Efektivní uid je obvykle stejné jako skutečné uid. Liší se pouze tehdy, když:

  • spustitelný soubor měl nastavený bit set-uid a vlastník spustitelného souboru je jiný než uživatel, který jej volá

  • nebo pokud proces set-uid volá setuid(2). Pokud má proces oprávnění superuživatele, je povolen jakýkoli argument pro setuid(2) (ale pak se všechny *-uid nastaví na stejnou hodnotu); jinak lze setuid(2) volat s real-uid nebo efektivní-uid nebo save-uid.

Uložené-uid je efektivní-uid, které měl proces při svém spuštění, a je uloženo, aby bylo povoleno jako argument pro různá systémová volání set*uid.

Všimněte si, že proces s privilegiem superuživatele, který volá setuid(2) za účelem změny jeho efektivního uid, bude mít také skutečné uid a uložené uid změněno na stejnou hodnotu, takže by se místo něj mělo použít seteuid(2) jiné než POSIX.

Vše výše uvedené platí také pro (skutečně|efektivní|uložená) ID skupin.


Kromě skutečných, efektivních a uložených UID mají unixové systémy s povoleným auditováním také auditní UID. AUID procesu identifikuje uživatele, který proces spustil; nemění se pomocí setuid(2) nebo seteuid(2). Záměrem je, aby zůstal v průběhu procesu konstantní a používal se pouze k označování záznamů auditu. Pokud tedy uživatel spustí privilegovaný shell (dokonce i autorizovaný uživatel pomocí příkazu su nebo sudo), jsou auditní záznamy tohoto procesu označeny od tohoto uživatele.


Linux
  1. Jaký je účel uživatele „mysql.sys@localhost“.

  2. Jaký je účel skupiny „wheel“ v Linuxu

  3. Jaký je účel souboru .bashrc v Linuxu

  1. Jaký je aktuální zdrojový kód jádra Linuxu?

  2. Jak mohu zobrazit využití paměti každého procesu, když udělám 'ps -ef'?

  3. Co dělat, když Ctrl + C nemůže zabít proces?

  1. Jaká je definice relace v linuxu?

  2. Jaký je účel cd ` (backtick)?

  3. Jak se může zdát, že proces má ve výstupu ps jiný název?