Обновить несколько файлов sudoers


8

У нас есть несколько серверов Linux, которые проходят аутентификацию в домене Active Directory. Для группы в AD я хочу добавить список команд, которые могут запускаться от имени пользователя root с помощью sudo. Я могу, очевидно, подключиться к каждому компьютеру и обновить файл sudoers, но это займет некоторое время. Кроме того, root-логин не разрешен. Таким образом, логин без пароля будет работать только для пользователей без полномочий root.

Есть ли быстрый способ обновить файл sudoers сразу для каждого компьютера с Linux? Я имею в виду сценарий Perl или Python с некоторыми возможностями системного администрирования.

Обновление: спасибо veroteq7 и Шейн Мэдден. Я думал о развертывании cfengine в один момент, но у нас его пока нет. Мы решили, что использование LDAP будет лучшим решением. Я получаю сообщение об ошибке при импорте схемы схемы LDIF. ActiveDirectory для sudo. Ошибка «параметр неверен» в строке 144.

Это содержимое строки 144 и далее:

dn: CN=sudoRole,CN=Schema,CN=Configuration,DC=X
changetype: add
objectClass: top
objectClass: classSchema
cn: sudoRole
distinguishedName: CN=sudoRole,CN=Schema,CN=Configuration,DC=X
instanceType: 4
possSuperiors: container
possSuperiors: top
subClassOf: top
governsID: 1.3.6.1.4.1.15953.9.2.1
mayContain: sudoCommand
mayContain: sudoHost
mayContain: sudoOption
mayContain: sudoRunAs
mayContain: sudoRunAsUser
mayContain: sudoRunAsGroup
mayContain: sudoUser
rDNAttID: cn
showInAdvancedViewOnly: FALSE
adminDisplayName: sudoRole
adminDescription: Sudoer Entries
objectClassCategory: 1
lDAPDisplayName: sudoRole
name: sudoRole
schemaIDGUID:: SQn432lnZ0+ukbdh3+gN3w==
systemOnly: FALSE
objectCategory: CN=Class-Schema,CN=Schema,CN=Configuration,DC=X
defaultObjectCategory: CN=sudoRole,CN=Schema,CN=Configuration,DC=X

Команда, которую я использовал:

ldifde -i -f schema.ActiveDirectory -c dc=X dc=DOMAINNAME,dc=LOCAL

Update2: я создал новый вопрос . Спасибо всем за предложения.


Вы, вероятно, должны опубликовать бит изменения схемы AD как отдельный вопрос - я не особо разбираюсь во всех специфических для AD вещах, которые необходимо сделать, чтобы изменить схему LDAP и импортировать новые объекты, но я знаю, что у нас есть Здесь много гуру MS / AD, которые подберут его под тегами active-directory & ldap
voretaq7

Ответы:


16

Почему бы не /etc/sudoersиспользовать AD (LDAP) в качестве магазина sudoers? - Подробнее здесь .

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


Насколько я помню, мы только что сделали AD / Linux / winbind / PAM и добавили группы AD в sudoers- я не знаю, как я никогда этого не нашел. Очень заслуженный +1.
Jscott

@jscott Большим недостатком является то, что многие пакеты sudo не имеют скомпилированного LDAP, поэтому вам, возможно, придется свернуть свой собственный. Я собираю sudo из портов FreeBSD, и у нас уже есть зависимости LDAP для pam_ldap, поэтому для меня это не лишняя головная боль :-)
voretaq7


3

Вы можете определять группы в sudoers ... и извлекать эти группы из центрального хранилища аутентификации ... как Active Directory. Я люблю помещать администраторов домена в мой файл sudoers. Сохраняет много головных болей.


2

Если вы ищете для API , чтобы изменить файл sudoers, вы можете использовать Авгии с объективом Sudoers. Он прекрасно интегрируется с Puppet , но вы также можете использовать его в своем скрипте (есть много привязок).

Посмотрите этот ответ, например.


0

Хмм !! это боль. Другой способ сделать это можно с помощью команды cssh, которая позволит вам открывать несколько окон одновременно. если вы напечатаете что-нибудь в крошечном окне (белое пустое окно), вы заметите, что ваш печатный механизм распространяется по всем окнам. Я бы порекомендовал сделать резервную копию вашего файла suoders и использовать команду visudo для обновления sudoers. если что-нибудь не понравилось в файле sudoer, visudo предложит вам исправить файл.

ура

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.