Por que os sudoers não são definidos pelo UID?

4

As informações de login estão vinculadas a UIDs no Linux. No entanto, quando abro o arquivo sudoers, os sudoers são definidos por nome de usuário em vez de UID.

Por que nomes de usuários são usados em vez de UID?
O arquivo sudoers é alterado automaticamente quando usermod -l é executado?

Snippet:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    
por Flightkick 14.10.2015 / 21:02

1 resposta

1

Seguindo alguns manuais [ 1 , 2 ] Eu posso te dar estas respostas:

  1. É possível indicar os usuários com o UID .

    Do sudoers wiki do ubuntu , podemos ler:

    You can insert comments by prefixing them with a # but this is also used to specify a uid in certain parts of the file when it is followed by a number.

    Mais adiante na seção Aliases do Runas é relatado um exemplo:

    # 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 você faz simplesmente usermod -l você não deve propagar a mudança nos sudoers.
    De fato, a página man do usermod , mais informativa do que a BDs , podemos ler

    -l, --login NEW_LOGIN
    The name of the user will be changed from LOGIN to NEW_LOGIN. Nothing else is changed.
    In particular, the user's home directory name should probably be changed manually to reflect the new login name.

    Parece ainda implicar um cuidado manual da modificação nos sudoers se você especificar apenas o parâmetro -l . Provavelmente você tem que apagar o antigo nome de usuário e adicionar o usuário ao grupo sudo com

    sudo usermod -a -G sudo hduser
    

    De fato, aconteceu em este usuário no 2008 com um sistema Debian Sid:

    I used to use XXX as username to login to my sid laptop and XXX is in sudoers file. today I changed it to YYY using

    sudo usermod -l YYY XXX

    I did nothing else.

    Now I can login using YYY but I was not able to su to root using the root password. Also 'YYY' is not in sudoers file so now I can not edit /etc/sudoers to include YYY.

Finalmente, por que , provavelmente você deve obter uma resposta definitiva somente de Todd Miller que fez a último (vencedor) garfo de sudo em 1991, ou talvez de Bob Coggeshall ou Cliff Spencer se vier de 1980 [ 7 ].

Referências

por 15.10.2015 / 12:07