4

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

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

Snippet:

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

1 ответ1

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 ].

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .