Добавление существующего пользователя группе с марионеткой

Я - парень Redhat, таким образом, я не эксперт по SuSe, но на основе того хост SuSe, у меня есть доступ к SuSe, эквивалентному rc.sysinit /etc/init.d/boot

rc.sysinit (в системах Redhat), сценарий, который init называет для начинания процесса запуска.

В основном необходимо проверить Вас /etc/inittab для строк, которые содержат sysinit, boot или bootwait и это будет сценарий, указанный в одной из тех строк.

В системе SuSe у меня есть доступ к соответствующей строке в /etc/inittab похож на это:

# First script to be executed, if not booting in emergency (-b) mode
si::bootwait:/etc/init.d/boot

Посмотрите man inittab для получения дополнительной информации.

16
задан 17 February 2014 в 17:59
3 ответа

Если вы объявляете пользователей как виртуальные ресурсы , вы можете затем использовать «реализовать» или синтаксис коллекции (Пользователь <| ... |>). Вот пример:

@user { 'foo':
  groups     => ['somegroup'],
  membership => minimum,
}

Затем представьте этого виртуального пользователя с синтаксисом коллекции then:

User <| title == foo |>

И в другом месте вы можете добавить к параметрам этого виртуального ресурса, используя добавочное обозначение:

User <| title == foo |> { groups +> "svn" }
15
ответ дан 2 December 2019 в 20:34

Использование виртуальных ресурсов Puppet - правильный способ сделать это, но если вы не можете изменить определения пользователей и тем временем нуждаетесь в исправлении обходного пути, следующее будет ужасным и хакерским, но будет работать:

exec { 'foo somegroup membership':
  unless  => '/bin/grep -q "somegroup\\S*foo" /etc/group',
  command => '/sbin/usermod -aG somegroup foo',
  require => User['foo'],
}

По сути, мы просто проверяем, содержит ли некоторая группа пользователя foo ... если нет, используйте обычные команды usermod, чтобы добавить его в дополнение к существующим группам, которым принадлежит foo.

21
ответ дан 2 December 2019 в 20:34

Спасибо - уродливый хакер, но он выполняет свою работу. Вот патчированный пример (объединяющий приведенные выше комментарии) для добавления nrpe в группу nagios. Я использовал пакет require, поскольку здесь пользователю предоставляется RPM, а не марионетка.

  exec {"nrpe nagios membership":
    unless => "/bin/getent group nagios|/bin/cut -d: -f4|/bin/grep -q nrpe",
    command => "/usr/sbin/usermod -a -G nagios nrpe",
    require => Package['nrpe'],
  }
2
ответ дан 2 December 2019 в 20:34

Теги

Похожие вопросы