administração de sistemas operacionais · numéricas para usuário e grupos em muitos sistemas...
Post on 03-Jan-2019
213 Views
Preview:
TRANSCRIPT
O que é uma conta
Quando um computador é usado por
muitas pessoas, é necessário diferencias
os usuários, para, por exemplo, permitir
que os arquivos pessoais sejam realmente
pessoais.
Isto é importante mesmo que o
computador seja usado por somente
uma pessoa por vez
O que é uma conta
Cada usuário deve ter um nome único
de acesso ao sistema.
Além do nome, uma conta compreende
todos os arquivos, recursos e informações
pertencentes à um usuário.
Esta conta é semelhante à uma conta
bancária, pois possui uma série de
recursos associados.
Criando um usuário
O kernel trata os usuário como meros
números
Cada usuário é identificado como um
número inteiro único, a identificação de
usuário (user id ou uid), isto porque
número são mais rápidos de serem
processados que strings
Criando um usuário
Para criar um usuário, dois programas são
muito utilizados, o adduser e o useradd.
Existem ainda editores gráficos, como o
control-panel.
Em todos os casos o resultado final é o
mesmo.
/etc/passwd e outros arquivos
de informação
A base de dados de usuários é um
arquivo texto, conhecido por
/etc/passwd, o qual contém todos os
nomes válidos de usuários e as
informações associadas a estes.
O arquivo contém um nome de usuário
por linha e está dividido em sete campos
delimitados por dois pontos.
/etc/passwd - campos
1. Nome do usuário
2. Senha em formato encriptado
3. Identificação numperica do usuário (uid)
4. Identificação numérica do grupo (gid)
5. Nome completo ou outra descrição da conta
6. Diretório pessoal
7. Shell de login
/etc/passwd - campos
Qualquer usuário pode ler o arquivo
passwd, podendo conhecer por exemplo
o nome de outros usuários do sistema.
A senhas também podem ser vistas,
porém como estas são encriptadas em
teoria estão seguras.
Não é seguro manter as senhas no
arquivo passwd
/etc/passwd - campos
Muitos sistemas linux têm a opção do arquivo shadow para senhas.
As senhas são armazenadas encriptadas no arquivo /etc/shadow, o qual somente o root tem acesso.
Isso garante segurança ao acesso as senhas por programas que somente nnecessitam das outras informações presente do passwd.
Escolhendo identificações
numéricas para usuário e grupos
Em muitos sistemas não faz diferença
qual a identificação do usuário ou do
grupo, porém se está sendo utilizado NFS
é necessário que uid seja igual à gid
Deve-se evitar a reutilização de uids
numéricos e nomes de usuários, porque
os novos usuários podem ter acesso aos
arquivos dos antigos donos.
Interpretador inicial: /etc/skel
Quando um diretório pessoal é criado,
ele é inicializado com arquivos oriundos
do diretório /etc/skel.
Pode-se criar um arquivo
/etc/skel/.profile que realiza alguma
configuração para novos usuários.
Interpretador inicial: /etc/skel
É importante tentar manter o /etc/skel o
menor possível, uma vez que poderá ser
extremamente trabalhoso ter que
atualizar todos os arquivos dos usuários já
existentes.
Criando um usuário
manualmente
Para criar um usuário manualmente,
devem ser seguidos os seguintes passos:
1. Edite o arquivo /etc/passwd com o
utilitário vipw e adicione uma nova linha
para a nova conta. Não se deve editar
com outro editor, pois o vipw trava o
arquivo para que outros programas não
atualizem ele ao mesmo tempo.
Criando um usuário
manualmente
2. Caso seja necessário criar um novo
grupo realize a mesma tarefa no
/etc/group, com o utilitário vigr.
3. Crie um diretório pessoal com o
comando mkdir;
4. Copie os arquivos do diretório /etc/skel
para o novo diretório criado.
Criando um usuário
manualmente
5. Ajuste as propriedades e permissões
com os comandos chown e chmod.
cd /home/novousuario
chown –R novousuario.grupo
chmod –R go=u.go-w
chmod go= .
6. Ajuste a senha com o comando passwd
Alterando características de
um usuário
Há alguns comandos para alterar as características de uma conta
chfn: Altera o nome do usuário
chsh: Muda o shell de login
passwd: Muda a senha
O superusuário pode realizar estas alterações para quanquer conta, enquanto um usuário comum pode alterar somente sua própria conta.
Removendo um usuário
Para se remover um usuário deve-se
inicialmente remover todos os seus
arquivos, e todas as referências a ele.
Após isso removem-se as linhas
correspodentes do arquivo /etc/passwd
e /etc/group
Removendo um usuário
Para encontrar os usuários pode-se utilizar
o comando find;
find / -user nomeusuario
Algumas distribuições possuem
comandos de remoção de usuários, tais
como deluser e userdel
Desabilitando um usuário
temporariamente
Algumas vezes é necessário desabilitar
temporariamente um usuário, sem a
necessidade de removê-lo.
Por exemplo, o usuário não pagou as
dívidas, ou a senha pode ter sido
roubada.
Desabilitando um usuário
temporariamente
Uma boa maneira de desativar o usuário
é exibir uma mensagem por meio do
shell.
Um comando para realizar tal terefa
segue:
#!/usr/bin/tail +2
Esta conta foi fechada devido a questões
de segurando.
Módulos de Autenticação
Plugáveis (Pluggable
Authentication Modules - PAM)
Originalmente a autenticação no Linux
era apenas via senhas criptografadas
armazenadas em /etc/passwd.
O programa de login pedia o nome do
usuário e a senha, criptografava a senha
e comparava o resultado com o
armazenado naquele arquivo, se fossem
iguais, garantia o acesso à máquina.
PAM
Isto até funciona muito bem para o
programa login, mas, digamos que agora
eu queira usar isso também para
autenticação remota, ou seja, a base de
usuários não está mais na mesma
máquina, mas sim em alguma outra
máquina da rede, o chamado servidor
de autenticação.
PAM
Surgiu um novo algoritmo de criptografia,
muito mais avançado, mais rápido,
criptografa melhor, etc.
Queremos usar esse novo algoritmo.
Claro que teremos que mudar
novamente o programa login para que
ele suporte este novo algoritmo também.
PAM Para resolver este tipo de problema, a Sun
criou o PAM. O Linux derivou sua implementação do PAM a partir deste documento.
Com PAM, o aplicativo login deste exemplo teria que ser reescrito apenas uma vez, justamente para suportar PAM.
A partir de então, o aplicativo delega a responsabilidade da autenticação para o PAM e não se envolve mais com isso.
PAM
Voltando ao exemplo anterior, no caso
de se querer utilizar um outro algoritmo
de criptografia para as senhas, basta que
o módulo PAM seja modificado para que
todos os aplicativos automaticamente e
de forma transparente passem a usufruir
desta nova forma de autenticação.
PAM
O PAM vai um pouco além de somente
autenticação. Os módulos podem ser
divididos em quatro tipos:
auth
account
passwd
session
PAM - auth
É a parte que verifica que o usuário é
realmente quem ele diz que é. Pode ser
bem simples, pedindo apenas por um
nome e uma senha, ou utilizando
autenticação biométrica, por exemplo
(como uma impressão de voz, uma
imagem da retina ou impressão digital).
PAM - account
Esta parte verifica se o usuário em
questão está autorizado a utilizar este
serviço ao qual ele está se autenticando.
Os módulos aqui podem checar por
horário, dia da semana, origem do login,
login simultâneo, etc.
PAM - passwd
Este serviço é usado quando se deseja
mudar a senha. Por exemplo, aqui
podem ser colocados módulos que
verificam se a senha é forte ou fraca.
PAM - session
Por fim, a parte session fica encarregada
de fazer o que for necessário para criar o
ambiente do usuário.
Por exemplo, fornecer o acesso a alguns
dispositivos locais como o de áudio ou
cdrom, montar sistemas de arquivos ou
simplesmente fazer o registro do evento
nos arquivos de log do sistema.
top related