O que é / são os programas CLI padrão para gerenciar usuários e grupos?

8

Como o título diz, estou basicamente perguntando sobre o gerenciamento de usuários a partir da linha de comando (por exemplo, em um sistema onde não há ferramentas gráficas disponíveis). No passado, usei vários programas diferentes para adicionar ou excluir usuários e grupos ou para modificar seus atributos: adduser , useradd , usermod , gpasswd e talvez outros que eu tenha esquecido. Eu também já ouvi algumas vezes que alguns desses programas são de baixo nível e devem ser evitados para uso geral, mas nunca me lembro qual. Então, eu gostaria de obter uma resposta definitiva para quais programas são os recomendados para pelo menos as seguintes tarefas:

  • Crie um novo usuário
  • Adicionar um usuário a um grupo
  • Remover um usuário de um grupo
  • Alterar o grupo principal de um usuário
  • Alterar o shell de login ou o diretório pessoal de um usuário
  • Excluir um usuário

Eu estou procurando ferramentas padrão que eu posso esperar estar disponível em praticamente qualquer sistema Linux (de qualquer distribuição).

    
por David Z 19.08.2010 / 03:01

9 respostas

9

Infelizmente, nenhuma dessas operações foi padronizada.

Alguns sistemas operacionais oferecem essa funcionalidade como parte do sistema operacional, como o Linux, mas mesmo se o sistema Linux os incluir, ao longo do tempo e nas distribuições Linux, as ferramentas e seus nomes mudaram, então você não pode realmente depender de um conjunto padrão. ferramentas para fazer essas tarefas.

Você precisa ter um conjunto de ferramentas por sistema operacional.

    
por 19.08.2010 / 03:44
7

Em sistemas Debian (e derivados), adduser e deluser são wrappers de nível superior em torno de useradd e funcionalidade relacionada. A criação de usuário de capa, adição e subtração de associação de grupo e exclusão de usuário. Os comandos correspondentes de criar / excluir grupos são, sensatamente, addgroup e delgroup . usermod aparece para cobrir o caso de uso restante que você nomeou.

    
por 19.08.2010 / 04:06
6

Você menciona o Linux na última parte da sua pergunta, mas como o título é genérico, responderei pelo FreeBSD.

O FreeBSD tem comandos semelhantes ao Linux, mas são comandos passados para o utilitário pw :

pw useradd [user|uid] ...
pw usermod [user|uid] ...

e assim por diante. No entanto, pode-se analisar o comando em duas partes: user e mod ; um substantivo e um verbo. Além disso, também é possível usar group e del :

pw groupdel [group|gid] ...

para, por exemplo, excluir um grupo. Então aqui está o que eu acho que é muito legal: a ordem não importa, nem o espaçamento! O que isso significa, é que você pode lembrar o que chamar pensando no que você quer fazer (em Inglês de qualquer maneira):

pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...

e mais! O utilitário pw também permite bloquear e desbloquear contas:

pw lock [user|uid] ...
pw unlock [user|uid] ...

As opções e todos os parâmetros que você passar são padronizados (embora nem sempre se apliquem a comandos de chamada) para que a memorização seja minimizada. Tudo em todos uma boa maneira de fazer as coisas.

Observação: as reticências nos exemplos acima representam opções e parâmetros passados para pw de usuários ou grupos adicionais.

    
por 19.08.2010 / 04:35
2

Apenas para completar, no final de baixo nível do espectro eu mencionaria vipw (8) e vigr (8), logo acima de "vi / etc / passwd" e "cat > / etc / passwd" mas logo abaixo de "useradd". Ah, e eles existem na maioria das variantes do Unix.

    
por 19.08.2010 / 10:52
2

Todas essas ferramentas são criadas para editar arquivos de texto para você. Se você quiser saber como gerenciar usuários e grupos em sistemas, você deve se familiarizar com esses arquivos de texto subjacentes. Para sua sorte, há apenas dois deles, /etc/passwd e /etc/group . Há também arquivos complementares /etc/shadow e /etc/gshadow para sombreamento de senha e grupo, respectivamente.

    
por 19.08.2010 / 06:32
1

Em muitas situações, saber como editar "/ etc / passwd" ainda é útil.

    
por 19.08.2010 / 04:28
1

Se você estiver usando um back-end que não seja o back-end padrão da máquina local - sendo o OpenLDAP o mais comum - então cpu (altere o utilitário de senha ) pode ser o comando que você está procurando. Ele pode ser executado em máquinas diferentes do mestre LDAP, se configurado corretamente, e sua sintaxe é basicamente a mesma que useradd etc com um prefixo cpu . Então, para me adicionar eu poderia fazer

$ sudo cpu useradd hamish

Veja a página man cpu para mais detalhes.

    
por 19.08.2010 / 16:49
0

Se sua pergunta foi limitada a

any Linux system (of any distribution)

mas todos os sistemas têm acesso à rede para um único servidor. Você poderia usar algo como NIS ou YP. Portanto, essa resposta é limitada aos administradores de uma única organização.

Você ainda tem o problema de quase todas as distribuições terem maneiras ligeiramente diferentes de configurar o YP, mas a configuração só acontece uma vez. Além disso, esse tipo de rede não é trivial.

Dentro de um único site / rede, você vai ganhar muito fazendo isso. Em combinação com o automount, meu favorito é poder usar o SSH em qualquer máquina * nix e ter todos os meus arquivos e ferramentas disponíveis para mim.

No ponto, a distribuição escolhida para o mestre é o sistema que você usa para gerenciar usuários. Você terá um único conjunto de ferramentas / documentação para gerenciar usuários e grupos.

É até possível usar algo como LDAP e ferramentas samba no mestre. Usar o samba também permite que eu tenha meus arquivos caseiros disponíveis para mim em máquinas com Windows.

    
por 19.08.2010 / 14:51
0

A coisa mais próxima de um padrão é vi /etc/passwd , vi /etc/shadow e vi /etc/groups . (Os hereges podem substituir emacs .) Desde então, tudo o que encontrei funcionará apenas em alguns sistemas.

Sério, descubra quais são as ferramentas do seu sistema operacional e use-as. Só não espere que eles funcionem da mesma forma em todos os sistemas. Seria bom se eles fossem padronizados, mas não são.

    
por 19.08.2010 / 20:17