Remover alguns grupos desnecessários
Etapa 1 - backup completo do sistema
Os comandos nesta resposta podem causar estragos no seu sistema. Faça um backup completo do sistema com o seu método preferido. Valide / teste este backup. Proteja seus backups para que as etapas a seguir não possam prejudicá-los.
Para mais informações sobre backups, veja Wiki da Comunidade Ubuntu - BackupYourSystem . Eu recomendaria o Clonezilla para um backup completo de dados de usuários e usuários. Mas para backups em andamento eu uso Borg Backup .
Etapa 2 - Selecione grupos e usuários para remover
A execução de getent group | egrep \:[1-9][0-9][0-9]\:
listará os grupos no intervalo 100-999. Nessa lista, anote no mínimo 10 grupos indesejados relacionados a contas de convidados. Eles não devem ter nenhum usuário listado como parte do grupo, nem devem ser programas atualmente instalados. O bloco de código a seguir mostra que o quarto campo contém usuários nesse grupo. Destes poucos apenas sambashare tem um usuário. Apenas os grupos "guest" são um problema.
saned:x:122:
uuidd:x:123:
sambashare:x:124:jon
ssh:x:125:
geoclue:x:126:
guest-262uVu:x:127:
guest-qAD7pX:x:128:
guest-H1HJgy:x:129:
guest-fbfgab:x:130:
guest-LdeNZx:x:131:
guest-jIHtqC:x:132:
guest-w7GINW:x:133:
Etapa 3 - Remover grupos indesejados
Nos seguintes comandos, substitua <NEWGID>
por um grupo para armazenar quaisquer arquivos residuais. Você pode usar um grupo existente ou um novo grupo. Também substitua <OLDGID>
por um grupo a ser excluído. Execute os comandos uma vez para cada grupo a ser removido. Se você não quiser que nenhum dos arquivos dos grupos antigos execute o comando potencialmente muito prejudicial find / -group <OLDGID> -exec rm {} \;
. Se você não se importa com quem pode acabar possuindo os arquivos de grupos excluídos, você pode simplesmente executar delgroup --only-if-empty <OLDGID>
.
find / -group <OLDGID> -exec rm {} \;
find / -group <OLDGID> -exec chgrp -h <NEWGID> {} \;
delgroup --only-if-empty <OLDGID>
# example using random groups
find / -group 200 -exec chgrp -h 2000 {} \;
delgroup --only-if-empty 200
Etapa 4 - Limpar
Execute sudo dpkg --configure -a
para concluir a configuração dos pacotes descompactados.
Um script bash cobrindo as etapas 2-4. Abra um editor de texto, copie e passe pelo seguinte bloco de código. Salve o arquivo como guest.sh
. Em um terminal, navegue até onde guest.sh
foi salvo. execute chmod +x guest.sh
, para tornar o arquivo executável. Em seguida, execute ./guest.sh
.
#!/bin/bash
TEMP=$(mktemp --tmpdir)
getent group | grep guest- | cut --delimiter=: -f 3 > "$TEMP"
NGID=$(head -n1 "$TEMP")
GIDS=$(grep -v "$NGID" "$TEMP" | tr '\n' ' ')
for i in $GIDS
do
find / -group "$i" -exec chgrp -h "$NGID" {} \;
delgroup --only-if-empty "$i"
done
rm "$TEMP"
sudo dpkg --configure -a