Fundamentos e Prática em Informática LINUX Gerenciamento de Usuários e Grupos lara.popov@ifsc.edu.br
Gerenciamento Como qualquer sistema operacional multitarefa e multiusuário, o administrador do sistema tem como grande desafio o gerenciamento de usuários e grupos. Por este motivo é importante estarmos preparados para administrá-los diretamente sem a utilização de ferramentas que facilitem isso (ex.: webmin), usando apenas os comandos básicos do sistema operacional, isso irá proporcionar a administração em qualquer distribuição.
Comandos useradd: criação de um usuário. userdel: remoção de um usuário. usermod: modificar os dados de um usuário. passwd: definir e ou modificar a senha de um usuário. groupadd: criar um grupo. groupdel: remover um grupo. groupmod: modificar os dados de um grupo.
Criando um usuário Para que seja possível logar no sistema o usuário deverá ter um username (login) e uma senha (password). Para que isso seja possível usaremos os comandos useradd passwd
Comando useradd Sintaxe: useradd [opções] <username> -d - Caminho do diretório home do usuário. -g - Especifica o grupo do usuário. -c - Inclui um comentário referente ao usuário, tais como nome, setor, etc -s - Especifica o shell de comando que o usuário irá utilizar. -m - Cria o diretório home do usuário e copia os arquivos de /etc/skel/ para o home criado -p - Essa opção serve para especificarmos uma senha já criptografada para o usuário.
Comando useradd Ex.: No exemplo acima criamos o usuário sup1, que tem como: # useradd -g admin -s /bin/bash -d /home/sup1 -c "Usuário Admn de Suporte 1" -m sup1 grupo admin, usando o shell /bin/bash, o home criado foi o /home/sup1 e tem o comentário "Usuário Admn de Suporte 1".
Comando passwd Sintaxe: passwd [opções] <username> Opções: -d - Permite o usuário acessar (logar) o sistema sem senha. -l - Bloqueia/trava a conta do usuário. O usuário não consegue logar. -u - Desbloqueia/destrava a contado usuário (bloqueado pela opção "-l"). -S - Mostra o status da senha do usuário.
Comando passwd # passwd sup1 Chaging password for user sup1 New password: [digitar a senha] Retype new password: [repetir a senha] sup1 Para travar a conta do usuário sup1: # passwd -l sup1 Para destravar a conta do usuário sup1: # passwd -u sup1
Comando usermod Sintaxe: usermod [opções] <username> Opções: -d - Modifica o caminho do diretório home do usuário. -g - Modifica o grupo do usuário. -c - Modifica o comentário referente ao usuário. -s - Modifica o Shell de comando que o usuário irá utilizar. -p - Substitui a senha já criptografada do usuário.
Comando usermod Exemplo 1: Nesse exemplo estamos modificando o grupo e o comentário do usuário sup1 ao mesmo tempo. # usermod -g <novogrupo> -c "<novocomentario>" sup1
Comando userdel Sintaxe: userdel [opções] <username> Opções: -r - Ao usarmos essa opção o diretório HOME e Mailbox do usuário será removido. É importante ter certeza ao fazer isso, pois muitas vezes é melhor remover apenas o usuário ou até mesmo suspendê-lo mantendo seus arquivos para auditoria.
Comando userdel Exemplo 1: Remover o usuário sem excluir seus arquivos # userdel sup1 Exemplo 2: Remover o usuário e seus arquivos # userdel -r sup1
Comando groupadd Sintaxe: groupadd [opções] <groupname> Opção: -g - Ao usarmos esta opção, podemos especificar o GID do grupo que estamos criando. Ex. 1: Criando um grupo chamado "admn". # groupadd admn Ex. 2: Criando um grupo chamado ifsc e especificando o GID 1521. # groupadd -g 1521 ifsc
Comando groupmod Sintaxe: groupmod [opções] <groupname> Opção: -g - Ao usarmos esta opção, podemos modificar o GID do grupo. -n - Para trocarmos o nome do grupo. Ex. 1: Modificando o GID do grupo "admn". Exemplo 2: Modificando o nome do grupo ifsc. # groupadd -n oracle ifsc # groupmod -g 666 admn
Entendendo e Usando Permissões no Linux Permissão Textual Permissão em Octal
Permissão Textual ls -l drwx------ 2 wester 512 Jan 29 23:30 Arquivos/ -rw-rw-r-- 1 wester 2802 Dec 16 20:12 notas.txt permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões
Permissão Textual ls -l drwx------ 2 wester 512 Jan 29 23:30 Arquivos/ -rw-rw-r-- 1 wester 2802 Dec 16 20:12 notas.txt permissões podem ser divididas em quatro partes para indicar: tipo, proprietário, grupo e outras permissões
drwx --- --- O primeiro caractere da string indica o tipo de arquivo: d diretório b arquivo de bloco c arquivo especial de caractere p canal s socket - arquivo "normal"
...-rw-rw-r- Os demais são divididos em três grupos de três, cada um representado o proprietário, o grupo e todos os demais, respectivamente. rw- : permissões do proprietário rw- : permissões do grupo que o usuário pertence r-- : permissões para os demais usuários
r, w, x, - Existem três tipos de permissões: leitura, gravação e execução. r (read) - Leitura permite ao usuário ler o conteúdo do arquivo mas não alterá-lo. w (write) - Gravação permite que o usuário altere o arquivo. x (execution) Execução, como o nome diz, permite que o usuário execute o arquivo. - : significa permissão desabilitada.
Mas acontece que as permissões não funcionam isoladamente, ou seja, de forma que o usuário tenha ou permissão de leitura ou de gravação ou de execução. As permissões funcionam em conjunto. Isso quer dizer que cada arquivo/diretório tem as três permissões definidas, cabendo ao dono determinar qual dessas permissões é habilitada para os usuários ou não.
Daí a necessidade de se usar grupos. No caso, a permissão de gravação desse arquivo será dada ao grupo, fazendo com que todo usuário membro dele possa alterar o arquivo.
A ordem em que as permissões devem aparecer é rwx. Sendo assim, vamos entender a string do nosso exemplo dividindo-a em 4 partes:
drwx------ 2 wester 512 Jan 29 23:30 Arquivos/ é um diretório (d); o proprietário pode alterá-lo, gravá-lo e executá-lo (rwx); o grupo não pode pode alterá-lo, gravá-lo, nem executá-lo (---); os demais usuários não podem alterá-lo, graválo, nem executá-lo (---).
-rw-rw-r-- 1 wester... 280232 Dec.. 16 22:41... notas.txt é um arquivo (-); o proprietário pode alterá-lo, gravá-lo, mas não executá-lo. o grupo tem permissões idênticas ao proprietário (rw-); o usuário somente tem permissão de ler o arquivo, não pode alterá-lo (r--).
Tabela das permissões mais comuns: --- nenhuma permissão r-- permissão de leitura r-x leitura e execução rw- leitura e gravação rwx leitura, gravação e execução
Permissões em Octal O modo Octal tem a mesma função de definir permissões, só que em números. $ chmod 620 teste.txt (comando) (permissão) (arquivo)
Tipo de permissão Octal: 4 - Indica permissão de leitura; 2 - Permissão de escrita; 1 - Indica permissão de execução; 0 - Indica sem permissões.
Agora é simples, é só somar e ditar as permissões, exemplo: 4 + 2 + 1 = 7 (permissão de rwx) 4 + 2 = 6 (permissão rw) 4 = (permissão r)
Exemplo: A permissão 610 indica que o arquivo tem permissão: 6 para dono do arquivo 1 para grupo e 0 para outros ou seja dono= (rw-) Grupo=(--x) outros=(---)
Permissões Bin Decimal - - - 000 0 - - x 001 1 - w - 010 2 - w x 011 3 r - - 100 4 r - x 101 5 r w - 110 6 r w x 111 7
Exemplo --- --- --- : 000 rwx r-- -w- : 742 Permissões Bin Decimal - - - 000 0 - - x 001 1 - w - 010 2 - w x 011 3 r - - 100 4 r - x 101 5 r w - 110 6 r w x 111 7
Permissões Padrão de Arquivos umask é responsável por controlar as permissões padrão dos arquivos. É importante ressaltar que quando esta instrução é usada, ela pode, por exemplo, mostrar o valor 07, neste caso, deve-se acrescentar um zero antes do valor, ex 007.
Transformando a máscara 007 em binário: 007 = 000 000 111 Agora vamos alinhar o valor com todas as permissões e fazer uma adição 000 000 111 +111 111 111 111 111 000 Agora vamos transformá-lo em Dec: 770
Aplicando umask no diretório fpi mkdir fpi umask 026 fpi cd fpi echo teste > teste.txt ls -l teste.txt
Alterando a Propriedade de um arquivo ls l chown lara teste.txt ls -l teste.txt. sudo chown aluno teste.txt ls -l teste.txt
Alterando o grupo de um arq/dir ls -lg teste.txt -rw------ 1 teste 197 2012-10-12 08:35 teste.txt sudo chgrp professora teste.txt ls -lg teste.txt -rw------ 1 professora 197 2012-10-12 08:35 teste.txt
Referências Bibliográficas (1)SOUZA, Armando Martins de. Como Gerenciar Usuários e Grupos. Disponível em: http://www.vivaolinux.com.br/artigo/como-gerenciar-usuarios-egrupos. Acesso em: 28/11/2012. (2)ALECRIM, Emerson. Entendendo e Usando Permissões no Linux. Disponível em: http://www.infowester.com/linuxpermissoes2.php. Acesso em: 28/11/2012. (3)KINOSHITA, Bruno de Oliveira. Entendendo Permissões no Linux. Disponível em: http://www.vivaolinux.com.br/artigo/entendendo-as-permissoesno-linux. Acesso em: 28/11/2012.