Какой самый простой способ или способ автоматизировать добавление пользователя в новый файл sudoers?

Итак, я adduser'ed micronxd. Я передал micronxd. теперь я хочу сделать micronxd пользователем sudo.

Я пытаюсь упаковать как можно большую часть этого процесса в сценарий оболочки. Если возможно, может ли решение включать sed'ing файл sudoers? Я хотел бы получить действительно сильное понимание этого ужасного маленького самородка (сед).

2 ответа

Решение

sudoers файл должен действительно редактироваться только с visudo(8),

Тем не менее, возможно, вы должны просто добавить micronxd к wheel группа при добавлении micronxd пользователь, (см. adduser(8) --add_extra_groups вариант), а затем добавить эту строку в sudoers (с помощью visudo(8):)

%wheel ALL=(ALL) ALL

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

(Обратите внимание, что вы можете легко добавить кого угодно wheel группа; vigr(8), Найти wheel группы и добавьте их имя для входа в строку. Используйте запятые для разделения имен пользователей.)

ХОРОШО, ХОРОШО, ХОРОШО! Я полностью получил это. Это может быть немного излишним, но я не уверен, что файлы sudoers одинаковы в разных дистрибутивах.

Документацию по буферу хранения для sed я нашел здесь: http://anaturb.net/sed.htm

и о команде x для sed здесь: http://www.kingcomputerservices.com/unix_101/hands_off_editing_with_sed_part_2.htm

и я придумал это:sed -e '/^root/{h;}' -e 'x' -e 's/root/micronxd/' -e 'x' -e '/^root/G' -e 'wsudoers' sudoers

Вот разбивка 6 шагов:

1. '/ ^ корень /{ч;}'

находит нескомментированные строки, начинающиеся с root, и заменяет им буфер хранения.

  • обычный буфер sed: [весь файл sudoers]
  • удерживающий буфер: root ALL=(ALL) ALL

2. 'Икс'

заменяет удерживающий буфер обычным буфером "be sed".

  • обычный буфер sed: root ALL=(ALL) ALL
  • буфер хранения: [весь файл sudoers]

3. 's / корень /micronxd/'

заменяет корень на micronxd

  • обычный буфер sed: micronxd ALL = (ALL) ALL
  • буфер хранения: [весь файл sudoers]

4. 'Икс'

заменяет удерживающий буфер обычным буфером "be sed", снова.

  • обычный буфер sed: [весь файл sudoers]
  • буфер хранения: micronxd ALL = (ALL) ALL

5. '/ ^ корень /G'

G добавляет буфер хранения после строки, совпадающей с корнем ^.

  • обычный буфер sed (только соответствующие биты):

## Разрешить root ALL=(ALL) ALL запускать любые команды где угодно
root ALL=(ALL) ALL
micronxd ALL = (ALL) ALL

  • буфер хранения: micronxd ALL = (ALL) ALL

6. 'wsudoers'

записывает обычный буфер sed обратно в sudoers

Я уверен, что есть лучший способ, но я пытаюсь освоить sed. плюс, я не был уверен, user MACHINE=COMMANDS ???? это синтаксис для всех систем Linux, или просто Fedora (с чем я имею дело).

В любом случае, я рад видеть другие пути (особенно лучшие).

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