AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 784720
Accepted
Z0OM
Z0OM
Asked: 2024-10-08 18:35:52 +0800 CST2024-10-08 18:35:52 +0800 CST 2024-10-08 18:35:52 +0800 CST

como posso excluir ou desativar grupos primários no debian gnu/linux?

  • 772

Quero excluir certos grupos no meu sistema Debian GNU/Linux, mas alguns deles são grupos primários.

Por exemplo, se eu quiser excluir o grupo newsusando/sbin/groupdel news

Eu entendi a mensagem The primary group of the user "news" could not be removed.

  1. Como posso excluí-lo usando um comando shell?

  2. Se eu excluir manualmente grupos específicos nos arquivos:

/etc/group

/etc/gshadow

/etc/passwd

/etc/security/group.conf

Há mais alguma coisa que eu precise considerar ou excluir em outro lugar?

  1. Os grupos também serão excluídos/desativados se eu simplesmente comentar as linhas nesses arquivos?

  2. Qual é a melhor maneira de excluir grupos primários que realmente não são necessários?

Editar:

Eu entendo as respostas. Ainda assim, quero deletar jogos como exemplo.

Agora verifiquei find / -group games 2>/dev/nullquais find / -user games 2>/dev/nullarquivos o usuário ou grupo usa ou têm direitos para jogos.

Encontrei 4 arquivos para dialout find / -group dialout 2>/dev/null, mas nada para jogos.

Excluí os jogos de usuário e grupo, mas após reiniciar, a entrada estava presente novamente em /etc/group.

Onde mais devo procurar por que a entrada está sendo regenerada?

Preciso procurar o pacote correspondente para excluir o número e a etiqueta?

Como encontro todas as entradas, pacotes e arquivos relacionados aos jogos em grupo?

Então, além da codificação fixa, não é possível.

Eu entendi corretamente todas as respostas?

Se eu excluir um pacote específico que criou o usuário, o grupo será excluído, mas, caso contrário, terei que pesquisar em todo o sistema e isso talvez danifique meu sistema.

Ainda seria bom saber onde mais as entradas estão presentes para grupos.

Agora tentei o seguinte (mesmo que nem todos façam sentido):

Verificar dados do grupo
getent group games

Pesquisar arquivos do grupo
find / -group games 2>/dev/null

Pesquisar arquivos do usuário
find / -user games 2>/dev/null

Listar pacotes instalados
dpkg -l | grep games

Verifique as dependências de um pacote
apt-cache rdepends games

Verificar processos
ps aux | grep games

Pesquisar logs do sistema
grep games /var/log/syslog

Verificar serviços
systemctl list-units --type=service | grep games

Verifique os arquivos de configuração
grep -r games /etc/

Verifique todos os arquivos em /
grep -r games /

Com o último comando, encontrei muita coisa, mas como as respostas já dizem, é muita desordem.

Obrigado pelas respostas!

bash
  • 3 3 respostas
  • 67 Views

