Pesquisa de site

15 comandos Useradd úteis com exemplos no Linux


Todos conhecemos os comandos mais populares chamados ‘useradd’ ou ‘adduser’ no Linux. Há momentos em que um administrador de sistema Linux é solicitado a criar contas de usuário no Linux com propriedades, limitações ou comentários específicos.

No Linux, o comando ‘useradd’ é um utilitário de baixo nível usado para adicionar ou criar contas de usuário no Linux e outros sistemas operacionais semelhantes ao Unix. O comando ‘adduser’ é muito semelhante ao comando ‘useradd’, pois é apenas um link simbólico para ele.

Em algumas distribuições Linux, o comando ‘useradd’ pode ter uma versão ligeiramente diferente. Sugiro ler sua documentação antes de usar nossas instruções para criar novas contas de usuário no Linux.

Quando executamos o comando ‘useradd’ no terminal Linux, ele executa as seguintes tarefas principais:

  • Ele edita /etc/passwd, /etc/shadow, /etc/group, e /etc/gshadow arquivos para as contas de usuário recém-criadas.
  • Cria e preenche um diretório inicial para o novo usuário.
  • Define permissões e propriedades para o diretório inicial.

Sintaxe do comando Useradd

A sintaxe básica do comando ‘useradd’ é:

useradd [options] username

Neste artigo, demonstraremos os 15 comandos ‘useradd’ mais comumente usados com exemplos práticos no Linux.

1. Como adicionar um novo usuário no Linux

Para adicionar ou criar um novo usuário, você deve usar o comando ‘useradd’ ou ‘adduser’ seguido do ‘nome de usuário’. O ‘nome de usuário‘ é o nome de login que um usuário usa para fazer login no sistema.

Apenas um usuário pode ser adicionado e o nome de usuário deve ser exclusivo e ainda não existir no sistema.

Por exemplo, para adicionar um novo usuário chamado ‘tecmint‘ use o seguinte comando:

useradd tecmint

Quando adicionamos um novo usuário no Linux com o comando ‘useradd’, ele é criado em um estado bloqueado. Para desbloquear essa conta de usuário, precisamos definir uma senha para essa conta usando o comando ‘passwd’.

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

Depois que um novo usuário é criado, sua entrada é automaticamente adicionada ao arquivo ‘/etc/passwd’. Este arquivo é usado para armazenar as informações do usuário, e a entrada deve ser.

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

A entrada acima contém um conjunto de sete campos separados por dois pontos, cada campo tendo seu próprio significado.

Vamos ver quais são esses campos:

  • Nome de usuário – O nome de login do usuário é usado para fazer login no sistema. Deve ter entre 1 e 32 caracteres.
  • Senha – A senha do usuário (ou caractere 'x') é armazenada no arquivo ‘/etc/shadow‘ em um formato criptografado.
  • ID do usuário (UID) – Todo usuário deve ter um ID do usuário (UID), que significa Número de identificação do usuário. Por padrão, o UID 0 é reservado para o usuário root e os UIDs que variam de 1 a 99 são reservados para outras contas predefinidas. Além disso, os UIDs que variam de 100 a 999 são reservados para contas e grupos do sistema.
  • ID do grupo (GID) – O ID do grupo principal (GID), que significa Número de identificação do grupo, é armazenado no arquivo ' /etc/group' arquivo.
  • Informações do usuário – Este campo é opcional e permite definir informações extras sobre o usuário, como o nome completo do usuário. Essas informações podem ser preenchidas usando o comando do dedo.
  • Diretório inicial – A localização absoluta do diretório inicial do usuário.
  • Shell – A localização absoluta do shell de um usuário, ou seja, /bin/bash.

2. Como criar um usuário com um diretório inicial diferente

Por padrão, o comando ‘useradd’ cria um diretório inicial do usuário no diretório ‘/home’ com o nome de usuário. Por exemplo, como visto acima, o diretório inicial padrão para o usuário ‘tecmint‘ é ‘/home/tecmint‘.

