Logue-se como root (Caso tenha dúvida clique aqui!)
Introdução
Por que criar usuários no GNU/Linux?
Entendendo o controle de usuários no GNU/Linux
Para criar, gerenciar ou eliminar contas de usuários no GNU/Linux, é necessário estar “logado” no sistema operacional com o usuário root (ou outro usuário que tenha privilégios de administrador). Os motivos para isso são óbvios: somente usuários autorizados é que podem manipular outras contas, do contrário, a segurança do sistema seria seriamente comprometida, pois qualquer usuário poderia criar, alterar ou apagar contas. Note que, dependendo das configurações do seu sistema, pode ser necessário executar cada instrução antecedida do comando ‘sudo’, como acontece por padrão com a distribuição Ubuntu.
Logue-se como root (Caso tenha dúvida clique aqui!)
Antes de criar e controlar contas no GNU/Linux, é conveniente entender como o sistema operacional lida com isso. Em geral, cada conta criada fica armazenada em um arquivo de nome passwd localizado dentro do diretório /etc/ (ou seja, seu caminho completo é
vim /etc/passwd
Esse arquivo contém várias informações sobre cada usuário:
– o seu nome de login (ou seja, o nome que é necessário digitar para entrar no sistema);
– senha (neste caso, a informação da senha pode estar criptografada ou em outro arquivo);
– UID (User IDentification), ou seja, número de identificação do usuário;
– GID (Group IDentification), isto é, número de identificação do grupo do usuário;
– informações adicionais sobre o usuário (nome completo, dados de contato, etc);
– diretório “home”, ou seja, o diretório principal de cada usuário;
– shell do usuário, uma espécie de programa que interpretará os comandos que o usuário digitar.
Para que você possa entender melhor cada um desses itens, vamos analisá-los usando como base a linha abaixo extraída de um arquivo /etc/passwd, que mostra a posição que cada uma das informações acima ocupa:
lucas:x:1001:500:Monteiro,Brasil,171-171:/home/lucas:/bin/bash
Note que cada parâmetro do usuário é separado por : (dois pontos). Vamos estudar cada um:
Criando usuários no GNU/Linux
adduser opções usuário
adduser lucas
passwd lucas
Foi criado e definido a senha para o usuário lucas
Faz com que a conta do usuário seja criada sem a solicitação de uma senha (ou seja, não executa o comando passwd).
adduser -disabled-login usuário
No entanto, a conta não poderá ser usada até que o usuário defina sua senha de acesso;
Em geral, os sistemas GNU/Linux checam se a conta criada pode ter em seu nome (ou mesmo na senha) algo que aumente os riscos ao sistema. Com esse comando, o sistema é instruído a não fazer esse tipo de verificação;
adduser -force-badname usuário
Com esse parâmetro, ao invés de uma conta de usuário, um grupo é criado. Para essa tarefa também pode-se utilizar o comando addgroup;
adduser -group grupo
Com essa opção, você define em qual diretório ficará o “home” do usuário. Se esse parâmetro não for usado, o sistema criará o “home” no diretório padrão (geralmente, em /home/nome_do_usuário).
adduser -home diretório usuário
Se preferir que nenhum diretório desse tipo seja criado, você pode utilizar o comando.
adduser -no-create-home usuário
(não recomendável);
Quando usuários são criados, o sistema geralmente adiciona a eles UIDs sequenciais.
adduser -uid número usuário
Você pode especificar o UID que quiser usando o parâmetro uid seguido de um número, por exemplo, uid 31415. Note que, em muitas distribuições GNU/Linux, você pode utilizar apenas a letra u ao invés de uid.
Note também que o GID do usuário será igual ao valor informado por você, a não ser que você especifique outro através da opção -gid, vista abaixo;
Semelhante ao parâmetro acima, mas especifica manualmente um grupo para o usuário ao invés de criar um parâmetro.
adduser -gid número usuário
Note que, em muitas distribuições GNU/Linux, você pode utilizar apenas a letra g ao invés de gid. O gid informado deve ser o de um grupo já existente;
Adiciona o usuário criado a um grupo já existente, ao invés de criar um novo grupo para ele;
adduser -ingroup grupo usuário
Através desse parâmetro, você pode especificar qual será o shell padrão do usuário. Em alguns sistemas é possível usar a letra s ao invés da palavra shell.
adduser -shell shell usuário
Para servir de exemplo, vamos criar um usuário de nome fulano. Esse usuário deverá:
– ser inserido no grupo infofulano (já existente).Veja como ficará o comando:
adduser -uid 27182 -ingroup infofulano fulano
Assim que esse comando for digitado, o sistema pedirá que você digite duas vezes uma senha para o usuário.
Em seguida, perguntará as informações adicionais, como nome completo, telefone, etc. Note que você pode deixar essas informações em branco, se preferir. Você deve ter notado pelo comando acima de que é possível utilizar mais de uma opção ao mesmo tempo no comando adduser.
Eliminando usuários no GNU/Linux
Apagando usuários com userdel
Se você precisa apagar um usuário, saiba que o procedimento é fácil. Basta digitar o comando userdel seguido do nome do usuário. Por exemplo:
userdel voldmort
Se além de eliminar esse usuário do sistema você quiser que sua pasta “home” seja apagada (junto com todo o seu conteúdo), basta digitar o comando userdel seguido do parâmetro -r e do nome do usuário:
userdel -r voldemort
Ao fazer isso, certifique-se que o usuário tem cópia de todos os arquivos a serem apagados, quando cabível.
Alterando e controlando a senha do usuário
Por segurança, é recomendável alterar a senha de todos os usuários periodicamente. Para isso, usa-se o comando passwd. Se qualquer usuário quiser alterar a sua própria senha, basta digitar apenas passwd em um terminal. Quando isso ocorrer, o sistema pedirá que o usuário digite a sua senha atual e, em seguida, pedirá a nova sequência, que deve ser informada duas vezes, para confirmação.
O usuário root (ou outro que tenha privilégios de administrador) pode mudar não só a sua própria senha como a senha de todos os outros usuários do sistema. Para isso, o comando passwd também é usado e pode ser acrescido de opções:
passwd usuário opções
Eis algumas das opções disponíveis (para conhecer as outras, pode-se digitar o comando man passwd em um terminal):
-e: faz com que a senha do usuário expire, forçando-o a fornecer uma nova combinação no próximo login;
-k: permite a alteração da senha somente se esta estiver expirada;
-x dias: faz com que a senha funcione apenas pela quantidade de dias informada. Depois disso, a senha expira e o usuário deve trocá-la;
-n dias: indica a quantidade mínima de dias que o usuário deve aguardar para trocar a senha;
-w dias: define a quantidade mínima de dias em que o usuário receberá o aviso de que sua senha precisa ser alterada;
-i: deixa a conta inativa, caso a senha tenha expirado;
-l: “tranca” a conta do usuário;
-u: desbloqueia uma conta que esteja “trancada”;
-S: exibe o status da conta (note que a letra S deve estar em maiúscula).
Vamos a alguns exemplos para que você possa entender essas opções:
Suponha que você queira que a senha do usuário marvin expire após 30 dias. O comando é:
passwd marvin -x 30
Suponha, agora, que você queira que a senha do usuário bender expire após 14 dias e exiba uma mensagem de que é necessário trocar a senha três dias antes da data limite. O comando será o seguinte:
passwd bender -x 14 -w 3
Agora, vamos supor que você queira saber do status do usuário bender, para confirmar as alterações. Eis o comando:
passwd bender -S
O resultado exibido neste exemplo é:
bender P 12_11_2007 0 14 3 -1
A letra P acima informa que o usuário bender tem senha. Se não tivesse, no lugar de P estariam as letras NP. Se a conta do usuário estivesse bloqueada, apareceria a letra L. Por sua vez, a data que aparece na sequência (no formato mês/dia/ano) informa a última alteração de senha que houve. As próximas quatro informações indicam, respectivamente, o período mínimo de utilização da senha, o período máximo (lembra que você definiu esse período com sendo de 14 dias?), o período de alerta (que você informou como sendo de 3 dias) e, por fim, o período de inatividade (quando não há inatividade, o resultado é -1).
Alterando senha com passwd
Como já informado antes, o GNU/Linux usa o arquivo /etc/shadow para lidar com as senhas de usuários. As informações desse arquivo têm o seguinte padrão (usando como exemplo os dados do usuário toad):
toad:$1$O48MNVt9$08BBOTqV0cr2LtKtMXtAY1:13849:0:99999:7:::
Assim como acontece no arquivo /etc/passwd, as informações do arquivo /etc/shadow são separadas por : (dois pontos). No caso acima, aparece o nome do usuário (toad), a senha criptografada (é por que isso que há esse monte de caracteres sem sentido), a data da última mudança (13849), a quantidade mínima de dias que o usuário deve esperar para mudar a sua senha (0), a quantidade máxima de dias para a alteração de senha ser feita (99999) e a quantidade de dias restantes à data de expiração que o sistema operacional deve esperar para exibir alertas de mudança de senha (7).
Os demais campos (que estão em branco) são destinados à informações de expiração de conta, mas dificilmente são usados.
Você pode ter se perguntado sobre o motivo das datas serem representadas por um único número, como o valor 13849, acima. Essa formato indica a quantidade de dias que já se passou desde 1 de janeiro de 1970.
Caso tenha dúvidas de como gerenciar Grupos Clique Aqui