Como classifico os UIDs “/ etc / passwd”?

1

Eu tenho batido minha cabeça neste pequeno projeto nos últimos dias e aqui está como está indo ...

Eu preciso organizar todos os UIDs para vários servidores para que todos os usuários tenham o mesmo UID no seu /etc/passwd . Obviamente, estou tentando encontrar um script adequado para isso, portanto, não preciso fazer isso manualmente.

Se eu tiver 1 servidor correto com os UIDs corretos, alguém poderia recomendar um script gerenciável para sincronizar outros servidores / etc / passwd com o correto?

Cheguei a organizá-lo usando

awk -F ':' '{print$1,$3}' /etc/passwd  

Em seguida, posso usar diff ou sort para comparar o arquivo passwd atualizado com o antigo arquivo passwd .

    
por John Smith 20.09.2011 / 16:51

1 resposta

0

o grawity tem a idéia certa em seu comentário ... se tivesse que ser um script, seria necessário ser bem complicado para trabalhar sem um reboot ... como em mudar todos os uids para algo louco e alto, então para a direita número base com usermod

seria muito mais fácil em python ... e acho que está incluído na maioria das distribuições de linux como padrão agora. se você precisar de um script python que faça o trabalho, diga isso.


#!/usr/bin/env python
import subprocess, shlex


newlistolists = []
with open('/root/masterpasswd', 'r') as newetcpass:
    for line in newetcpass:
        alist = line.split(':')
        newlistolists.append(alist[:])

for entry in newlistolists:
    cmd = 'usermod -o -u ' + entry[2] + ' ' + entry[0]
    thecmd = shlex.split(cmd)
    subprocess.Popen(thecmd)

#insert additional logic for setting groups, shells, etc with relevant commands
#you need to do some error handling too, but it's a fast ugly UID set script

Inclua apenas os nomes de usuário que você deseja alterar em / root / masterpasswd

    
por 20.09.2011 / 17:09