No entanto, esse comportamento pode ser alterado usando a opção '-d' junto com a localização do novo diretório inicial (por exemplo, ‘/data/projects‘). Por exemplo, o comando a seguir criará um usuário ‘anusha’ com um diretório inicial definido como ‘/data/projects’.

useradd -d /data/projects anusha
passwd anusha

Você pode visualizar o diretório inicial do usuário e outras informações relacionadas ao usuário, como ID do usuário, ID do grupo, shell e comentários usando o seguinte comando cat.

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. Como criar um usuário com um ID de usuário específico

No Linux, cada usuário tem seu próprio UID (Número de Identificação Único). Por padrão, quando criamos uma nova conta de usuário no Linux, ela atribui IDs de usuário 500, 501, 502 e assim por diante.

No entanto, podemos criar usuários com IDs de usuário personalizados usando a opção '-u'. Por exemplo, o comando a seguir criará um usuário ‘navin‘ com um ID de usuário personalizado ‘1002‘.

useradd -u 1002 navin

Agora, vamos verificar se o usuário foi criado com um ID de usuário definido (1002) usando o seguinte comando.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash

NOTA: certifique-se de que o valor de um ID de usuário seja exclusivo de qualquer outro usuário já criado no sistema.

4. Como criar um usuário com um ID de grupo específico

Da mesma forma, cada usuário tem seu próprio GID (Identificador de Grupo). Também podemos criar usuários com IDs de grupo específicos usando a opção '-g'.

Neste exemplo, adicionaremos um usuário 'tarunika' com um UID e GID específicos simultaneamente com a ajuda do '- opções u' e '-g'.

useradd -u 1005 -g tecmint tarunika

Agora, verifique o ID do usuário e o ID do grupo atribuídos no arquivo ‘/etc/passwd’.

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

Para verificar o GID do usuário, use o comando id:

id -gn tarunika

5. Como adicionar um usuário a vários grupos

A opção '-G' é usada para adicionar um usuário a grupos adicionais. Cada nome de grupo é separado por vírgula, sem espaços intermediários.

Neste exemplo, estamos adicionando um usuário 'tecmint' a vários grupos, como administradores, webadmin e desenvolvedores.

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

Em seguida, verifique se os vários grupos estão atribuídos ao usuário com o comando id.

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. Como adicionar um usuário sem diretório inicial

Em certas situações, onde não queremos atribuir diretórios iniciais para um usuário por motivos de segurança, o diretório inicial do usuário será root quando ele fizer login em um sistema que acabou de ser reiniciado. Quando tal usuário usa o comando ‘su’, seu diretório de login será o diretório inicial do usuário anterior.

Para criar usuários sem seus diretórios pessoais, a opção '-M' é usada. Por exemplo, o comando a seguir criará um usuário ‘shilpi‘ sem um diretório inicial.

useradd -M shilpi

Agora, vamos verificar se o usuário foi criado sem um diretório inicial usando o comando ls.

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

7. Como criar um usuário com data de validade no Linux

Por padrão, quando adicionamos usuários com o comando ‘useradd’, a conta do usuário nunca expira, o que significa que sua data de expiração é definida como 0 (o que significa que nunca expirou).

Porém, podemos definir a data de validade usando a opção '-e', que deve estar no formato AAAA-MM-DD. Isso é útil para criar contas temporárias por um período específico.

Neste exemplo, criamos um usuário 'aparna' com uma data de expiração da conta, que é 27 de agosto de 2021, no formato AAAA-MM-DD formato.

useradd -e 2021-08-27 aparna

Em seguida, verifique as informações de validade da conta e da senha usando o comando ‘chage‘ para o usuário ‘aparna‘ após definir a data de expiração da conta.

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2021
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

8. Como criar um usuário com data de expiração de senha

O argumento '-f' é usado para definir o número de dias após a expiração de uma senha. Um valor 0 inativa a conta do usuário assim que a senha expira. Por padrão, o valor de expiração da senha é definido como -1, o que significa que ela nunca expira.

