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 base- BASE_DIRpara o diretório home da nova conta.
- -c, --comment COMMENT: adiciona o comentário- COMMENTno campo GECOS da nova conta.
- -d, --home-dir HOME_DIR: define- HOME_DIRcomo 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 comando- passwdpara definir a senha, que será abordado em um tema posterior.
- -r, --system: cria uma conta de sistema.
- -s, --shell SHELL: define- SHELLcomo 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 campo- GECOS.
- -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 para- EXPIRE_DATE.
- -g, --gid GROUP: força a aplicação do- GROUPcomo o novo grupo principal.
- -G, --groups GROUPS: define- GROUPScomo 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: define- SHELLcomo 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