sábado, 15 de agosto de 2009

Administração de usuários

- Objetivos
  • Aprender a gerenciar usuários e grupos;
  • Conhecer o sistema de permissionamento;
  • Conhecer o funcionamento do umask;
  • Entender as permissões especiais;


O GNU/LINUX é um sistema multiusuário e portanto, possui um esquema de permissões que provê a privacidade e/ou compartilhamento de arquivos entre usuários. Na verdade, esse esquema de permissões é parte fundamental do sistema. Neste artigo, iremos aprender sobre ele e também como criar e remover contas de usuários.

Gerenciamento de usuários:

Quando começamos a trabalhar com usuários no sistema GNU/LINUX podemos dividi-los em 3 categorias.

  1. Usuário administrador : usuário conhecido como root no sistema. È esse usuário que controla todo o sistema e não possui nenhuma restrição.
  2. usuário do sistema: são aqueles que não precisam logar no sistema, são utilizados para controlar os serviços.
  3. Usuários comuns: são utilizados para trabalhar no sistema GNU/LINUX. São contas criadas para aqueles que utilizam ou operam o sistema.
Para que os usuários comuns e root tenham acesso ao sistema e consigam trabalhar normalmente, são necessários 5 elementos.

  • Nome;
  • Senha;
  • diretóri home;
  • shell;
  • grupo primário;
Devemos ter em mente que um usuário sempre deve estar vinculado a um grupo, pois isso afeta diretamente a questão de permissões dentro do sistema.

Permissões

Cada arquivo no sistema possui três permissões básicas: r (4) red para leitura, w (2) - write para escrita e x (1)- execute para execução. A cada permissão é atribuido um valor, mostrado entre parênteses, que será utilizado para atribuição de permissões.
Além disso, cada arquivo contém três conjuntos de permissões, sendo elas: permissão do dono (u) - user do arquivo, do grupo (g) - group ao qual o arquivo pertence e outros (o) - others; aqueles que não pertencem ao grupo e não são os donos do arquivo.

Exemplos de permissões

1 -
Comando para atribuir permissão total a um arquivo chamado foda.txt

chmod 777 foda.txt

ou

chmod a+rwx foda.txt

ou

chmod u+rwx,g+rwx,o+orwx foda.txt

Não fazer isso em, nenhum tipo de arquivo, isso é apenas um exemplo!!!

2 -
Comando para retirar a permissão de escrita de todos os usuários para o arquivo foda.txt

chmod a-w foda.txt

3 - comando para alterar a permissão padrão do arquivo foda.txt para que todos os usuários apenas possam ler.

chmod 444 foda.txt

Umask

O umask altera o valor da mascara de criação de arquivos e diretórios.
Para calcular a umask para um diretório, pegue a permissão total que um diretório pode chegar, 777. Subtraia 022 de 777 (valor padrão de umask do sistema).
Para calcular a umask para um arquivo, pegue a permissão total que um diretório pode chegar, que é 777. Sutraria 111 de 777 (valores de execução do arquivo) e de 022 ( valor padrão de umask do sistema). O valor padrão da umask fica armazenada no arquivo /etc/profile.

Permissões especiais:

Há um conjunto especial de permissões, conhecido também como bits especiais, procura isso na internet que vale muitos pontos na prova LPI. :)

Prática dirigida

1 - crie um diretório chamado temp e dentro dele um arquivo chamado arq1:

$ mkdir temp

$ touch temp/arq1

2 -determine quais são as permissões com as quais eles foram criados:

$ ls -ld temp

$ ls - l temp

3 - altere as permissões do diretório temp para que o dono não possa escreve-lo:

$ chmod u-w temp

4 - experimente criar mais um arquivo dentro deste diretório:

$ touch temp/arq2

5 - Não funcionou ? claro ! Devemos alterar a permissão para que o usuário possa escrever neste diretório. Mas desta vez, utilizaremos a forma numérica:

$ chmod 300 temp

6 - vamos acessar o diretório e ver se o arquivo foi realmente criado.

$ cd temp

$ ls -l

7 - temos que garantir a permissão de leitura também. Agora deverá funcionar!

# cd ..
# chmod 700 temp
# ls -l

8 - Adicione um novo usuário no sistema:

# adduser losser

9 - visualize o novo usuário no arquivo /etc/passwd:

# cat /etc/passwd

10 - logue com o novo usuario em outro terminal e veja quais usuario estao logados no sistema:

# users

11 - Logado com o novo usuario, visualize informações completas sobre ele:

$ finger losser

12 - Adicione o usuario em um grupo secundário e visualize isso:

# gpasswd -a losser audio

# id

13 - remove o usuario do grupo secundário e visualize:

# gpasswd -d losser audio

# id

14 - Logado como root, modifique a senha do usuario:

# passwd losser

15 - Agora logado como usuario normal, modifique sua propria senha?

$ passwd

16 - Modifique o grupo primário do usuario:

# usermod -g user losser

17 - visualize qual o usuário junto com o seu diretorio:

# userdel -r losser

19 - vamos agora testar a permissão especial SUID:

$ /sbin/ifconfig eth0:1 192.168.1.X

Não funcionou ?? Vamos aplicar o SUID.

# chmod 4755 /sbin/ifconfig

$ /sbin/ifconfig eth0:1 192.168.1.X

Este é apenas um exemplo para fins de demostração do SUID bit, favor não aplicar em servidores!

Exercicios teóricos

1 - Qual é a importância de se utilizar senhas sombras (shadown passwords)?

2 - Por que é importante um usuário estar vinculado a um grupo primário?

3 - Quais são as divisões de tipos de usuários no sistema GNU/LINUX?

4 - Por que não é aconselhável remover um usuário e manter o seu diretório home?

5 - Qual é o comando correto para listar o contéudo do arquivo /etc/passwd?

6 - Se a minha umask vale 012, qual será o valor de arquivos e diretórios novos que venham a ser criados?


Dicas LPI:
Apesar de serem mais complicadas, as permissões especiais podem ser de grana valor na prova.


Tenha certeza de que você sabe como funcionam os cálculos de umask.


Saber usar todos os comandos de modificação de usuário é indispensavel.


A questão das senhas shadown e os comandos pwconv e pwunconv são cobrados com frequência nas provas da LPI.


O arquivo shadow não trata somenta a questão de segurança de senhas. Ele também trata de políticas de contas do usuário, como, por exemplo, por quantos dias a conta de um usuário é valida, quando vai expirar, quando deve ser troca de senha e alguns outros parâmetros que podem ser alterados na mão ou usando o comando change.


Saber o motivo do shadow ser criado é uma boa idéia.


O arquivo /etc/passwd .

Entender cada um desses campos pode ser de grande ajuda.

0 comentários:

Postar um comentário