Redefinir todos os grupos para o padrão

3

Recentemente, configurei alguns grupos e usuários em minha máquina e agora quero remover todos esses usuários e todos esses grupos. Algo estupidamente, eu li em um fórum do Ubuntu ou algo assim que era possível apenas editar o arquivo de texto que contém todas as informações do grupo. Mas agora, sempre que eu começo um terminal, eu pego

groups: cannot find name for group ID 1002

que obviamente não é a coisa certa.

Então, como posso remover todos os grupos e usuários que criei há alguns meses?

    
por ixtmixilix 09.03.2011 / 21:46

3 respostas

4

Você pode editar /etc/passwd e amigos ( /etc/group , /etc/shadow , /etc/gshadow ) manualmente, mas há mais risco de cometer um erro (como excluir uma linha que você não quis) do que ao usar ferramentas de nível superior.

Use vigr em vez de chamar seu editor diretamente em /etc/group ( vigr -s para /etc/gshadow , vipw ( -s ) para /etc/passwd ( /etc/shadow )). Isso tem dois benefícios. Primeiro, esses utilitários bloqueiam os arquivos para garantir que alguém ou outras ferramentas não os editem ao mesmo tempo. Em segundo lugar, eles criam um backup ( /etc/group- ,…).

Verifique se você tem /etc/group- ou talvez um backup de outra ferramenta (por exemplo, /etc/group.bak ). Pode estar um pouco desatualizado, mas ainda será melhor do que começar do zero.

Se você não tiver modificado /etc/gshadow , poderá encontrar os nomes dos grupos ausentes, mas não os números. Se você apagou entradas abaixo de 100, seus nomes e números são idênticos em todas as instalações de uma determinada versão do Ubuntu (você ainda terá que adicionar usuários locais aos grupos do sistema, conforme desejado). As entradas entre 101 e 999 são alocadas quando um pacote é instalado e não consigo pensar em uma maneira fácil de reconstruí-las. Entradas acima de 1000 são o que você criou.

Eu recomendo configurar o controle de versão para /etc . Se você tivesse feito isso, você poderia simplesmente restaurar a partir de uma versão de trabalho. Veja Existe um diário do sistema que eu possa instalar? Em poucas palavras:

apt-get install etckeeper
etckeeper init

Suas alterações serão salvas ("confirmadas") uma vez por dia, antes e depois da instalação de pacotes, ou sempre que você executar bzr commit de /etc . Para ver o que você mudou, execute bzr diff . Para restaurar a última versão confirmada, execute bzr revert group de /etc .

    
por 10.03.2011 / 21:50
2

É verdade que você pode editar o arquivo de texto /etc/group . Parece que você excluiu demais ou deixou o arquivo em um estado quebrado. Precisa ser uma entrada por linha, neste formato:

group_name:x:###:

para grupos "vazios" ou

group_name:x:###:username

para grupos com um membro ou

group_name:x:###:username2,username2

para grupos com vários membros. Eu coloco "vazio" entre aspas porque você também pode ser um membro de um grupo se estiver definido como seu grupo primário em /etc/passwd - é o quarto campo lá.

(O "x" pode, na verdade, ser um hash de senha, mas isso é muito raramente usado nos dias de hoje. É quase certo que todos os "x" estarão no seu sistema.)

Se você tiver linhas em branco estranhas ou mal formatadas, isso pode atrapalhar as coisas.

O arquivo também precisa ter permissões legíveis para o mundo.

Idealmente, você tem um backup do arquivo de alguns meses atrás. Mas eu entendo o mundo real. :)

Existe também um arquivo /etc/gshadow . Se você estiver usando senhas de grupo (e como eu disse, quase ninguém faz), seus valores de hash devem ser mantidos aqui em vez de /etc/group , porque esse arquivo deve ser legível apenas pelo root. Esse arquivo também pode ser usado para designar administradores de grupo, que podem adicionar membros usando determinadas ferramentas de linha de comando. (Eu não sei de ninguém usando essa funcionalidade também.)

Este arquivo deve ser mantido em sincronia com /etc/group . O uso de ferramentas de linha de comando ou GUI para gerenciar grupos fará isso automaticamente, o que é outro motivo para considerar usá-los em vez de apenas editar o arquivo. No entanto, na prática, este arquivo pode estar completamente fora de sincronia e até mesmo todos os munged up e seu sistema geralmente funcionará bem. Isso não resultará no erro que você está vendo.

Gilles acrescenta em um comentário abaixo que você pode procurar no arquivo /etc/gshadow informações sobre como as coisas devem ser. Isso não terá todas as informações importantes (como o número de ID do grupo), mas terá os nomes dos grupos e, provavelmente, as informações de associação do grupo.

Também pode haver um arquivo /etc/group- (observe o - no final) - este é o arquivo de backup padrão criado por algumas ferramentas para manipular /etc/group/ . Se você tiver sorte, terá tudo o que você precisa. (Muitas vezes não é de muita ajuda, porque é apenas um backup. E programas como gpasswd não o atualizam.)

    
por 09.03.2011 / 21:56
0

É tão simples quanto o arquivo passwd tem seu grupo primário como 1002, mas você removeu esse grupo do arquivo de grupo. Portanto, não há como resolver o nome. Além disso, os arquivos ainda terão os IDs de usuário e grupo que eles têm antes.

Não é uma boa ideia adicionar usuários e grupos, é melhor desativá-los. Se houver uma referência em algum lugar no sistema, você adiciona um novo usuário / grupo que pega o ID antigo, então pode parecer que ele criou o arquivo, dá acesso a informações pessoais, etc.

    
por 10.03.2011 / 22:29

Tags