Какой самый простой способ или способ автоматизировать добавление пользователя в новый файл 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 (с чем я имею дело).
В любом случае, я рад видеть другие пути (особенно лучшие).