usermod
é um utilitário de linha de comando que lhe permite modificar a informação de login de um utilizador.
Este artigo cobre como usar o comando usermod
para adicionar um utilizador a um grupo, alterar uma shell de utilizador, nome de login, directório home, e muito mais.
comando usermod #
A sintaxe do comando usermod
toma a seguinte forma:
usermod USER
Apenas root ou usuários com sudo
acesso pode invocar usermod
e modificar uma conta de usuário. No caso de sucesso, o comando não exibe nenhuma saída.
Adicionar um usuário a um grupo #
O caso mais típico de uso do usermod
é adicionar um usuário a um grupo.
Para adicionar um usuário existente a um grupo secundário, use as opções -a -G
seguidas do nome do grupo e do nome do usuário:
usermod -a -G GROUP USER
Se você quiser adicionar o usuário a vários grupos ao mesmo tempo, especifique os grupos após a opção -G
separada com ,
(vírgulas) sem espaço em branco interveniente.
Por exemplo, para adicionar o usuário linuxize
ao grupo games
, você executaria o seguinte comando:
sudo usermod -a -G games linuxize
Utiliza sempre a opção -a
(anexar) ao adicionar um usuário a um novo grupo. Se você omitir a opção -a
, o usuário será removido dos grupos não listados após a opção -G
.
Se o usuário ou grupo não existir, o comando avisará você.
Mudar grupo primário do usuário #
Para mudar o grupo primário de um usuário, invoque o comando usermod
com a opção -g
seguida do nome do grupo e do nome do usuário:
sudo usermod -g GROUP USER
No exemplo seguinte, estamos mudando o grupo primário do usuário linuxize
para developers
:
usermod -g developers linuxize
Cada usuário pode pertencer exatamente a um grupo primário e zero ou mais grupos secundários.
Mudando a Informação do Usuário #
Para mudar a informação do GECOS (o nome completo do usuário), execute o comando com a opção -c
seguida do novo comentário e nome de usuário:
usermod -c "GECOS Comment" USER
Aqui está um exemplo mostrando como adicionar informação adicional ao usuário linuxize:
usermod -c "Test User" linuxize
Esta informação é armazenada no arquivo /etc/passwd
.
Mudando um diretório home do usuário #
Na maioria dos sistemas Linux, os diretórios home do usuário são nomeados com o nome do usuário e criados sob o diretório /home
.
Se, por algum motivo, você quiser mudar o diretório home do usuário, invoque o comando usermod
com a opção -d
seguindo o caminho absoluto do novo diretório home e o nome do usuário:
usermod -d HOME_DIR USER
Por padrão, o comando não move o conteúdo do diretório home do usuário para o novo diretório. Para mover o conteúdo, use a opção -m
. Se o novo diretório ainda não existir, ele é criado:
usermod -d HOME_DIR -m USER
Aqui está um exemplo mostrando como alterar o diretório home do usuário www-data
para /var/www
:
usermod -d /var/www www-data
Mudando um Shell padrão do usuário #
O shell padrão é o shell que é executado depois que você faz o login no sistema. Por padrão, na maioria dos sistemas Linux, a shell padrão é definida como Bash Shell.
Para alterar a shell padrão do usuário, execute o comando com a opção -s
seguindo o caminho absoluto da shell e o nome do usuário:
usermod -s SHELL USER
No exemplo abaixo, estamos alterando a shell do usuário para Zsh:
sudo usermod -s /usr/bin/zsh linuxize
Você pode descobrir quais shells estão disponíveis no seu sistema exibindo o conteúdo do arquivo /etc/shells
.
Mudando um UID de usuário #
UID (o identificador de usuário) é um número atribuído a cada usuário. É usado pelo sistema operacional para se referir a um usuário.
Para alterar o UID do usuário, invoque o comando com a opção -u
seguido do novo UID e o nome do usuário:
usermod -u UID USER
O exemplo abaixo mostra como alterar o número do “UID” para “1050”:
sudo usermod -u 1050 linuxize
O UID dos arquivos de propriedade do usuário e estão localizados no diretório home do usuário, e o arquivo da caixa postal do usuário será alterado automaticamente. A propriedade de todos os outros arquivos deve ser alterada manualmente.
Mudando um nome de usuário #
Embora não seja muito frequente, às vezes você pode querer mudar o nome de um usuário existente. A opção -l
é usada para mudar o nome do usuário:
usermod -l NEW_USER USER
No exemplo abaixo, estamos renomeando o usuário linuxize
para lisa
para “1050”:
sudo usermod -l linuxize lisa
Quando mudar o nome do usuário, você também pode querer mudar o diretório home do usuário para refletir o novo nome de usuário.
Definindo uma data de expiração do usuário #
A data de expiração é a data na qual a conta do usuário será desativada. Para definir a data de expiração do usuário, use a opção -e
opção:
sudo usermod -e DATE USER
A data de expiração deve ser definida usando o formato YYYY-MM-DD
.
Por exemplo, para desabilitar o usuário linuxize
em 2022-02-21
, você executaria o seguinte comando:
sudo usermod -e "2022-02-21" linuxize
Para desabilitar o vencimento de uma conta, defina uma data de vencimento vazia:
sudo usermod -e "" linuxize
Utilize o comando chage -l
para visualizar a data de vencimento do usuário:
sudo chage -l linuxize
Last password change: Jul 24, 2018Password expires: neverPassword inactive: neverAccount expires: neverMinimum number of days between password change: 0Maximum number of days between password change: 99999Number of days of warning before password expires: 7
A data de vencimento é armazenada no arquivo /etc/shadow
.
Bloquear e Desbloquear uma Conta de Utilizador#
A opção -L
permite bloquear uma conta de utilizador:
usermod -L USER
Os comandos irão inserir um ponto de exclamação (!
) na frente da palavra-passe encriptada. Quando o campo da senha no arquivo /etc/shadow
contém um ponto de exclamação, o usuário não será capaz de entrar no sistema usando autenticação de senha. Outros métodos de login, como autenticação baseada em chave ou mudança para o usuário, ainda são permitidos. Se você quiser bloquear a conta e desativar todos os métodos de login, você também precisa definir a data de expiração para 1.
Os exemplos a seguir mostram como bloquear o usuário linuxize
:
sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize
Para desbloquear um usuário, execute usermod
com a opção -U
>
usermod -U USER
Conclusion #
Mostramos a você como usar o comando usermod
para definir as informações da conta do usuário.