Neste exemplo, definiremos uma data de expiração da senha da conta, que é 45 dias, para um usuário 'mansi' usando o '-e' e opções '-f'.

useradd -e 2014-04-27 -f 45 mansi

9. Como adicionar um usuário com comentários no Linux

A opção '-c' permite adicionar comentários personalizados, como nome completo do usuário, número de telefone, etc., ao arquivo ‘/etc/passwd‘. O comentário pode ser adicionado como uma única linha sem espaços.

Por exemplo, o comando a seguir adicionará um usuário ‘mansi’ e inserirá o nome completo desse usuário, Manis Khurana, no campo de comentários.

useradd -c "Manis Khurana" mansi

Você pode visualizar o comentário inserido no arquivo ‘/etc/passwd’ na seção de comentários usando o comando tail.

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. Como criar um shell de login de usuário no Linux

Às vezes, adicionamos usuários que não têm nada a ver com o shell de login ou às vezes somos obrigados a atribuir diferentes shells aos nossos usuários. Podemos atribuir diferentes shells de login para cada usuário com a opção ‘-s’.

Aqui neste exemplo, irá adicionar um usuário ‘tecmint’ sem um shell de login, ou seja, shell ‘/sbin/nologin’.

useradd -s /sbin/nologin tecmint

Você pode verificar o shell atribuído ao usuário no arquivo ‘/etc/passwd’.

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. Como criar um usuário com home, shell e comentário especificados

O comando a seguir criará um usuário 'ravi' com um diretório inicial '/var/www/tecmint', um shell padrão de /bin/bash e informações adicionais sobre o usuário.

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

No comando acima, as opções '-m' e '-d' criam um usuário com um diretório inicial especificado, e o '-s' A opção define o shell padrão do usuário como /bin/bash. A opção '-c' adiciona informações extras sobre o usuário e o argumento '-U' cria/adiciona um grupo com o mesmo nome do usuário.

12. Como criar um usuário com home, shell, comentário, UID/GID definidos

O comando é muito semelhante ao acima, mas aqui definimos o shell como '/bin/zsh' e definimos UID e GID personalizados para um usuário 'tarunika'. A opção '-u' define o UID do novo usuário (ou seja, 100), e a opção '-g' define o GID (ou seja, , 1000).

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. Como criar um usuário com Home, sem Shell, comentário e UID

O comando a seguir é muito semelhante aos dois comandos acima. A única diferença é que aqui desabilitamos o shell de login para um usuário chamado ‘avishek‘ com um ID de usuário personalizado (ou seja, 1019).

A opção '-s' define o shell padrão como /bin/bash, mas neste caso, definimos o shell de login como '/usr/sbin/ nologin'. Isso significa que o usuário ‘avishek‘ não conseguirá fazer login no sistema.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. Como criar um usuário com um Home, Shell, Skeleton e UID especificados

A única mudança neste comando é que usamos a opção '-k' para definir o diretório esqueleto personalizado como /etc/custom.skell em vez do diretório padrão, < forte>/etc/skel. Também usamos a opção '-s' para definir um shell diferente, /bin/tcsh, para o usuário ‘navin‘.

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. Como criar um usuário sem Home, Shell ou Grupo, com comentário

O comando a seguir é muito diferente dos outros comandos explicados acima. Aqui, usamos a opção '-M' para criar um usuário sem o diretório inicial do usuário, e a opção '-N' é usada para instruir o sistema a criar apenas um nome de usuário (sem grupo). A opção '-r' serve para criar um usuário do sistema.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

Para obter mais informações e opções sobre ‘useradd’, execute o comando ‘useradd’ no terminal para ver as opções disponíveis

useradd

Se você deseja modificar os atributos da conta do usuário, como modificar o nome de usuário, ID do usuário (UID), diretório inicial, shell e muito mais, use o comando usermod.