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


8

Estou basicamente perguntando sobre gerenciamento de usuários na linha de comando (por exemplo, em um sistema em que não há ferramentas gráficas disponíveis). No passado, eu usei vários programas diferentes para adicionar ou Excluir usuários e grupos ou modificar seus atributos: adduser, useradd, usermod, gpasswd, e talvez outros que eu esqueci. Também ouvi algumas vezes que alguns desses programas são de baixo nível e devem ser evitados para uso geral, mas nunca consigo lembrar quais. 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 inicial de um usuário
  • Excluir um usuário

Estou procurando por ferramentas padrão que posso esperar estar disponíveis em praticamente qualquer sistema Linux (de qualquer distribuição).


1
também groupmod. Não vou fazer disso uma resposta .... mas a maneira mais padrão é provavelmente usar o seu editor de texto ... lembre-se de que os arquivos afetados são apenas texto delimitado.
Xenoterracide

Curiosamente, antes de fazer essa pergunta, eu nunca tinha visto nem uma menção de editar diretamente os arquivos. (De alguma forma, eu tinha a impressão de que /etc/passwdera apenas uma parte de um sistema complexo)
David Z

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 que seu sistema Linux os inclua, com o tempo e nas distribuições do Linux, as ferramentas e seus nomes foram alterados para que você não possa realmente depender de um conjunto padrão de ferramentas. essas tarefas.

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


Nunca mudei os nomes ... mas mudei os interruptores. Lembro-me de uma vez que descobri que um linux não tinha gpasswd -a.
Xenoterracide

1
Se a memória serve - o RedHat já usou 'adduser' em vez de 'useradd', e se comportou de maneira diferente (acho que o useradd era mais Debianish). Mais tarde, eles fizeram do 'adduser' um link simbólico para 'useradd'. Veja algumas referências antigas em redhat.com/docs/manuals/linux/RHL-5.2-Manual/install-guide/…
Stefan Lasiewski

7

Nos sistemas Debian (e derivados) addusere delusersão wrappers de nível superior useradde funcionalidade relacionada. A criação do usuário de capa, adição e subtração de associação ao grupo e exclusão do usuário. Os comandos correspondentes de criação / exclusão de grupos são, sensatamente, addgroupe delgroup. usermodaparece para cobrir o caso de uso restante que você nomeou.


6

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

O FreeBSD possui comandos semelhantes ao Linux, mas são comandos passados ​​para o pwutilitário:

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

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

pw groupdel [group|gid] ...

para, por exemplo, excluir um grupo. Então, aqui está o que eu acho muito legal: a ordem não importa, nem o espaçamento! O que isso significa é que você pode se lembrar do que chamar pensando no que deseja 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 pwutilitário 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ê passa são todos padronizados (embora nem sempre se apliquem aos comandos de chamada), para que a memorização seja minimizada. Tudo de uma maneira agradável de fazer as coisas.

Nota: as elipses nos exemplos acima representam opções e parâmetros passados ​​a pwusuários ou grupos não adicionais.


Era uma pergunta sobre Linux, mas as informações são apreciadas de qualquer maneira. Seria ótimo se o Linux tivesse algo assim.
David Z

Substantivo e verbo, você quer dizer.
Warren Young

D'oh! Corrigido.
gvkv

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.


2

Todas essas ferramentas foram criadas para editar arquivos de texto para você. Se você deseja saber como gerenciar usuários e grupos em sistemas, familiarize-se com esses arquivos de texto subjacentes. Para sua sorte, existem apenas dois deles, /etc/passwde /etc/group. Também existem arquivos /etc/shadowe /etc/gshadowarquivos complementares para sombreamento de senhas e grupos, respectivamente.


4
... e / etc / shadow, já que a maioria dos sistemas irá coaxar se i é inconsistente com / etc / passwd
codehead

1

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


1
Saber ler / etc / passwd é útil, mas modificá-lo diretamente é uma má prática. Em alguns * ixes que usei (SysV moderno, OS X ...), esses arquivos não são o principal local em que os dados do usuário e do grupo são armazenados. Elas são cópias de sombra para compatibilidade ou são fontes primárias, mas há um banco de dados ou índice que precisa ser atualizado sempre que eles são alterados. Nesses sistemas, se você não atualizar os arquivos por meio das ferramentas oficiais, as alterações não entrarão em vigor imediatamente, se houver.
Warren Young


1

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

$ sudo cpu useradd hamish

Veja a página de manual da CPU para mais detalhes.


Interessante, mas uma resposta que só se aplica a uma máquina que obtém suas informações de usuário do LDAP é de uso muito limitado para mim.
David Z

0

Se sua pergunta foi limitada a

qualquer sistema Linux (de qualquer distribuição)

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

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

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

Diretamente, a distribuição que você escolhe para o mestre é o sistema usado 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 ferramentas LDAP e samba no master. O uso do samba também me permite ter meus arquivos domésticos disponíveis em máquinas Windows.


Obrigado, mas estou procurando uma resposta que se aplique igualmente a sistemas não em rede.
David Z

0

A coisa mais próxima de um padrão que você vai ter é vi /etc/passwd, vi /etc/shadowe vi /etc/groups. (Os hereges podem substituir emacs.) Tudo desde então que eu descobri funcionará apenas em alguns sistemas.

Sério, descubra quais ferramentas seu sistema operacional possui 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.


Usar um editor de texto para editar arquivos de configuração que as ferramentas podem e devem editar para você não é um padrão. Você nunca deve usar um editor de texto para alterar um arquivo de configuração, quando o sistema operacional ou o aplicativo fornecer um utilitário para fazer isso por você. Isto é especialmente verdadeiro para /etc/passwd, /etc/shadow, /etc/groupe /etc/gshadow. É para isso que servem as ferramentas. Os seres humanos são propensos a erros, enquanto as ferramentas foram testadas e (espero) estão livres de erros.
Aaron Toponce

Nunca chame um editor /etc/passwde amigos diretamente. Use vipwe vigr, que: bloqueie o arquivo contra edição simultânea; execute seu editor favorito ( $VISUAL); não altere o arquivo se você cometer um erro de sintaxe; em alguns sistemas (por exemplo, FreeBSD) também regenera outros arquivos que devem ser mantidos sincronizados.
Gilles 'SO- stop being evil' em
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.