240 likes | 389 Views
Gerenciamento de Usuários. Campus - Cachoeiro Curso Técnico de Informática. Prof. João Paulo de Brito Gonçalves. Prof. João Paulo de Brito Gonçalves. 1. Conceito de Usuário.
E N D
Gerenciamento de Usuários Campus - Cachoeiro Curso Técnico de Informática Prof. João Paulo de Brito Gonçalves Prof. João Paulo de Brito Gonçalves 1
Conceito de Usuário • O Linux é um sistema multiusuário desde seu nascimento e o acesso simultâneo de várias pessoas é algo rotineiro em qualquer servidor de médio porte. Há desde sistemas com 10 usuários até grandes empresas com 10 mil usuários ou mais, e é o técnico que deve gerenciar todos eles. • As tarefas básicas no gerenciamento de usuário são: • Preparação e configuração do ambiente. • Criar a conta do usuário e definir uma senha. • Alterar a senha do usuário. • Remover a conta do usuário. • Definir as políticas de uso da conta e previnir abusos. 2
Gerência de usuários Classes de usuários diferentes: Administrador - Acesso irrestrito a arquivos - Possibilidade de configuração de periféricos - Instalação e desinstalação de programas Usuário limitado - Acesso apenas aos arquivos de sua sessão - Possibilidade de usar os programas instalados mas restrição em relação a instalação dos mesmos. 3
Política de senhas - Permite a autenticação de usuários do sistema - Ainda é o meio mais comum de proteção a recursos do computador. - Ideal que misture caracteres numéricos e alfa-numéricos para que seja mais difícil de decifrar. 4
Controle de Acesso Administração de usuários, grupos, papéis níveis de segurança Negado Permitido Pedido de Acesso Subsistema de Autorização Autenticação Requer modificação no pedido Política de Segurança 5
Gerenciamento de contas de usuários e grupos locais • Conta de Usuário • Uma conta pode ser vista como uma entidade a nível do sistema operacional que armazena informações do tipo: • nome do usuário; • identificador do usuário no sistema; • grupo (ou equipe) do usuário; • diretório pessoal do usuário (onde ele armazena suas informações); • interpretador de comandos que o usuário utiliza; • credenciais ou senhas do usuário; • permissões do usuário.
Gerenciamento de contas de usuários e grupos locais • Essas informações vão indicar ao sistema operacional como o usuário deve ser tratado durante o uso da estação. • Obviamente, cada sistema operacional irá tratar esses dados de uma forma particular. Ainda: alguns sistemas operacionais (como o Linux) irão permitir que esses dados possam ser armazenados e obtidos de diversas maneiras. • Assim, uma conta é a maneira com a qual o usuário é reconhecido pelo sistema. Em um banco, por exemplo, o cliente é identificado pelo número de sua conta corrente (seu identificador no sistema) e sua senha (sua credencial no sistema). • Em um sistema multiusuário, é óbvio que uma estratégia parecida tem que ser adotada. Em Unix, o usuário é identificado pelos seguintes dados:
Gerenciamento de contas de usuários e grupos locais • Username ou Login • Senha (Password) • ID ou UID (User Identification) • GID (Group Identification) • Dados do Usuário • Diretório Pessoal • Interpretador de Comandos (Shell)
Criação de usuários • O comando adduser é com certeza o mais interessante entre os programas disponíveis para a criação de usuários. • Sua maior vantagem é obter todos os dados necessários à criação do usuário através de parâmetros o que facilita imensamente a criação de usuários em scripts. • O comando adduser também copia o conteúdo do diretório /etc/skel. Este diretório é usado para manter e configurar arquivos que se pretenda copiar para o diretório pessoal de um usuário recém-criado. • A remoção das informações do usuário nos arquivos /etc/passwd, /etc/shadow e /etc/group pode ser feita com o comando userdel.
O ARQUIVO /ETC/PASSWD A maioria dos sistemas Unix armazena os dados do usuário no arquivo /etc/passwd. A Figura abaixo mostra uma linha desse arquivo. Pode ser verificado, nessa figura, que os dados do usuário são separados por ‘:’. • O primeiro campo do arquivo /etc/passwd é o login do usuário. • O segundo campo do arquivo /etc/passwd é a senha do usuário. Apesar do que se diz comumente, a senha do usuário não é criptografada, e sim codificada (hashed). No arquivo /etc/shadow, são listados os hashes de senha dos usuários.
O arquivo /etc/PASSWD • O terceiro e o quarto campos do arquivo /etc/passwd são, respectivamente, o UID (número de usuário – User ID) e o GID (número de grupo – Group ID). São usados, principalmente, para identificar o usuário no sistema e controlar as permissões individuais e grupais desse usuário. • O quinto campo do /etc/passwd é o campo de dados do usuário, comentado anteriormente. Em várias situações, contém apenas o nome do usuário. • Quando contém outras informações, essas entradas são separadas por vírgulas. Apesar de poder armazenar qualquer coisa, o aplicativo finger espera que as informações do usuário estejam na seguinte ordem:
O arquivo /etc/PASSWD • nome completo; • localização do escritório; • telefone do escritório; • número de telefone residencial. • Os dois últimos campos informam, respectivamente, o diretório pessoal e o interpretador de comandos do usuário. • Em geral, o diretório pessoal encontra-se em algum ponto na árvore do /home. Os interpretadores de comandos mais utilizados são o bash (/bin/bash) e o tcsh (/bin/tcsh).
O arquivo /etc/PASSWD • Existem vários aplicativos para trocar a senha, mas o mais usado é o comando passwd. • Chamado em sua forma tradicional, sem nenhuma opção, ele irá permitir a troca da senha do usuário que invocou o comando. Para isso, ele pedirá a senha atual do usuário. • Caso a senha confira, ele pedirá que o usuário digite duas vezes a senha pretendida. Ele só alterará a senha, caso a senha pretendida seja digitada da mesma forma nas duas tentativas.
O arquivo /etc/shadow - Esse arquivo só pode ser lido pelo usuário root, que detém os poderes administrativos sobre o sistema. - Como o arquivo /etc/passwd, esse arquivo possui campos separados por “:” • O primeiro campo é o login do usuário, tal qual como no arquivo /etc/passwd. Na realidade essa é a única ligação entre os dois arquivos. O segundo campo é a senha codificada. • O terceiro campo é usado para calcular o dia em que a senha foi alterada pela última vez. Para ser mais exato, ele informa quantos dias se passaram entre 1º de Janeiro de 1970 e a data da última alteração da senha. Pode ser configurado com a opção –d.
O arquivo /etc/shadow • O quarto campo é, sob o ponto de vista da segurança, praticamente inútil: ele indica o número mínimo de dias para que um usuário altere sua senha. Isso pode ser altamente perigoso, caso o usuário tenha sua senha alterada por terceiros. Pode ser configurado usando –m. • Esse campo só faz sentido em contas com as quais não se quer mudança de senha antes de um dado prazo, ex.: contas administrativas e de sistemas. Caso contrário, deve ser deixado em branco ou com o valor ‘0’. • O quinto campo é exatamente o inverso do anterior: indica o número máximo de dias que o usuário pode ficar sem alterar a senha. Pode ser configurado com o parâmetro –M.
O arquivo /etc/shadow • Apesar de que as regras para uma boa segurança apontam para a necessidade de se trocar as senhas após um dado período, essa técnica não é, em geral, recomendada. • Isso porque obrigar o usuário a alterar sua senha constantemente pode forçá-lo a reaproveitar senhas antigas ou anotar a nova senha e isso retiraria toda a vantagem do processo. O uso de “99999” nesse campo indica que as senhas nunca “caducam”. • Ainda assim, caso o administrador resolva fazer uso desse recurso de “caducidade de senhas”, ele irá fazer uso do sexto campo. Esse campo indica quantos dias antes do prazo fatal para a alteração da senha o usuário deva começar a ser avisado pelo programa de login. Isso pode ser feito através do parâmetro –W.
O arquivo /etc/shadow • Outra alternativa é utilizar o sétimo campo. Esse campo informa quantos dias após a expiração da senha o sistema deva considerar a conta desabilitada. Pode ser configurado com o parâmetro -I • Caso se pretenda utilizar o quinto campo para desabilitar um usuário, esse uso é incorreto. • O oitavo campo indica justamente quando o usuário deve ser desabilitado. Da mesma forma que no terceiro campo, ele informa o número de dias entre 1º de Janeiro de 1970 e a data da desabilitação da conta. Esta opção é configurável usando o parâmetro –E. • Para simplificar o processo de alteração da informações do terceiro ao oitavo campo do arquivo /etc/shadow, geralmente se faz uso do comando chage. Quando chamado com a opção ‘-l’, informa os dados do usuário. • O uso do comando chage usuario, faz com que o comando chage seja chamado de forma interativa, possibilitando a mudança de informações sobre a senha do usuário.
GRUPOS DE USUÁRIOS • Cada usuário UNIX pertence ao menos a um grupo, associado a ele no momento do login. • Mas é possível que um mesmo usuário pertença a vários grupos. Em alguns casos, é criado um grupo distinto para cada usuário. Isso é interessante em ambientes onde a privacidade deva ser mantida ao máximo. • Em outros casos, como ambientes acadêmicos, colocam-se usuários com um mesmo perfil (ex.: alunos de uma mesma turma) em um único grupo. • O grupo primário de um usuário é o grupo no qual ele é inserido quando é criado. O grupo secundário é um grupo onde ele é inserido posteriormente, já fazendo parte de um outro grupo, que é o seu grupo primário.
Grupos de Usuários • Pode ser verificado que cada entrada no arquivo /etc/group é composta de quatro campos. • O primeiro campo é o nome do grupo. Esse nome deve ser criado de acordo com a mesma filosofia de escolha do login do usuário. • O segundo campo é a senha do grupo, raramente utilizada com finalidades práticas. • O terceiro campo é o GID do grupo. O quarto e último campo são os usuários extras do grupo.
Grupos de Usuários • Para adicionar usuários a grupos já existentes é possível utilizar tanto o comando: • adduser usuario grupo ou • addgroup usuario grupo • Desde que usuário e grupo já tenham sido anteriormente criados. • Para criar um usuário e inserí-lo a um grupo já existente, pode–se usar: • adduser usuario --ingroup grupo • Após a inserção, é possível verificar a modificação no arquivo /etc/group ou utilizando-se o comando groups
Grupos de usuários • Um grupo pode ser removido com a edição direta do arquivo /etc/group ou através do comando groupdel. • Essa última opção é preferida, pois impedirá o administrador de remover um grupo que ainda possua usuários tendo esse grupo como padrão (o definido no arquivo /etc/passwd). - As informações básicas dos usuários que são cadastradas quando da criação do usuário podem ser recuperadas com o uso do comando finger e modificadas com o comando chfn
Gerência de usuários • - Por padrão, o sistema já possui o grupo admin ou sudo como habilitado a utilizar o sudo com senha. • Deste grupo faz o usuário que foi criado quando o sistema Linux foi instalado, ou seja, o primeiro usuário do sistema, geralmente com UID 1000. • A princípio então, se nenhuma modificação for realizada este é o único usuário que tem poderes para se tornar root. • É possível adicionar outros usuários a este grupo, ou colocar outros grupos de usuário no arquivo com os mesmos poderes. 22
Comando chown • O comando chown (change owner) permite trocar o usuário proprietário do arquivo e, opcionamente, o grupo do arquivo. Em Linux, esse comando só pode ser executado pelo usuário root. • Dentre as opções disponíveis, merece destaque o parâmetro ‘-R’, que faz a troca recursivamente em todos os arquivos e subdiretórios de um diretório especificado. 23
Comando chgrp • Age de forma similar ao chown, mas permite a troca apenas do grupo proprietário do arquivo. • Caso não esteja sendo usado para mudança a um outro grupo ao qual o usuário também faça parte, o comando só pode ser executado pelo root para realizar a troca dos grupos. • Dentre as diversas opções disponíveis, merece destaque o parâmetro ‘-R’ que faz a troca recursiva em todos os arquivos e subdiretórios localizados abaixo do diretório especificado. 24