sistemas operacionais - gnu/linux administracao do sistema / contas de usuários

19
Sistemas Operacionais Luiz Arthur 1 Em sistemas operacionais multiusuários, é comum que o administrador gaste grande parte do seu tempo configurando constas de usuários, efetuando manutenções de rotina e tarefas de backup. A administração de contas de usuários no Linux é relativamente fácil. As contas de usuários são gravadas em um arquivo especial /etc/passwd. Neste arquivo são gravados os dados como login do usuário, senha, identificador, grupo a que ele pertence, nome do usuário, diretório home e shell. A conta do super-usuário tem características especiais: root:x:0:0:root:/root/:/bin/bash Cada elemento que constitui o conteúdo do arquivo /etc/passwd é separado por dois pontos na seguinte seqüência: - Login: O login é a identificação que o usuário vai utilizar no sistema. Este deve ser único sem espaços e geralmente uma abreviação do nome. - x: O x representa a senha do usuário. Nos primórdios do Linux a senha criptografada era gravada neste campo no lugar do x. Mas como vários aplicativos e utilitários precisam ter acesso ao conteúdo do arquivo /etc/passwd ele precisa ter permissões de leitura para todos. Logo percebeu-se que não era muito seguro e a senha criptografada foi colocada em outro arquivo especial chamado /etc/shadow com permissões de leitura somente para o root.

Upload: luiz-arthur

Post on 07-Jun-2015

4.749 views

Category:

Technology


6 download

TRANSCRIPT

Page 1: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur1

Em sistemas operacionais multiusuários, é comum que o administrador gaste grande parte do seu tempo configurando constas de usuários, efetuando manutenções de rotina e tarefas de backup.

A administração de contas de usuários no Linux é relativamente fácil. As contas de usuários são gravadas em um arquivo especial /etc/passwd. Neste arquivo são gravados os dados como login do usuário, senha, identificador, grupo a que ele pertence, nome do usuário, diretório home e shell.

A conta do super-usuário tem características especiais:

root:x:0:0:root:/root/:/bin/bash

Cada elemento que constitui o conteúdo do arquivo /etc/passwd é separado por dois pontos na seguinte seqüência:

- Login: O login é a identificação que o usuário vai utilizar no sistema. Este deve ser único sem espaços e geralmente uma abreviação do nome.

- x: O x representa a senha do usuário. Nos primórdios do Linux a senha criptografada era gravada neste campo no lugar do x. Mas como vários aplicativos e utilitários precisam ter acesso ao conteúdo do arquivo /etc/passwd ele precisa ter permissões de leitura para todos. Logo percebeu-se que não era muito seguro e a senha criptografada foi colocada em outro arquivo especial chamado /etc/shadow com permissões de leitura somente para o root.

Page 2: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur2

- ID do usuário (UserID - UID): Este ID é numérico único para cada conta de usuário. Por definição o ID zero é designado para o usuário root que habilita seus poderes como administrador do sistema. Por convenção, os ID's de 1 a 99 são utilizados para uso administrativo e contas de usuários utilizados para serviços do sistema.

- ID do grupo (GroupID – GID): Este é o ID numérico do grupo ao qual o usuário pertence. Os usuários podem pertencer a grupos de trabalho para facilitar o compartilhamento de informações e gerencia da segurança do sistema. O GID precisa estar cadastrado no arquivo /etc/group.

- Nome do usuário: Este campo alfa numérico aceita espaços e é reservado para o nome do usuário ou qualquer outra observação pertinente.

- Diretório home: O diretório home é o diretório padrão para a conta de usuário. É neste diretório definido que o dono da conta tem privilégios especiais neste campo do arquivo /etc/passwd deverá ser colocado o caminho completo do diretório home.

- Shell: Este campo é designado o executável do shell que cada usuário utiliza. O padrão é o Boune Again Shell /bin/bash. Outros shell's podem ser utilizados, como o /bin/tcsh ou qualquer outro programa que tome seu lugar. Existe uma situação especial em que o arquivo /bin/false é referenciado este arquivo simplesmente não faz nada, proibindo o usuário desta conta de logar no sistema interativamente.

Page 3: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur3

Exemplos de contas no arquivo /etc/passwd:

As senhas no Linux são criptografadas de uma forma que não é possível recuperar a senha usando a engenharia reversa. No entanto um ataque do tipo força bruta, onde diversas palavras, números e símbolos são criptografados e comparados com as senhas criptografadas até que uma comparação seja positiva, é muito utilizado depois do advento de computadores mais rápidos.

Por este motivo, as senhas foram transferidas para um arquivo especial chamado /etc/shadow. Este arquivo contém permissões especiais a que somente o super-usuário tem permissões de acesso, dificultando este tipo de ataque.

O arquivo /etc/shadow possui a seguinte formatação:

root:$1odIUdsnsOIUsid83sHi8Jhue:12422:0:99999:7:::

O primeiro campo do arquivo contém o login dos usuários e o segundo campo contém as senhas criptografadas. Os demais campos contém informações sobre a expiração da conta.

Page 4: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur4

Grupo de trabalho

