GNU/Linux >> Linux Esercitazione >  >> Linux

Differenza tra proprietario/root e Ruid/euid?

Sono relativamente nuovo ai concetti menzionati nella domanda e leggerli da fonti diverse li rende solo più confusi. Quindi questo è quello che ho capito finora:

Quando ci vengono fornite le autorizzazioni per un file, hanno il seguente aspetto:

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

Assumiamo che un utente user2 chi è nel gruppo users tenta di eseguire file.bin . Se il bit setuid non fosse impostato, ciò significherebbe che sia il RUID che l'EUID di file.bin erano uguali all'UID di user2 . Ma poiché il bit setuid è impostato, ciò significa che il RUID è ora uguale all'UID di user2 , mentre EUID è l'UID del proprietario del file, user1 .

Le mie domande sono:

  1. Qual ​​è la differenza tra il proprietario del file e root ? Fa root hanno gli stessi permessi del proprietario? Oppure avremmo bisogno di una voce separata nell'elenco dei permessi per root ?
  2. Differenza tra RUID e EUID?
    • A quanto ho capito, RUID e EUID vengono applicati solo ai processi. Se è così, perché hanno il valore di ID utente?
    • Se RUID è l'utente che crea il processo e EUID è l'utente che sta attualmente eseguendo il processo, la prima frase della prima risposta in questa domanda non ha alcun senso per me.
    • Ho capito bene cosa fa il bit setuid?

Risposta accettata:

Ecco le risposte:

  1. root è sempre pieno accesso a file e directory. Anche il proprietario del file di solito li ha, ma questo non è sempre vero. Ad esempio:

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

    user1 è il proprietario; tuttavia possono solo leggere ed esegui , ma root ha ancora pieno accesso (rwx ) al file.

  2. RUID è l'ID utente reale e non cambia mai (quasi). Se user2 accede al sistema, la shell viene quindi avviata con il suo ID reale impostato su user2 . Tutti i processi avviati dalla shell erediteranno il vero ID user2 come loro vero ID.

    EUID è l'ID utente effettivo , cambia per i processi (non per l'utente) eseguiti dall'utente che hanno impostato il setuid bit .

    Se user2 esegue file.bin , il RUID sarà user2 e l'EUID del processo avviato sarà user1 .

Usiamo il caso di passwd :

-rwsr-xr-x 1 root root 45396 may 25  2012 /usr/bin/passwd
  • Quando user2 vuole cambiare la propria password , eseguono /usr/bin/passwd .

  • Il RUID sarà user2 ma l'EUID di quel processo sarà root .

  • user2 può usare passwd per cambiare solo la propria password perché internamente passwd controlla il RUID e, se non è root , le sue azioni saranno limitate alla password dell'utente reale.

  • È necessario che l'EUID diventi root nel caso di passwd perché il processo deve scrivere a /etc/passwd e/o /etc/shadow .


Linux
  1. Differenza tra 2>&-, 2>/dev/null, |&, &>/dev/null E>/dev/null 2>&1?

  2. Qual è la differenza tra Sudo Su – e Sudo Su –?

  3. Differenza tra Eot ed Eof?

  4. Differenza tra [0-9], [[:digit:]] e D?

  5. Differenza tra le applicazioni Gtk e Qt?

Differenza tra apt e apt-get spiegato

Differenza tra GNUWin32 e cygwin

Differenza tra $HOME e '~' (tilde)?

differenza tra netstat e ss in linux?

Differenza tra ${} e $() in Bash

differenza tra cgroup e namespace