GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi vlastníkem/rootem a ruidem/euidem?

V pojmech zmíněných v otázce jsem relativně nový a číst o nich z různých zdrojů je jen činí více matoucími. Takže tohle jsem zatím pochopil:

Když dostaneme oprávnění k souboru, vypadají takto:

-rwsr-xr-- 1 user1 users 190 Oct 12 14:23 file.bin

Předpokládáme, že uživatel user2 kdo je ve skupině users pokusí se spustit file.bin . Pokud by nebyl nastaven bit setuid, znamenalo by to, že jak RUID, tak EUID souboru file.bin se rovnaly UID user2 . Ale protože je nastaven bit setuid, znamená to, že RUID se nyní rovná UID user2 , zatímco EUID je UID vlastníka souboru, user1 .

Moje otázky jsou:

  1. Jaký je rozdíl mezi vlastníkem souboru a root ? root má stejná oprávnění jako vlastník? Nebo bychom potřebovali samostatnou položku v seznamu oprávnění pro root ?
  2. Rozdíl mezi RUID a EUID?
    • Pokud tomu rozumím, RUID a EUID se vztahují pouze na procesy. Pokud je tomu tak, proč mají hodnotu ID uživatele?
    • Pokud je RUID uživatel, který vytváří proces, a EUID je uživatel, který proces aktuálně spouští, pak mi první věta první odpovědi v této otázce nedává žádný smysl.
    • Pochopil jsem správně, co bit setuid dělá?

Přijatá odpověď:

Zde jsou odpovědi:

  1. root má vždy plné přístup k souborům a adresářům. Vlastník souboru je obvykle má také, ale ne vždy je to pravda. Například:

    -r-xr----- 1 user1 users 199 Oct 14 18:42 otherfile.bin
    

    user1 je vlastníkem; mohou však pouze číst a provést , ale root má stále plný přístup (rwx ) do souboru.

  2. RUID je ID skutečného uživatele a nikdy se (téměř) nezmění. Pokud user2 se přihlásí do systému, shell se pak spustí s jeho skutečným ID nastaveným na user2 . Všechny procesy, které spustí ze shellu, zdědí skutečné ID user2 jako jejich skutečné ID.

    EUID je Efektivní ID uživatele , mění se pro procesy (nikoli pro uživatele), které uživatel spouští a které mají nastavený bit setuid .

    Pokud user2 spustí file.bin , RUID bude user2 a EUID zahájeného procesu bude user1 .

Použijme případ passwd :

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • Když user2 chce změnit heslo , spouštějí /usr/bin/passwd .

  • RUID bude user2 ale EUID tohoto procesu bude root .

  • user2 můžete použít passwd změnit pouze jejich vlastní heslo, protože interně passwd zkontroluje RUID a pokud to není root , jeho akce budou omezeny na skutečné uživatelské heslo.

  • Je nutné, aby se EUID stalo root v případě passwd protože proces potřebuje zapsat do /etc/passwd a/nebo /etc/shadow .


Linux
  1. Rozdíl mezi přihlašovacím prostředím a nepřihlašovacím prostředím?

  2. Rozdíl mezi 2>&-, 2>/dev/null, |&, &>/dev/null A>/dev/null 2>&1?

  3. Jaký je rozdíl mezi Sudo Su – a Sudo Su –?

  1. Rozdíl mezi Eot a Eof?

  2. Rozdíl mezi [0-9], [[:digit:]] a D?

  3. Rozdíl mezi velikostí bloku a velikostí clusteru?

  1. Rozdíl mezi potrubím a rozšířením příkazů?

  2. Rozdíl mezi Nss a Pam?

  3. Rozdíl mezi $HOME a '~' (tilda)?