Para facilitar a administração das permissões de acesso aos recursos e arquivos do sistema, o Linux faz uso do conceito de grupo de trabalho. Estes grupos são definidos no arquivo /etc/group.

root:x:0:rootdaemon:x:10:wwwrun,sendmail,squiduser:x:500:aula,aula

Cada coluna separada por dois-pontos tem o significado a seguir:

- Nome do grupo: O nome do grupo tem que ser único no sistema.

- Assim como as contas de usuário, os grupos podem também fazer uso de senha para que um usuário possa ingressar nele. As senhas são criptografadas no arquivo /etc/gshadow.

- ID do Grupo (GroupID ou GID): Cada grupo precisa de um ID numérico inteiro positivo e único. Esta ID é referenciado no arquivo /etc/passwd.

- Lista de membros: Os grupos de usuários podem conter um ou mais membros e um usuário pode ser membro de mais de um grupo.

Page 5: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur5

Como arquivo de /etc/group é de livre leitura existe a necessidade de separar as senhas de grupo em um arquivo de leitura somente para super-usuário. Este arquivo é o /etc/gshadow. Não é comum o uso de senhas para os grupos de trabalho.

Administrando Contas de Usuário

Como você deve ter visto administrar contas de usuários grupos e senhas é relativamente simples. Você poderá faze-lo com um editor de textos como o vi. Mas o Linux possui um conjunto de ferramentas para facilitar esta tarefa.

useradd ou adduser

adduser adiciona um usuário ou grupo no sistema. Por padrão, quando um novo usuário é adicionado, no Slackware ele é adicionado ao grupo users.

Opcionalmente o adduser também pode ser usado para adicionar um usuário a um grupo. Será criado um diretório home com o nome do usuário (a não ser que o novo usuário criado seja um usuário do sistema) e este receberá uma identificação. A identificação do usuário (UID) escolhida será a primeira disponível no sistema.

Page 6: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur6

useradd/adduser [opções] [usuário/grupo]

Onde:

usuário/grupo

Nome do novo usuário que será adicionado ao sistema. Opções:

-g initial_group

Indica o grupo primário do usuário.

-G group,[...]

Adiciona o usuário um ou mais grupos, os diferentes grupos são separados por virgulas.

-u [num] Cria um novo usuário com a identificação [num] ao invés de procurar o próximo UID disponível.

Page 7: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur7

groupadd

Adiciona um novo grupo de usuários no sistema.

groupadd [grupo] [opções]

Grupo:

Nome do grupo a ser criado.

Opções:

-g

Informa manualmente o número de ID do grupo.

passwd

Muda a senha do usuário ou grupo. Um usuário somente pode alterar a senha de sua conta, mas o superusuário (root) pode alterar a senha de qualquer conta de usuário, inclusive a data de validade da conta, etc.

Os donos de grupos também podem alterar a senha do grupo com este comando.

Page 8: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur8

Os dados da conta do usuário como nome, endereço, telefone, também podem ser alterados com este comando.

passwd [usuário/grupo] [opções]

Onde:

usuário

Nome do usuário/grupo que terá sua senha alterada.

Opções:

-g

Se especificada, a senha do grupo será alterada. Somente o root ou o administrador do grupo pode alterar sua senha. A opção -r pode ser usada com esta para remover a senha do grupo. A opção -R pode ser usada para restringir o acesso do grupo para outros usuários.

-x [dias]

Especifica o número máximo de dias que a senha poderá ser usada. Após terminar o prazo, a senha deverá ser modificada.

Page 9: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur9

-i

Desativa a conta caso o usuário não tenha alterado sua senha após o tempo especificado por -x.

-n [dias]

Especifica o número mínimo de dias para a senha ser alterada. O usuário não poderá mudar sua senha até que [dias] sejam atingidos desde a última alteração de senha.

-w [num]

Número de dias antecedentes que o usuário receberá o alerta para mudar sua senha. O alerta ocorre [num] dias antes do limite da opção -x, avisando ao usuários quantos dias restam para a troca de sua senha.

-l [nome]

Bloqueia a conta do usuário [nome]. Deve ser usada pelo root. O bloqueio da conta é feito acrescentando um caracter a senha para que não confira com a senha original.

Page 10: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur10

-u [nome]

Desbloqueia a conta de um usuário bloqueada com a opção -l.

-S [nome]

Mostra o status da conta do usuário [nome]. A primeira parte é o nome do usuário seguido de L (conta bloqueada), NP (sem senha), ou P (com senha), a terceira parte é a data da última modificação da senha, a quarta parte é a período mínimo, máximo, alerta e o período de inatividade para a senha.

Procure sempre combinar letras maiúsculas, minúsculas, e números ao escolher suas senhas. Não é recomendado escolher palavras normais como sua senha pois podem ser vulneráveis a ataques de dicionários cracker. Outra recomendação é utilizar senhas ocultas em seu sistema (shadow password).

Você deve ser o dono da conta para poder modificar a senhas. O usuário root pode modificar/apagar a senha de qualquer usuário.

Page 11: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur11

