Adiciona o usuário do Domínio AD aos sudoers da linha de comando

10

Estou configurando uma VM do servidor Ubuntu 11.04 para uso como um servidor de banco de dados. Isso tornaria a vida de todos mais fácil se pudéssemos ter o login de pessoas usando as credenciais do Windows e talvez até fazer a máquina funcionar com a segurança atual orientada pelo AD que temos em outro lugar.

A primeira parte disso foi muito fácil de realizar - apt-get install likewise-open e eu estava praticamente no negócio. O problema que estou tendo é colocar nossos administradores nos grupos sudoers - não consigo pegar nada. Eu tentei:

a) usermod -aG sudoers [username]
b) adicionar os nomes de usuários em vários formatos (DOMÍNIO \ usuário, usuário @ domínio) ao arquivo sudoers.

Nada disso pareceu acontecer, ainda sou informado de que "DOMAIN \ user não está no arquivo sudoers. Esse incidente será relatado".

Então, como adiciono usuários não locais aos sudoers?

    
por Wyatt Barnett 30.09.2011 / 20:09

6 respostas

6

Encontrei esse problema e aqui está minha solução:

Edite /etc/sudoers : com as seguintes entradas

Primeiro, verifique o aduser usando o ID do comando

#id <AD user>( #id domain\aduser01 )

Resultados no meu:

SMB\aduser01@linux01:~/Desktop$ id smb\aduser02
uid=914883676(SMB\aduser02) gid=914883073(SMB\domain^users) groups=914883073(SMB\domain^users),1544(BUILTIN\Administrators),1545(BUILTIN\Users),914883072(SMB\domain^admins)

getent passwd e gid NUMBERS não funcionam para mim. DOMAIN\domain^users funciona para mim

%SMB\domain^users ALL=(ALL) ALL

como todos sabemos, o usuário individual do AD também trabalha

SMB\<aduser01> ALL=(ALL) ALL
    
por Jao Madn 06.06.2012 / 20:39
2

temos um nome de domínio longo com sufixo .local

neighter o

%domainname\group ALL=(ALL) ALL

nem o

%domainname.local\group ALL=(ALL) ALL

trabalhou ...

mas se eu usar apenas o nome do grupo assim:

%Domain^Admins ALL=(ALL) ALL

funciona.

    
por user387622 13.03.2015 / 12:06
2

O problema com as outras sugestões é que

  • eles só funcionam quando você tem acesso à LAN corporativa (ou VPN)
  • você precisa manter o arquivo sudoers em todos os computadores o tempo todo
  • como bônus, eles não funcionaram para mim - de todo

Em vez disso, eu queria algo que

  • armazena em cache as credenciais e o acesso sudo
  • é gerenciado centralmente

A solução real está usando o SSSD e estendendo o esquema do AD. Dessa forma, o SSSD obtém as configurações do sudo e as credenciais do usuário periodicamente do AD e mantém um cache local delas. As regras sudo são então armazenadas em objetos AD, onde você pode restringir regras a computadores, usuários e comandos, até mesmo - tudo isso sem nunca tocar em um arquivo sudoers nas estações de trabalho.

O tutorial exato é muito longo para ser explicado aqui, mas você pode encontrar o guia passo-a-passo e alguns scripts para ajudar com a automação aqui:

  • Integrando o Ubuntu ao Active Directory

TL; DR:

AD

Pegue a versão mais recente do sudo , obtenha o arquivo doc / schema.ActiveDirectory e, em seguida, importe-o (certifique-se de modificar o caminho do domínio de acordo com o nome do seu domínio):

ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" "CN=Schema,CN=Configuration,DC=ad,DC=foobar,DC=com" -j .

Verifique com ADSI Edit: abra o contexto de nomeação Schema e procure pela classe sudoRole .

Agora, crie a UO sudoers em sua raiz de domínio. Essa UO manterá todas as configurações de sudo para todas as suas estações de trabalho Linux. Sob essa OU, crie um objeto sudoRole. Para criar o objeto sudoRole, é necessário usar o ADSI Edit, mas, depois de criado, você pode usar Usuários e Computadores do Active Directory para modificá-lo.

Vamos supor que eu tenha um computador chamado foo32linux , um usuário chamado stewie.griffin e eu quero deixá-lo executar todos os comandos com o sudo nessa composição. Nesse caso, eu crio um objeto sudoRole sob a UO sudoers . Para o sudoRole você pode usar qualquer nome que quiser - eu mantenho o nome do computador, já que eu uso regras por computador. Agora defina seus atributos da seguinte forma:

  • sudoHost : foo32linux
  • sudoCommand : ALL
  • sudoUser : stewie.griffin

Para os comandos, você também pode usar entradas específicas, como / bin / less ou qualquer outra coisa.

SSSD

Adicione ao seu /etc/sssd/sssd.conf , pelo menos:

[sssd]
services = nss, pam, sudo

[domain/AD.FOOBAR.COM]
cache_credentials = True

O SSSD atualiza seu cache local com as regras atualizadas a cada poucas horas, mas a maneira mais simples de testá-lo é apenas reinicializar o computador. Em seguida, faça o login com o usuário AD e verifique:

sudo -l

Ele deve listar todas as entradas relacionadas adicionadas ao usuário e ao computador. Fácil-peasy!

    
por bviktor 02.11.2015 / 18:55
1

A melhor informação que pude encontrar sobre o assunto está aqui:

link

Ele basicamente pede que você modifique seu arquivo /etc/sudoers com a configuração correta para permitir que as pessoas do grupo de administradores do AD tenham acesso a todos os privilégios.

Se você precisar ser seletivo e restrito pelo usuário, também poderá fazer isso. Mas ele avisa que você deve certificar-se de descobrir qual é o nome do usuário no sistema linux usando o comando getend passwd como mostrado.

    
por Martin Owens -doctormo- 30.09.2011 / 20:32
0

Usando o Centify direct , adicionei o usuário do domínio ao arquivo / etc / sudoers.

(usuário do domínio) ALL = (ALL) ALL

    
por user160720 22.05.2013 / 01:53
0

Eu uso o comando comum

sudo usermod -a -G sudo DOMAIN\username 

e substitua DOMAIN\user por DOMAIN\\username .

    
por Paramanand Dubey 21.05.2015 / 12:01