Curso de extensão da Faculdade Ruy Barbosa Introdução a Administração de Sistemas GNU/Linux Dedicasse especial a Rogério Bastos e ao GRACO (Gestores da Rede Acadêmica de Computação) do DCC – UFBA Paul Regnier Gerenciamento de Arquivos Controle de Acesso ● ● ● O acesso a cada arquivo é controlado por uma série de propriedades armazenadas nos inodes Cada arquivo possui um dono e um grupo Normalmente, o dono de um arquivo é o usuário que o criou e o grupo do arquivo é o grupo padrão do usuário Controle de Acesso ● ● Cada arquivo possui um modo de acesso, que define as permissões das classes de usuários: ● Usuário – o dono do arquivo ● Grupo - o grupo do arquivo ● Outros – todos os outros usuários Para cada uma das classes são definidas três tipos de permissões, que se aplicam de forma diferente para arquivos e diretórios Controle de Acesso Permissão Leitura Mnemônico r Arquivo Diretório Acesso ao conteúdo do arquivo Listar o conteúdo do diretório Escrita w Alterar o arquivo Criar e remover arquivo no diretório Execução x Executar como um programa Acessar (cd into) o diretório Controle de Acesso ● Todas as permissões são binárias Controle de Acesso ● As permissões são exibidas pelo comando ls na forma de mnemônicos $ ls -l /etc/passwd -rw-r--r-- 1 root root 1331 Nov 6 16:53 /etc/passwd Controle de Acesso ● Adicionalmente, há mais três bits que controlam atributos especiais para arquivos executáveis e diretórios ● SUID ● SGID ● Sticky Controle de Acesso ● SUID ● ● ● ● Aplica-se apenas a arquivos executáveis Os processos criados a partir de arquivos com o bit SUID ligado serão executados com o usuário que é dono do arquivo Permite alterar temporariamente as permissões do usuário (e.g. passwd) Também pode ocasionar falhas de segurança Controle de Acesso ● SGID ● ● Funciona de forma similar ao bit SUID, porém se aplica ao grupo Também afeta diretórios, neste caso novos arquivos criados dentro de um diretório com o bit SGID ligado terão o mesmo grupo que este diretório Controle de Acesso ● Sticky ● ● ● ● O uso do bit sticky em arquivos tornou-se obsoleto Quando aplicado a diretórios, oferece uma camada adicional de segurança Apenas o dono do arquivo, o dono do diretório ou o usuário root podem remover ou renomear um arquivo dentro de um diretório com o bit sticky ligado O diretório /tmp normalmente tem o bit sticky ligado Controle de Acesso ● Representando as permissões em octal Controle de Acesso ● Representando as permissões em texto Controle de Acesso ● Representando as permissões em texto: ● ● ● ● O bit SUID é representado por um s na posição do x da permissão do dono O bit SGID é representado por um s na posição do x da permissão do grupo O bit sticky é representado por um t na posição do x da permissão de outros Exemplos: Controle de Acesso ● O comando stat exibe informações sobre o status do arquivo/diretório Controle de Acesso ● ● ● Novos arquivos são criados com as permissões definidas pela configuração do sistema ou do usuário (e.g. ~/.profile) O comando umask é utilizado para definir e/ou visualizar a configuração padrão Executado sem parâmetros o umask exibe o valor corrente Controle de Acesso ● ● ● Quando executado com os devidos parâmetros o umask define as permissões apenas para o shell corrente O parâmetro esperado é um número em octal Exemplo ● $ umask 22 Controle de Acesso ● Quando um arquivo é criado o umask subtrai 666 da máscara definida Controle de Acesso ● Quando um diretório é criado o umask subtrai 777 da máscara definida Controle de Acesso ● As permissões de um arquivo/diretório podem ser alterados com o comando chmod Controle de Acesso ● Sintaxe: ● ● Opções: ● ● ● ● chmod [options] octal_mode files -v: modo verbose -c: semelhante ao verbose, mas só mostra as alterações -R: modo recursivo Exemplo: ● $ chmod 644 afile Controle de Acesso ● Sintaxe: ● chmod [options] symbolic_mode[,symbolic_mode]...files Classes Operações Permissões Usuário (u) Grupo (g) Outros (o) Todos (a) Adicionar (+) Remover (-) Definir (=) Leitura (r) Escrita (w) Execução (x) Execução* (X) SUID / SGID (s) Sticky bit (t) * Só aplica a diretórios ou arquivos que já possuem permissão de execução para algum usuário Controle de Acesso ● ● ● ● u+x – adiciona permissão de execução para o dono go-w – remove permissão de excrita para o grupo e outros o+t – adiciona o bit sticky a=rw – define permissão de leitura e escrita para todos Controle de Acesso ● Exemplos: ● $ chmod -v u=rw,go=r afile ● $ chmod -R -v o-rwx adir ● $ chmod -v +t adir Controle de Acesso ● ● Para alterar o dono e o grupo de um arquivo/diretório utiliza-se o comando chown Sintaxe ● chown [options] user-owner files ● chown [options] user-owner.group-owner files Controle de Acesso ● Opções: ● ● ● ● -v: modo verbose -c: semelhante ao verbose, mas só mostra as alterações -R: modo recursivo Exemplos: ● ● # chown -v jdoe afile # chown -v jdoe.sales afile Controle de Acesso ● ● Para alterar apenas o grupo de um arquivo/diretório utiliza-se o comando chgrp Sintaxe ● ● chgrp [options] group-owner files Exemplo: ● # chgrp -Rv sales sales