administração de sistemas operacionais · numéricas para usuário e grupos em muitos sistemas...

32
Administração de Sistemas Operacionais Prof.: Marlon Marcon

Upload: trankhue

Post on 03-Jan-2019

213 views

Category:

Documents


0 download

TRANSCRIPT

Administração

de Sistemas

Operacionais Prof.: Marlon Marcon

Gerenciamento de

Usuários Aula 11

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.

PAM no Linux

Praticamente todos os aplicativos do Linux que requerem algum tipo de autenticação suportam PAM.

Na verdade, não funcionam sem PAM.

Toda a configuração está localizada no diretório /etc/pam.d. Quando um aplicativo suporta PAM, ele necessita de um arquivo de configuração neste diretório