Linux - Gerenciando Usuários
Criando Usuários com o useradd
O comando useradd
é utilizado para criar contas de novos usuários. A sintaxe do comando é:
sudo useradd [options] username
O argumento obrigatório é o nome do usuário a ser criado. Além disso, é possível passar várias opções, as mais importantes são:
--badname
: ignora a verificação de nomes inadequados.-b, --base-dir BASE_DIR
: define o diretório baseBASE_DIR
para o diretório home da nova conta.-c, --comment COMMENT
: adiciona o comentárioCOMMENT
no campo GECOS da nova conta.-d, --home-dir HOME_DIR
: defineHOME_DIR
como o diretório home da nova conta.-e, --expiredate EXPIRE_DATE
: define a data de expiração (EXPIRE_DATE) da nova conta no formato AAAA-MM-DD ou como o número de dias desde 1 de janeiro de 1970. Use essa opção para desativar automaticamente a conta do usuário na data especificada.-g, --gid
: define o nome ou identificador do grupo principal da nova conta.-G, --groups GROUPS
: define GROUPS como a lista de grupos adicionais da nova conta. Por padrão, o usuário torna-se membro apenas dos grupos listados no arquivo/etc/default/useradd
.-m, --create-home
: cria o diretório home do usuário.-N, --no-user-group
: não cria um grupo com o mesmo nome do usuário.-o, --non-unique
: permite criar usuários com UID repetidos (não exclusivos).-p, --password PASSWORD
: define a senha criptografada da nova conta. Note que a senha deve estar previamente criptografada usando a função crypt(3). Devido à complexidade de configurar a senha dessa forma, geralmente usa-se o comandopasswd
para definir a senha, que será abordado em um tema posterior.-r, --system
: cria uma conta de sistema.-s, --shell SHELL
: defineSHELL
como o shell de login da nova conta.-u, --uid UID
: define o identificador de usuário da nova conta.-U, --user-group
: cria um grupo com o mesmo nome do usuário.
Para criar um novo usuário com o nome superuser1
:
sudo useradd superuser1
Também é possível criar um usuário editando diretamente o banco de dados de usuários. Esta base é armazenada em dois arquivos de configuração: /etc/passwd
e /etc/shadow
. Esses arquivos podem ser modificados com o comando vipw
ou em um editor de texto como vi. O comando vipw
é recomendado, pois verifica a consistência dos arquivos de configuração após a edição. Além disso, vipw
grava em um arquivo temporário, o que previne problemas de bloqueio causados por acessos simultâneos de outros usuários.
Alterando Usuários com usermod
Após criar uma conta de usuário, é possível modificá-la usando o comando usermod
. Esse comando permite alterar o diretório home do usuário, UID, GID e outros aspectos. Além disso, permite adicionar ou remover o usuário de grupos, definir políticas de senha, entre outras funcionalidades. A sintaxe do comando é:
usermod [options] USERNAME
As opções mais importantes incluem:
-a, --append
: adiciona o usuário a grupos adicionais especificados com a opção-G
, sem removê-lo de outros grupos.-c, --comment COMMENT
: define um novo valor para o campoGECOS
.-d, --home HOME_DIR
: define um novo diretório home para a conta do usuário.-e, --expiredate EXPIRE_DATE
: define a data de expiração da conta paraEXPIRE_DATE
.-g, --gid GROUP
: força a aplicação doGROUP
como o novo grupo principal.-G, --groups GROUPS
: defineGROUPS
como a lista de grupos adicionais.-l, --login NEW_LOGIN
: define um novo login para o usuário.-L, --lock
: bloqueia a conta do usuário.-m, --move-home
: move o conteúdo do diretório home para um novo local (use apenas com-d
).-p, --password PASSWORD
: define uma nova senha.-r, --remove
: remove o usuário apenas dos grupos adicionais especificados na opção-G
, sem removê-lo de outros grupos.-s, --shell SHELL
: defineSHELL
como o shell de login da conta do usuário.-u, --uid UID
: define um novo UID para a conta do usuário.-U, --unlock
: desbloqueia a conta do usuário.
Vamos ver uns exemplos. Para adicionar o usuário superuser1
ao grupo users
:
sudo usermod -aG users superuser1
Para verificar os grupos aos quais o usuário superuser1
pertence:
Para alterar o diretório home do usuário superuser1
para /home/superuser1_new
"(a pasta deve existir previamente no sistema):
sudo usermod -d /home/superuser1_new superuser1
Para bloquear e desbloquear o usuário superuser1
:
sudo usermod -L superuser1 sudo usermod -U superuser1
Removendo Usuários com userdel
O comando userdel
permite remover um usuário pelo nome. A sintaxe do comando é:
userdel [options] USERNAME
As opções mais importantes incluem:
-f, --force
: força a execução de ações que de outra forma não seriam realizadas, como remover um usuário que está logado no sistema.-r, --remove
: remove o diretório home do usuário.
Por exemplo, para remover o usuário superuser1
:
sudo userdel superuser1
Para remover o usuário superuser1
junto com o diretório home:
sudo userdel -r superuser1