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 sudoacesso 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.