Perché i sudoer non sono definiti dall'UID?


4

Le informazioni di accesso sono legate agli UID in Linux. Tuttavia, quando apro il file sudoers, i sudoer sono definiti dal nome utente anziché dall'UID.

Perché vengono usati nomi utente anziché UID?
Il file sudoers cambia automaticamente quando usermod -lviene eseguito?

Frammento:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL

Puoi inserire commenti aggiungendo il prefisso con un # ma questo è anche usato per specificare un uid in alcune parti del file quando è seguito da un numero vedi qui per esempio
Hastur

@Hastur Va bene, quindi è possibile fare riferimento agli uid prefissandoli con un #. Perché questo non viene fatto per impostazione predefinita? vale a dire: #0 ALL=(ALL:ALL) ALL invece di root ALL=(ALL:ALL) ALL È un po 'strano legare queste regole di sicurezza a uno specifico nome utente o nome gruppo poiché possono essere cambiate. Gli ID utente e ID gruppo non possono essere modificati.
Flightkick,

Puoi cambiare UID e GUID, partendo dal etc/passwd( etc etc ) e facendo chown -R newUID:newGUIDcon qualche cura aggiuntiva ... BTW L'idea è quella di creare un alias per gruppi sudo, per gruppo di gruppo e così via ... quindi l'UID dovrebbe diventare rapidamente un casino da amministrare ... ma la risposta definitiva suppongo che tu possa avere solo da chi l'ha fatto e lo sta ancora migliorando e lavorando su ... (Todd)
Hastur

Risposte:


1

Seguendo alcuni manuali [ 1 , 2 ] posso darti queste risposte:

  1. È possibile indicare gli utenti con l'UID .

    Dal wiki sudoers di Ubuntu possiamo leggere:

    È possibile inserire commenti inserendo il prefisso con un # ma questo viene anche usato per specificare un uid in alcune parti del file quando è seguito da un numero.

    Più avanti nella sezione degli alias Runas viene riportato un esempio:

    # UID 0 is normally used for root  
    # Note the hash (#) on the following line indicates a uid, not a comment.  
    Runas_Alias ROOT = #0
    
  2. Quando fai semplicemente usermod -lnon dovresti propagare il cambiamento nei sudoers.
    In effetti dalla pagina man di usermod , più istruttiva di quella di BSD , possiamo leggere

    -l, --login NEW_LOGIN
    Il nome dell'utente verrà modificato da LOGIN a NEW_LOGIN. Nient'altro è cambiato.
    In particolare, il nome della directory home dell'utente dovrebbe probabilmente essere modificato manualmente per riflettere il nuovo nome di accesso.

    Sembra ancora implicare una cura manuale della modifica nei sudoers se si specifica solo il -lparametro. Probabilmente devi cancellare il vecchio nome utente e aggiungere l'utente al gruppo sudo con

    sudo usermod -a -G sudo hduser
    

    In effetti così è successo a questo utente nel 2008 con un sistema Debian Sid:

    Usavo XXX come nome utente per accedere al mio laptop sid e XXX è nel file sudoers. oggi l'ho cambiato in YYY usando

    sudo usermod -l YYY XXX

    Non ho fatto nient'altro.

    Ora posso accedere utilizzando YYY ma non sono stato in grado di eseguire il root su utilizzando la password di root. Inoltre 'YYY' non è nel file sudoers, quindi ora non posso modificare / etc / sudoers per includere YYY .

Infine perché , probabilmente dovresti ottenere una risposta definitiva solo da Todd Miller che ha fatto l'ultimo (vincente) fork di sudo nel 1991, o forse da Bob Coggeshall o Cliff Spencer se arriva dal 1980 [ 7 ].

Riferimenti


Grazie per l'elaborazione. Quindi, ad esempio, se creo un utente A e gli conferisco i privilegi completi, dopo un po 'elimino l'utente A e dimentico di rimuovere il suo nome utente specifico dal file sudoers, poi dopo un altro mentre creo un account per l'utente B che ha il lo stesso nome utente di A, allora B avrà anche i privilegi completi sul sistema? Insieme alla storia di "Il ragazzo che hai fatto usermod -l" a cui ti riferivi, mi chiedo perché questo design sia ancora utilizzato al giorno d'oggi, non ha davvero senso ... Grazie per il tuo tempo e il tuo impegno.
Flightkick,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.