newgrp

Altera a identificação de grupo do usuário. Para retornar a identificação anterior, digite exit e tecle Enter. Para executar um comando com outra identificação de grupo de usuário, use o comando sg.

newgrp - [grupo]

Onde: -

Se usado, inicia um novo ambiente após o uso do comando newgrp (semelhante a um novo login no sistema), caso contrário, o ambiente atual do usuário é mantido. grupo

Nome do grupo ou número do grupo que será incluído.

Quando este comando é usado, é pedida a senha do grupo que deseja acessar. Caso a senha do grupo esteja incorreta ou não exista senha definida, a execução do comando é negada.

Page 12: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur12

userdel

Apaga um usuário do sistema. Quando é usado, este comando apaga todos os dados da conta especificado dos arquivos de contas do sistema.

userdel [-r] [usuário]

Onde:

-r

Apaga também o diretório HOME do usuário.

Observação: Note que uma conta de usuário não poderá ser removida caso ele estiver no sistema, pois os programas podem precisar ter acesso aos dados dele (como UID, GID) no /etc/passwd.

Page 13: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur13

groupdel

Apaga um grupo do sistema. Quando é usado, este comando apaga todos os dados do grupo especificado dos arquivos de contas do sistema.

groupdel [grupo]

Tenha certeza que não existem arquivos/diretórios criados com o grupo apagado através do comando find.

Observação: Você não pode remover o grupo primário de um usuário. Remova o usuário primeiro.

Page 14: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur14

lastlog

Mostra o último login dos usuários cadastrados no sistema. É mostrado o nome usado no login, o terminal onde ocorreu a conexão e a hora da última conexão.

Estes dados são obtidos através da pesquisa e formatação do arquivo /var/log/lastlog. Caso o usuário não tenha feito login, é mostrada a mensagem ** Never logged in **

lastlog [opções]

Onde:

opções

-t [dias]

Mostra somente os usuários que se conectaram ao sistema nos últimos [dias].

-u [nome]

Mostra somente detalhes sobre o usuário [nome].

A opção -t substitui a opção -u caso sejam usadas.

Page 15: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur15

last

Mostra uma listagem de entrada e saída de usuários no sistema. São mostrados os seguintes campos na listagem:

Nome do usuário

Terminal onde ocorreu a conexão/desconexão

O hostname (caso a conexão tenha ocorrido remotamente) ou console (caso tenha ocorrido localmente).

A data do login/logout, a hora do login/down se estiver fora do sistema/ still logged in se ainda estiver usando o sistema

Tempo (em Horas:Minutos) que esteve conectado ao sistema.

A listagem é mostrada em ordem inversa, ou seja, da data mais atual para a mais antiga. A listagem feita pelo last é obtida de /var/log/wtmp.

Page 16: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur16

sg

Executa um comando com outra identificação de grupo. A identificação do grupo de usuário é modificada somente durante a execução do comando. Para alterar a identificação de grupo durante sua seção shell, use o comando newgrp.

sg [-] [grupo] [comando]

Onde:

- Se usado, inicia um novo ambiente durante o uso do comando (semelhante a um novo login e execução do comando), caso contrário, o ambiente atual do usuário é mantido.

grupo Nome do grupo que o comando será executado.

comando Comando que será executado. O comando será executado pelo bash. Quando este comando é usado, é pedida a senha do grupo que deseja acessar. Caso a senha do grupo esteja incorreta ou não exista senha definida, a execução do comando é negada.

Exemplo: sg root ls /root

Page 17: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur17

Adicionando o usuário a um grupo extra

Para adicionar um usuário em um novo grupo e assim permitir que ele acesse os arquivos/diretórios que pertencem àquele grupo, você deve estar como root e editar o arquivo /etc/group com o comando vigr. Este arquivo possui o seguinte formato:

NomedoGrupo:senha:GID:usuários

Onde:

NomedoGrupo É o nome daquele grupo de usuários.

senha Senha para ter acesso ao grupo. Caso esteja utilizando senhas ocultas para grupos, as senhas estarão em /etc/gshadow.

GID Identificação numérica do grupo de usuário.

usuarios Lista de usuários que também fazem parte daquele grupo. Caso exista mais de um nome de usuário, eles devem estar separados por vírgula.

Page 18: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur18 Deste modo para acrescentar o usuário "joao" ao grupo audio para ter acesso aos dispositivos de som do Linux, acrescente o nome no final da linha: "audio:x:100:joao". Pronto, basta digitar logout e entrar novamente com seu nome e senha, você estará fazendo parte do grupo audio (confira digitando groups ou id).

Outros nomes de usuários podem ser acrescentados ao grupo audio bastando separar os nomes com vírgula. Você também pode usar o comando adduser da seguinte forma para adicionar automaticamente um usuário a um grupo: adduser joao audio

Isto adicionaria o usuário "joao" ao grupo audio da mesma forma que fazendo-se a edição manualmente.

Page 19: Sistemas Operacionais - Gnu/Linux Administracao do Sistema / Contas de Usuários

Sistemas Operacionais Luiz Arthur19

fim