3 respostas

  • Voted
  1. Best Answer
    user10489
    2024-10-08T19:24:11+08:002024-10-08T19:24:11+08:00

    Outro ponto de vista sobre isso...

    Você não pode excluir grupos de forma alguma. Um grupo é apenas um número, e você não pode excluir um número e fazê-lo desaparecer. Ele ainda existe.

    O que você encontra em /etc/group não é um grupo, mas um rótulo para um grupo. Então, se você excluir o rótulo, mas o grupo ainda estiver em uso, você terá dois problemas:

    • O grupo não terá rótulo e, quando for usado, aparecerá apenas como um número com um significado misterioso.
    • Como o rótulo é excluído, o sistema não saberá que o número do grupo está sendo usado e poderá tentar reutilizar o número para um rótulo de grupo diferente, o que pode causar problemas de segurança com um grupo sendo usado para duas finalidades.
    • Além dos dois problemas acima, se o grupo for usado por um serviço do sistema e você excluir o rótulo, o uso do rótulo do grupo excluído nos arquivos de configuração do serviço poderá invalidar os arquivos de configuração e causar falha no serviço.

    A melhor maneira de excluir um grupo (rótulo) que é o grupo principal de um usuário é excluindo o usuário.

    Para contas de serviço como ''news'', não é aconselhável excluir o usuário, a menos que você também exclua o software que usa essa conta de serviço.

    Em um sabor Linux que usa um gerenciador de pacotes, o usuário (e grupo associado) pode ser excluído automaticamente se você usar o gerenciador de pacotes para excluir o software. Infelizmente, usuários e grupos não são gerenciados tão rigidamente quanto pacotes de software, então não há uma maneira trivial de rastrear qual software usa uma conta de serviço específica. Felizmente, eles são normalmente nomeados de uma forma que torna fácil adivinhar isso. Se isso falhar, você pode encontrar referências à conta de serviço na propriedade de arquivos de configuração ou menções do grupo e usuário em arquivos de configuração serivce e systemd, então se você não consegue adivinhar, alguma escavação pode ser necessária.

    Você não pode exatamente desativar um usuário. Você pode invalidar a senha dele para que ele não consiga fazer login, mais ou menos. Você pode alterar o shell dele para algo inválido para que ele não consiga fazer login por outros métodos. (Isso já pode ser o caso para uma conta de serviço!) Mas você normalmente não faz login em um grupo, então para grupos, você nem pode fazer isso. Nem o arquivo de senha nem o arquivo de grupo suportam comentários em grupos. Então, por exemplo, se você tentar comentar o grupo de notícias# com um então você agora tem um grupo rotulado incorretamente como #news. Como comentários não são um comportamento documentado para esses arquivos, mesmo que algumas ferramentas suportem, outras ferramentas não o farão. Conforme mencionado em outras respostas, a única maneira de desativar um grupo é parar de usá-lo removendo todas as menções a ele em arquivos de configuração, propriedade de arquivo, processos ativos e possivelmente usos codificados em executáveis ​​de software (e provavelmente também alguma maneira de usá-lo que eu esqueci).

    • 4
  2. Shadur-don't-feed-the-AI
    2024-10-08T18:51:18+08:002024-10-08T18:51:18+08:00

    Resposta curta: você não pode excluir um grupo principal.

    Resposta um pouco mais longa: É teoricamente possível, mas qualquer um que saiba o suficiente sobre Unix para saber como fazer também sabe o suficiente para não querer fazer. Essa é uma daquelas coisas do tipo "Se você não sabe para que serve, não remova".

    Resposta significativamente mais longa: Os padrões Unix especificam que cada usuário tem um ID de usuário e um ID de grupo. Esse ID de grupo é o ID do "grupo primário" desse usuário; se você estiver familiarizado com bancos de dados, é uma chave estrangeira apontando para esse grupo.

    Contanto que pelo menos um usuário tenha um determinado grupo como seu grupo primário, groupdelnão deixarei você excluir esse grupo porque isso tornaria os arquivos de senha e grupo inconsistentes e correria o risco de comportamento imprevisível (por exemplo, se mais tarde você criar um novo grupo com o que acaba sendo o ID desse grupo primário, o usuário "órfão" de repente faria parte desse grupo, independentemente de você querer ou não).

    Se você realmente quer que o newsgrupo desapareça, precisará excluir o newsusuário primeiro, mas concordo com Panki : não há motivos reais além de uma necessidade equivocada de organização para removê-lo e o risco de quebrar acidentalmente algo que pressupõe que o grupo exista, embora pequeno, seja diferente de zero — e se algo quebrar dessa forma, você perderá semanas ou meses de frustração antes de perceber o que deu errado .

    Adendo : Não tente o procedimento nº 2, exceto nas circunstâncias mais terríveis, a menos que você queira ver como fica um sistema irrevogavelmente danificado e goste de ter que reinstalar seu sistema do zero.

    • 2
  3. David G.
    2024-10-08T19:10:33+08:002024-10-08T19:10:33+08:00

    Resposta curta: você não pode.

    Resposta longa: Você pode, mas precisa parar de usá-lo primeiro. Isso não significa apenas os dados em /etc, significa na propriedade de arquivo em todos os seus sistemas de arquivos. Se for usado em /dev, as coisas podem ficar cabeludas. Também pode significar em possíveis instalações futuras, dependendo da sua distribuição. (E algumas distribuições podem restaurar coisas que elas instalam em estoque conforme você atualiza.)

    Quanto aos comentários: eu não contaria com uma sintaxe de comentário. (A versão 7 não documenta nenhuma sintaxe de comentário.) Você pode estar apenas mudando o nome. (Embora eu admita, comentários "#" parecem funcionar para mim, mesmo com o busybox!)

    Editar: Já que você marcou "debian", eu lhe direi que o base-passwdpacote é aquele que restaura os usuários e grupos de estoque, embora pareça perguntar. Parece que muito pouco realmente depende deste pacote, então você provavelmente pode deixá-lo ficar bem obsoleto (embora outros pacotes possam precisar do usuário/grupos).

    • 2

relate perguntas

  • exportar variáveis ​​​​env programaticamente, via stdout do comando [duplicado]

  • Problema estranho ao passar variáveis ​​do arquivo de texto

  • Enquanto a linha lê mantendo os espaços de escape?

  • ordem de substituição de processos `te` e `bash`

  • Execute um script muito lento até que seja bem-sucedido

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve