Atualizar arquivo de vários sudoers


8

Temos vários servidores Linux que se autenticam em um domínio do Active Directory. Para um grupo no AD, quero adicionar uma lista de comandos que podem ser executados como root usando o sudo. Obviamente, posso fazer o ssh-in em cada computador e atualizar o arquivo sudoers - mas isso levará algum tempo. Além disso, o login raiz não é permitido. Portanto, logons com menos senha só funcionarão para usuários não raiz.

Existe uma maneira rápida de atualizar o arquivo sudoers para cada computador Linux de uma só vez? Estou pensando em um script Perl ou Python com algumas habilidades de administração do sistema aqui.

Atualização: Obrigado veroteq7 e Shane Madden. Eu tinha pensado em implantar o cfengine em um ponto - mas não o temos atualmente em execução. Decidimos que usar o LDAP seria a melhor solução. Estou recebendo um erro ao importar o esquema do esquema LDIF.ActiveDirectory para sudo. O erro é "o parâmetro não está correto" na linha 144.

Este é o conteúdo da linha 144 em diante:

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

O comando que eu usei é:

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

Update2: criei uma nova pergunta . Obrigado a todos por sugestões.


Você provavelmente deve postar o bit de modificação do esquema do AD como uma pergunta separada - não estou realmente preparado para todas as coisas específicas do AD que precisam ser feitas para modificar o esquema LDAP e importar novos objetos, mas sei que temos um monte de MS / AD gurus aqui que iria buscá-lo sob os ativos-diretório e LDAP marcas
voretaq7

Respostas:


16

Por que não descartar /etc/sudoerse usar o AD (LDAP) como sua loja de sudoers? - Mais informações aqui .

Você já está se autenticando no AD, portanto, este é apenas o próximo passo lógico e fornece um local conveniente e centralizado para lidar com autenticação e autorização.


Desde que me lembro, acabamos de criar o AD / Linux / winbind / PAM e adicionamos grupos de AD ao sudoers- não sei como nunca encontrei isso. Um muito merecido +1.
Jscott 12/12

@jscott A grande desvantagem é que muitos pacotes sudo não têm LDAP compilado, então você pode ter que criar o seu próprio. I construção sudo a partir de portos FreeBSD, e já temos dependências LDAP para pam_ldap, isso não é nenhuma dor de cabeça extra para mim :-)
voretaq7


3

Você pode definir grupos em sudoers ... e extrair esses grupos de um repositório de autenticação central ... como o Active Directory. Adoro colocar administradores de domínio no meu arquivo sudoers. Economiza muita dor de cabeça.


2

Se você estiver procurando por uma API para modificar seu arquivo sudoers, poderá usar o Augeas com a lente Sudoers. Ele se integra perfeitamente ao Puppet , mas você também pode usá-lo em um script seu (há muitas ligações).

Veja esta resposta, por exemplo.


0

Hmm!! é uma dor. da outra maneira, você pode fazê-lo com o comando cssh, que permitirá abrir várias janelas por vez. se você digitar algo na minúscula janela (janela branca em branco), perceberá que sua digitação está se propagando por todas as janelas. eu recomendaria fazer um backup do seu arquivo suoders e usar o comando visudo para atualizar sudoers. se qualquer arquivo sudoer não gostar, o visudo solicitará que você corrija o arquivo.

Felicidades

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.