Почему sudoers не определены UID?

Информация для входа связана с UID в Linux. Однако когда я открываю файл sudoers, sudoers определяются именем пользователя вместо UID.

Почему используются имена пользователей вместо UID?
Изменяется ли файл sudoers автоматически при usermod -l это бег?

Snippet:

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

1 ответ

Решение

Следуя некоторым инструкциям [ 1, 2], я могу дать вам следующие ответы:

  1. Можно указать пользователей с UID.

    Из вики sudoers в Ubuntu мы можем прочитать:

    Вы можете вставить комментарии, поставив перед ними префикс #, но это также используется для указания uid в определенных частях файла, когда за ним следует число.

    Позже в разделе псевдонимов Runas приведен пример:

    # 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. Когда вы делаете просто usermod -lВы не должны распространять изменения в sudoers.
    В самом деле, из справочной страницы для usermod, более информативной, чем BSD, мы можем прочитать

    -l, --login NEW_LOGIN
    Имя пользователя будет изменено с LOGIN на NEW_LOGIN. Больше ничего не изменилось.
    В частности, имя домашнего каталога пользователя, вероятно, следует изменить вручную, чтобы отразить новое имя для входа.

    Кажется, все еще подразумевается ручная обработка изменений в sudoers, если вы укажете только -l параметр. Возможно, вам нужно стереть старое имя пользователя и добавить пользователя в группу sudo с помощью

    sudo usermod -a -G sudo hduser
    

    Действительно, так случилось с этим пользователем в 2008 году с системой Debian Sid:

    Я использовал XXX в качестве имени пользователя для входа на свой ноутбук sid, а XXX находится в файле sudoers. сегодня я изменил его на YYY, используя

    sudo usermod -l YYY XXX

    Я больше ничего не делал.

    Теперь я могу войти, используя YYY, но мне не удалось войти в систему, используя пароль root. Также 'YYY' отсутствует в файле sudoers, поэтому теперь я не могу отредактировать /etc/sudoers для включения YYY.

Наконец, почему, вероятно, вы должны получить окончательный ответ только от Тодда Миллера, который сделал последний (выигрышный) форк sudo в 1991 году, или, возможно, от Боба Коггешалла или Клиффа Спенсера, если он придет с 1980 года [ 7].

Рекомендации

Другие вопросы по тегам