Como sobrescrever o grupo primário de usuários no Linux?

0

Eu tenho alguns servidores Linux usando o SSSD integrado ao Microsoft AD para autenticar usuários do AD, e estou tentando substituir o grupo primário de usuários nesses servidores.

De acordo com o AD, o grupo primário padrão para todos os usuários é gid = 100001 (posixusers) e eu gostaria que os usuários fossem atribuídos a um gid diferente. Cada usuário teria um grupo primário diferente, sendo esse o seu UID.

Assim, se o UID do usuário john for 1028 e, de acordo com o AD, o seu GID for 100001, eu quero substituir o GID, então seria gid = 1028

Eu acredito que isso pode ser feito usando sss_override, mas há algumas desvantagens, já que eu teria que repetir o mesmo comando em cada servidor Linux ou exportar / importar as listas de substituição e reiniciar o sssd.

Além disso, não sei como automatizar isso quando o usuário fizer login pela primeira vez.

Como você faria isso? Existe alguma outra maneira, além de sss_override? Se não, o que você faria para automatizar isso?

OBSERVAÇÃO: não consigo tocar em nada no AD, pois ele é gerenciado por um departamento diferente, portanto, a única coisa que posso fazer é consultar o serviço AD / LDAP.

Obrigado antecipadamente.

    
por Eloy Acosta 05.01.2017 / 23:09

2 respostas

1

Se você estiver aprovisionando o acesso com base em grupos do AD, é possível alterar rapidamente o GID principal de todos os usuários em um grupo com algo como abaixo:

getent group AD-group-name | awk -F':' '{print $4}' | sed 's/\,/\n/g' \
| xargs -i sss_override user-add {} -g $(getent group AD-group-name) \
| awk -F':' '{print $3}')

em que AD-group-name é o nome do grupo AD / LDAP. Isso deve funcionar antes que um usuário tenha efetuado login se você estiver usando o SSSD com o AD. Como você disse, há algumas ressalvas com sss_override, e isso precisaria ser executado novamente se você estiver provisionando mais usuários. É um pouco hacky, mas você pode executar isso todas as noites como um trabalho do cron ou algo semelhante.

Você também pode executar isso em vários sistemas usando algo como ansible. Está na minha lista para criar um playbook ansible que faz algo assim quando provisionamos um novo usuário.

    
por 22.06.2017 / 00:37
1

Eu não tenho reputação suficiente para responder diretamente à resposta de Gabe, ele funciona muito bem, exceto que ele deve ler:

getent group AD-group-name | awk -F':' '{print $4}' | sed 's/\,/\n/g' \  
| xargs -i sss_override user-add {} -g $(getent group AD-group-name \  
| awk -F':' '{print $3}')

Funcionou muito bem para nós como uma solução alternativa para o limite de grupo do NFS 16.

    
por 26.07.2018 / 08:15