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

StackOverflow https://stackoverflow.com/questions/5347489

  •  27-10-2019
  •  | 
  •  

Вопрос

Итак, я Adduser'ed Micronxd. Я прохожу Micronxd. Теперь я хочу сделать Micronxd пользователем Sudo.

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

Это было полезно?

Решение

А 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/{h;}'

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

  • Обычный буфер SED: [весь файл Sudoers
  • удерживающий буфер: root all = (все) все

2. 'Икс'

Поменяется удерживающим буфером регулярным буфером «быть sed'd».

  • Обычный буфер SED: root all = (все) все
  • Удерживание буфера: [весь файл Sudoers

3. s/root/micronxd/'

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

  • Обычный буфер SED: micronxd все = (все) все
  • Удерживание буфера: [весь файл Sudoers

4. 'Икс'

Опять же, обменивается удерживающим буфером регулярным буфером «быть SED'D».

  • Обычный буфер SED: [весь файл Sudoers
  • удерживающий буфер: micronxd все = (все) все

5. '/^root/g'

G добавляет буфер удержания после соответствия линии ^корень.

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

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

  • удерживающий буфер: micronxd все = (все) все

6. 'wsudoers'

пишет обычный буфер SED обратно в Sudoers

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top