Como Criar Usuários no Linux [15 Exemplos do Comando useradd]

Estamos todos cientes das comandos mais populares chamados ‘useradd‘ ou ‘adduser‘ no Linux. Às vezes, 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‘ é uma utilidade de baixo nível usada para adicionar ou criar contas de usuário no Linux e em outros sistemas operacionais Unix-like. 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 os arquivos /etc/passwd, /etc/shadow, /etc/group e /etc/gshadow para as novas contas de usuário criadas.
  • Cria e preenche um diretório doméstico para o novo usuário.
  • Define permissões e propriedade para o diretório doméstico.

Comando Useradd Sintaxe

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

useradd [options] username

Neste artigo, demonstraremos as 15 opções de comando ‘useradd‘ mais comumente usadas 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 ‘username‘. O ‘username‘ é o nome de login que um usuário usa para acessar o sistema.

Apenas um usuário pode ser adicionado, e o nome de usuário deve ser único e não deve já 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.
Create a User in Linux

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

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash
View User Info in Linux

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

Vamos ver quais são esses campos:

  • Username – O nome de login do usuário é usado para acessar o sistema. Deve ter entre 1 e 32 caracteres de comprimento.
  • Senha – A senha do usuário (ou caractere 'x') é armazenada no arquivo ‘/etc/shadow‘ em um formato criptografado.
  • ID de Usuário (UID) – Todo usuário deve ter um ID de Usuário (UID), que significa Número de Identificação do Usuário. Por padrão, UID 0 é reservado para o usuário root, e UIDs variando de 1 a 99 são reservados para outras contas predefinidas. Além disso, UIDs variando de 100 a 999 são reservados para contas de sistema e grupos.
  • ID de Grupo (GID) – O ID de Grupo Primário (GID), que significa Número de Identificação do Grupo, é armazenado no arquivo ‘/etc/group‘.
  • Informações do Usuário – Este campo é opcional e permite definir informações adicionais sobre o usuário, como o nome completo do usuário. Essas informações podem ser preenchidas usando o comando finger.
  • Diretório Pessoal – A localização absoluta do diretório pessoal 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 Diretório Pessoal Diferente

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

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

# useradd -d /data/projects anusha
# passwd anusha

Você pode visualizar o diretório principal 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
Create a User with a Home Directory in Linux

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, ele 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 seguinte comando irá 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 userid definido (1002) usando o seguinte comando.

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash
Create a User with the User ID in Linux

NOTA: Certifique-se de que o valor de um ID de usuário deve ser único de qualquer outro usuário já criado no sistema.

4. Como Criar um Usuário com um ID de Grupo Específico

A cada usuário corresponde um GID (Identificador de Grupo) específico. 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 das opções '-u' e '-g'.

useradd -u 1005 -g tecmint tarunika

Agora, verifique o ID de usuário e o ID de 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
Create a User with Group ID in Linux

5. Como Adicionar um Usuário a Múltiplos Grupos

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

Neste exemplo, estamos adicionando um usuário ‘tecmint‘ a múltiplos grupos, como admins, webadmin e developers.

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

Em seguida, verifique se os múltiplos grupos foram 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
Add User to Group in Linux

6. Como Adicionar um Usuário Sem Diretório Doméstico

Em certas situações, onde não desejamos atribuir diretórios domésticos para um usuário por motivos de segurança, o diretório doméstico do usuário será root quando eles fizerem login em um sistema que acabou de reiniciar. Quando esse usuário usa o comando ‘su‘, o diretório de login será o diretório doméstico do usuário anterior.

Para criar usuários sem seus diretórios domésticos, é usado a opção ‘'-M'. Por exemplo, o seguinte comando criará um usuário ‘shilpi‘ sem um diretório doméstico.

useradd -M shilpi

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

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory
Create User Without Home Directory in Linux

7. Como Criar um Usuário com Data de Expiração no Linux

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

No entanto, podemos definir a data de expiração 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 de tempo.

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

useradd -e 2021-08-27 aparna

Em seguida, verifique as informações de envelhecimento 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
Create User With Account Expiry Date

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 de 0 desativa a conta de usuário assim que a senha expirar. Por padrão, o valor de expiração da senha é definido como -1, o que significa que nunca expira.

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

useradd -e 2014-04-27 -f 45 mansi
Create User With Password Expiry Date

9. Como Adicionar um Usuário com Comentários no Linux

A opção '-c' permite adicionar comentários personalizados, como o 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 seguinte comando adicionará um usuário ‘mansi‘ e inserirá o nome completo desse usuário, Manis Khurana, no campo de comentário.

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
Create User with Full Name

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 shells diferentes aos nossos usuários. Podemos atribuir shells de login diferentes a cada usuário com a opção ‘-s‘.

Aqui neste exemplo, adicionaremos 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
Create a User with a Login Shell

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

O comando a seguir criará um usuário ‘ravi‘ com um diretório home ‘/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
Create a User with Home Directory and Login Shell

No comando acima, as opções ‘-m’ e ‘-d’ criam um usuário com um diretório home especificado, e a opção ‘-s’ 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 um diretório home, shell, comentário, UID/GID definidos

O comando é muito semelhante ao acima, mas aqui definimos o shell como ‘/bin/zsh‘ e configuramos 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
Create a User with UID and GID

13. Como criar um usuário com home, sem shell, comentário e UID

O seguinte comando é 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 poderá fazer login no sistema.

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek
Create a User with UID and Nologin

14. Como Criar um Usuário com um Diretório Home, Shell, Esqueleto e UID Específicos

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 padrão, /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
Create a User with Shell and UID

15. Como Criar um Usuário sem Diretório 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 home do usuário, e a opção '-N' é usada para instruir o sistema a apenas criar um nome de usuário (sem um grupo). A opção '-r' é para criar um usuário do sistema.

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton
Create a User with NoLogin and Group

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

useradd

Se quiser modificar atributos da conta de usuário, como modificar o nome de usuário, ID de usuário (UID), diretório pessoal, shell e mais, use o comando usermod.

Source:
https://www.tecmint.com/add-users-in-linux/