O documento descreve como gerenciar usuários e grupos no Linux, incluindo como:
1) Adicionar novos usuários usando os comandos adduser e useradd;
2) Alterar informações de usuários como senha e diretório home usando usermod e passwd;
3) Excluir usuários com o comando userdel;
4) Gerenciar grupos com addgroup, groupdel e verificar grupos de um usuário com groups.
2. Adicionando novos usuários no
Ubuntu
Acesse: “Sistema > Administração > Usuários e Grupos”. Abrirá a tela “Configurações de
Usuários”.
Dependendo da versão de Distribuição do Linux (Versão do Ubuntu no nosso caso),
abrirá uma tela semelhante a esta:
3. Adicionando novos usuários no Ubuntu
Clicando sobre a opção adicionar usuário, temos a seguinte tela como resultado:
4. Criando usuários no GNU/Linux
adduser – Cria um novo usuário ou atualiza as informações padrão de um usuário no
sistema Linux. O comando useradd cria uma entrada para o usuário no arquivo “/etc/passwd”
com informações do seu login, UID (user identification), GID (group identification), shell e
diretório pessoal, e a senha criptografada deste usuário é armazenada no arquivo
“/etc/shadow”. A identificação do usuário (UID) escolhida será a primeira disponível no
sistema especificada de acordo com a faixa de UIDS de usuários permitidas no arquivo de
configuração /etc/adduser.conf. Este é o arquivo que contém os padrões para a criação de
novos usuários no sistema. Comando usado para a criação de usuários:
adduser [opções] usuário
”sudo adduser fulano”
Cria o novo usuário “fulano” no sistema, cujo diretório pessoal do mesmo será “/home/fulano”.
5. Criando usuários no GNU/Linux
Opção -d:
”sudo adduser -d /home/outro_dir fulano”
Para criar o novo usuário “fulano” no sistema, porém com seu diretório pessoal se
localizando em “/home/outro_dir”.
Opção -s:
”sudo adduser -s /bin/sh fulano”
Para criar o usuário “fulano” definindo seu shell como sendo o sh. O shell padrão do
Ubuntu, assim como a maioria das outras distribuições é o bash. Com esta opção “-s” é
possível criar um usuário sem que o mesmo possa ter acesso a nenhum shell do sistema,
bastando executar o seguinte comando ”useradd -s /bin/false fulano”.
Opção -g:
”sudo adduser -g 600 -G 500,68 fulano”
Para criar o usuário “fulano” com grupo padrão de GID 600 e também pertencente aos
grupos GID 500 e GID 68. Para saber os GID de cada grupo do sistema consulte o arquivo
6. Criando usuários no GNU/Linux
Mais de uma opção:
adduser -m -c Fulano -d /home/meu_user -s '/bin/sh' meu_user -g
usuarios
Parâmetro -d: Estamos dizendo que o diretório home de Fulano será em /home/meu_user
Parâmetro -s: O shell padrão para esse usuário será o /bin/sh
Parâmetro -g: Que ele será criado no grupo usuários.
ATENÇÃO: Posso criar dois usuários root? Não, somente usuários persistentes no grupo
root do sistema.
7. Alterando informações dos usuários
usermod: Para alterar as informações do usuário, é semelhante ao adduser:
usermod [opções] usuário
Opções:
usermod -d diretório usuário
Altera o diretório "home" do usuário. Adicione -m no final para mover o conteúdo da pasta
anterior para a nova. Por exemplo: usermod -d /financeiro -m peterpan
usermod -e data usuário
Define a data de expiração da conta do usuário. Em geral, a data é fornecida no esquema
ano/mês/dia (aaaa-mm-dd). Por exemplo:usermod -e 2008-10-28 alunol
usermod -l novo_nome usuário
Altera o nome do login do usuário. No exemplo a seguir, o usuário alunotecnico teve seu
nome alterado para aluno:usermod -l aluno alunotecnico
usermod -g grupo número usuário
Altera o GID do grupo principal do usuário. Por exemplo:usermod -g 42 aluno
usermod -u número usuário
Altera o UID da conta do usuário
8. Alterando e controlando a senha do usuário
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 seqüência, que deve ser informada duas vezes,
para confirmação.
passwd usuario [opções]
Opções:
-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).
10. Alterando e controlando a senha do usuário
Para que a senha do usuário fulano expire após 30 dias. O comando é:
passwd fulano -x 30
Para que a senha do usuário ciclano 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 ciclano -x 14 -w 3
Agora, vamos supor que você queira saber do status do usuário ciclano, para confirmar as
alterações. Eis o comando:
passwd ciclano -S
O resultado é:
ciclano P 12/11/2007 0 14 3 -1
A letra P acima informa que o usuário ciclano tem senha. Caso não tenha senha: NP e se
tivesse bloqueada apareceria L. Por sua vez, a data que aparece na seqüê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
11. Alterando e controlando a senha do usuário
”sudo passwd fulano” para alterar a senha do usuário “fulano”.
”sudo passwd -l fulano” para bloquear a conta do usuário “fulano”.
”sudo passwd -u fulano” para desbloquear a conta do usuário “fulano”.
”sudo passwd -d fulano” para desativar a senha do usuário “fulano” deixando-o sem uma
senha de acesso.
12. Excluindo usuários no GNU/Linux
userdel: Comando para excluir usuário.:
userdel nomedousuario
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 nomedousuario
Ao fazer isso, certifique-se que o usuário tem cópia de todos os arquivos a serem
apagados, quando cabível.
13. Curiosidades...
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 fulano):
fulano:$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:
Nome do usuário (fulano);
A senha criptografada (é por que isso que há esse monte de caracteres sem sentido);
Data da última mudança (13849);
Quantidade mínima de dias que o usuário deve esperar para mudar a sua senha (0);
Quantidade máxima de dias para a alteração de senha ser feita (99999)
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.
14. Gerenciando grupos
addgroup: funciona de maneira igual ao comando adduser (inclusive algumas
opções são as mesmas), no entanto, cria grupos ao invés de usuários;
addgroup [opções] nomedogrupo
groupdel: serve para eliminar grupos do sistema;
groupdel nomedogrupo
groups: Mostra os grupos dos quais um usuário faz parte.
groups nomedousuario
15. Gerenciando grupos
As informações dos grupos são armazenadas no arquivo /etc/groups.
Esse arquivo também indica quais usuários pertencem aos grupos existentes. Cada grupo
contém uma linha com essas informações. Vamos analisar a seguinte linha de um arquivo /
etc/groups para entender melhor como isso funciona:
alunotecnico:x:1002:joao,maria,pedro
Assim como nos arquivos /etc/passwd e /etc/shadow, os campos da linha são separados
por : (dois pontos).No exemplo acima:
O primeiro campo indica o nome do grupo (alunotecnico).
O segundo campo informa a senha (é possível definir senhas para grupos).Neste caso,
usa-se x para indicar a ausência de senha.
O terceiro campo informa o GID do grupo (1002)
No quarto campo informa quais são os usuários pertencentes a esse grupo.
Note que, neste exemplo, os usuários joao,maria e pedro fazem parte do grupo
alunotecnico. A lista de usuários deve ser separada por vírgulas, sem espaço entre os
nomes.
16. Gerenciando grupos
No que se refere a este assunto, é possível que encontre grupos em seu sistema que você
não lembra de ter criado. Suponha, por exemplo, que você digitou o comando groups aluno
para saber quais grupos o usuário aluno, e o resultado foi o seguinte:
aluno : aluno adm cdrom floppy audio video scanner lpadmin
powerdev
Note que o usuário aluno participa de vários grupos, sendo um deles o seu grupo principal,
que leva o seu nome. Mas, de onde surgiram os demais? O GNU/Linux possui alguns grupos
considerados "padrão", isto é, grupos que servem para permitir que o usuário execute
determinadas tarefas. A quantidade e as finalidades dos grupos podem variar de acordo com
a distribuição GNU/Linux utilizada e a sua configuração. Eis alguns grupos bastante comuns:
cdrom: grupo para utilização de unidades de CD/DVD;
audio: grupo para acesso aos recursos de áudio do computador;
video: grupo para acesso aos recursos de vídeo do computador;
floppy: grupo para utilização da unidade de disquete;
adm: grupo para acesso de recursos administrativos.
17. Comandos adicionais
O GNU/Linux ainda conta com vários outros comandos que lhe ajudam a gerenciar e obter
informações de usuários e grupos. Veja alguns:
logname: mostra o nome do seu usuário;
users: mostra os usuários que estão conectados ao sistema no momento;
id: mostra dados da identificação do usuário. Eis algumas opções:
id usuário: exibe os grupos (e seus respectivos GIDs) dos quais o usuário faz parte;
id -g usuário: mostra o GID do grupo do usuário;
id -G usuário: exibe o GID de todos os grupos do usuário (nome que a letra G fica em
caixa alta);
id -u usuário: indica o UID do usuário.
finger usuário: mostra informações detalhadas do usuário. Se o comando for digitado
isoladamente (ou seja, somente finger), o sistema exibe todos os usuários que estão
conectados no sistema operacional no momento;
groups usuario: mostra os grupos a que o usuário pertence no sistema.
18. Comandos adicionais
Para tornar outro usuário sem ter que logar. Use da seguinte forma:
su nome-do-usuário
Ex: # su aluno
No caso do ubuntu e algumas outras distribuições, utilize o comando su da seguinte
forma:
# sudo su
Para sair do root ou de um usuário acessado via o comando su
# exit ou a tecla de atalho CTRL+D
Para efetuar o logoff de um console:
# exit ou # logout ou a combinação de teclas CTRL+D
Exibe usuários logados:
# who
#w
# whoami
# who am i
# logname
# users
19. Comandos Diversos
Para limpar a tela do terminal:
# clear
Obs: Tecla de atalho: ctrl+l
Para exibir a data e hora:
# date
Para exibir o calendário:
# cal - Exibe o calendário do mês atual.
# cal 2004 - Exibe o calendário do ano de 2004.
Para configurar a data e a hora. Use da seguinte forma:
date MMDDHHminAAAA
# date 270220302012
Para exibir Informações da Máquina. Versão, kernel, plataforma
# uname -a
20. Comandos Diversos
Para exibir as características do Processador:
# lscpu ou # cat /proc/cpuinfo
Para exibir as características de memória do sistema:
# free # free -m (exibe em megas) # free -g (exibe em giga)
Exibe os módulos que estão em uso no momento:
# lsmod
Listar os Processos da máquina em tempo real:
# top
Exibe o tempo que a máquina está ligada:
# uptime
21. tty – Consoles Virtuais
Acessar Consoles Virtuais (De F1 a F12)
Para acessar:
ALT+F1
.
.
.
ALT+F12
Ou
CTRL+ALT+F1 ... CTRL+ALT+F12 (Caso exista a interface gráfica na máquina).
No caso do FEDORA a Interface Gráfica está no console F1
No caso do Ubuntu A Interface Gráfica está no console F7
22. Comandos Diversos
Exibe os comandos executados no console:
# history
Acessa o comando do histórico
!Número do comando
Ex: # !15
Apaga o histórico de comandos:
# history -c
Para obter ajuda do Linux: comando --help
Ex: # df --help
Para obter um manual completo de um comando use da seguinte
forma: man comando
Ex: # man ls
23. Comandos Diversos
Comandos para Desligar o Servidor Linux:
Desliga o servidor:
# halt
# poweroff
# shutdown -h now
Reinicia o servidor:
# reboot
# shutdown -r now
# CTRL + ALT + DEL
Programa o desligamento:
# shutdown -h +30 (Desliga o servidor daqui a 30 minutos)
# shutdown -h +120 (Desliga o servidor daqui a 2 horas)
Programa o reinicio:
# shutdown -r +30 (Reinicia o servidor daqui a 30 minutos)
# shutdown -r +120 (Reinicia o servidor daqui a 2 horas)
24. Exercícios
1)Torne-se root
2)Crie os seguintes usuários:
nome: teste
senha: teste
nome: teste1
senha: teste1
Logue no console F1 com o teste1 e execute o comando top.
Exiba os usuários logados de todas as formas possíveis
Exiba o que cada usuário está executando.
Encerre (faça logout) das sessões dos usuários: teste, teste1
Exclua do sistema os usuários: usuário3, usuário4, usuário5 e usuário6.
Exiba a data e hora.
Acerte a data e hora.
Crie um alias chamado raiz que limpa a tela e exibe a raiz do disco com detalhes.
Execute o alias raiz.
Exiba todos os alias do sistema.
Apague o alias raiz (certifique que o alias esteja apagado).
Exiba a versão do kernel.
Exiba a quantidade de memória RAM em giga.
Exiba os módulos carregados na memória.
Exiba as características do processador.
Exiba os comandos que foram executados até agora.
Repita o comando que criou o alias raiz.
Apague o histórico de comandos.
Qual comando reinicia o servidor daqui a 15 minutos?
Quais comandos são capazes de desligar o servidor imediatamente?