Você está na página 1de 36

Administração de Ambiente Linux

Conteúdo da Aula

Sistema de Permissões Unix


Infraestrutura de compartilhamento NFS
Gerenciamento de Quotas de Disco
Administração de Ambiente Linux
Sistema de Permissões Unix

O sistema de permissões Unix é responsável pela famosa


segurança do Linux, trata-se de um sistema de atribuição de bits
responsável pela segregação de acesso a diretórios, leitura e
execução de arquivos onde somente quem for expressamente
liberado pode executar uma tarefa, seja ela simples como entrar em
um diretório ou complexa como compilar um de software.

Qualquer usuário já é expressamente bloqueado para executar


qualquer tarefa que não esteja acessível através de permissões
especificas que podem ser definidas diretamente em relação a ele
ou algum grupo que ele faça parte e a(s) outra(s) parte(s) envolvidas
na ação.
Administração de Ambiente Linux
Sistema de Permissões Unix

Modo literal e octal

r → Read (Ler)
w → Write (escrever)
x → Execute (Executar)

4 → Read (Ler)
2 → Write (escrever)
1 → Execute (Executar)
Administração de Ambiente Linux
Sistema de Permissões Unix

Entendendo UGO (User,Group,Others)

U-- -> Tríade rwx ou 421 de User dono


-G- -> Tríade rwx ou 421 de Grupo dono
--O -> Tríade rwx ou 421 de Outros

Exemplo literal e numérico

U G O = rwx rwx rwx


U G O = 421 421 421
Administração de Ambiente Linux
Sistema de Permissões Unix

Verifique as permissões dos arquivos abaixo


# ls -lh /etc/sysctl.conf /bin/ip

Aritmética das adições Permissivas

r+w+x <=> 4+2+1=7


r+w+- <=> 4+2+0=6
r+- +- <=> 4+0+0=4
r+- +x <=> 4+0+1=5
Administração de Ambiente Linux
Sistema de Permissões Unix

Alguns Exemplos de permissões

7 5 5 = rwx r-x r-x


7 7 5 = rwx rwx r-x
7 5 4 = rwx r-x r--
7 4 0 = rwx r-- ---
6 4 4 = rw- r-- r--
6 4 0 = rw- r-- ---
6 0 0 = rw- --- ---
Administração de Ambiente Linux
Sistema de Permissões Unix

Existe um campo de permissões especiais a direita que


normalmente é omitido da visualização comum de permissões, este
campo possui bits especiais de permissionamento que nos
permitirão UG ter um controle mais eficaz sobre arquivos
executáveis, comuns e diretórios.

4 → SUID BIT
2 → SGID BIT
1 → STICK BIT
Administração de Ambiente Linux
Sistema de Permissões Unix

SUID BIT define que qualquer usuário que executar o arquivo o fará
como o proprietário do aqruivo.

SGID BIT define que qualquer conteúdo criado em um diretório será


definido para o grupo primário do diretório.

STICK BIT define que somente o usuário dono de um arquivo ou


diretório pode executar sua exclusão.
Administração de Ambiente Linux
Sistema de Permissões Unix

Verifique um arquivo com opções SUID BIT


# ls -lh `which ping`

Verifique um diretório com opções SGID BIT


# ls -lhd /tmp

Verifique diretorios com SGID e STICK BIT


# ls -lhd /srv/asf/* | grep T
Administração de Ambiente Linux
Sistema de Permissões Unix

Instale o software git


# apt install git

Logue com o usuário elliot.alderson


# su - elliot.alderson

Acesse /srv/asf/samba/security
$ cd ../../samba/security
Administração de Ambiente Linux
Sistema de Permissões Unix

Clone o repositório Python contido no GitHub


$ git clone git clone https://github.com/python/cpython.git

Analise as informações sobre o diretório clonado


$ ls -lhd cpyhton

Volte ao usuário root


$ exit
Administração de Ambiente Linux
Sistema de Permissões Unix

Logue com o usuário lloyd e acesse /srv/asf/infra

# su – lloyd.chung
$ cd ../infrastructure ; pwd

Clone os repositórios Puppet e Ansible do GitHub

$ git clone https://github.com/puppetlabs/puppet.git


$ git clone https://github.com/ansible/ansible.git
Administração de Ambiente Linux
Sistema de Permissões Unix

Verifique as permissões dos diretórios


$ ls -lhd *

Entre no diretório security


$ cd ../security

Teste a implementação do STICK BIT


$ rm -rf cpython
Administração de Ambiente Linux
Sistema de Permissões Unix

Volte ao usuário root


$ exit

Volte ao usuário analista e acesse o node storage


# exit

Suba a root
$ su -
Administração de Ambiente Linux
Sistema de Permissões Unix

Crie uma estrutura de diretórios


# mkdir -p /srv/asf/homes

# mkdir -p /srv/asf/samba/{security,manager,marketing,devel,
infrastructure,public,owner,drivers,profiles,lixeiras}

# mkdir -p /srv/asf/samba/drivers/{COLOR,IA64,W32ALPHA,
W32MIPS,W32PPC,W32X86,WIN40,X64
Administração de Ambiente Linux
Sistema de Permissões Unix

Crie o hash SHA512 para a senha 123Mudar!, atenção este


comando é único apesar da quebra de linhas devido a sua extensão.

# python -c 'import crypt,getpass;


print(crypt.crypt(getpass.getpass(),
crypt.mksalt(crypt.METHOD_SHA512)))' > mkpwd
Administração de Ambiente Linux
Sistema de Permissões Unix

Adicione os usuários

# adduser -p `cat mkpwd` lloyd.chung --home-dir


/srv/asf/homes/lloyd.chung
# adduser -p `cat mkpwd` elliot.alderson --home-dir
/srv/asf/homes/elliot.alderson
# adduser -p `cat mkpwd` gideon.goddard --home-dir
/srv/asf/homes/gideon.goddard
# adduser -p `cat mkpwd` angela.moss --home-dir
/srv/asf/homes/angela.moss
Administração de Ambiente Linux

# adduser -p `cat mkpwd` ollie.parker --home-dir /srv/asf/homes/


ollie.parker

Crie os grupos abaixo


# groupadd infrastructure
# groupadd devel
# groupadd security
# groupadd manager
# groupadd marketing
# groupadd owner
Administração de Ambiente Linux
Sistema de Permissões Unix

# groupadd public

Adicione os usuários a grupos comuns


# usermod analista -G security,manager,marketing,owner,public,
infrastructure,devel
# usermod gideon.goddard -G security,manager,marketing,owner,
public,infrastructure,devel
# usermod lloyd -G public,infra,security
# usermod elliot.alderson -G security,public,infra
# usermod angela.moss -G manager,marketing,public
Administração de Ambiente Linux
# usermod ollie.parker -G manager,marketing,public
# usermod webmaster -G devel,infrastructure,public

Altere o permissionamento dos diretórios criados


# chmod 3775 /srv/asf/samba/public
# chmod 3775 /srv/asf/samba/security
# chmod 3775 /srv/asf/samba/devel
# chmod 3775 /srv/asf/samba/infrastructure
# chmod 3775 /srv/asf/samba/marketing
# chmod 3775 /srv/asf/samba/manager
# chmod 3775 /srv/asf/samba/owner
Administração de Ambiente Linux
Sistema de Permissões Unix

Atribua os grupos ao diretórios criados

# chgrp public /srv/asf/samba/public


# chgrp owner /srv/asf/samba/owner
# chgrp marketing /srv/asf/samba/marketing
# chgrp manager /srv/asf/samba/manager
# chgrp infrastructure /srv/asf/samba/infrastructure
# chgrp security /srv/asf/samba/security
# chgrp devel /srv/asf/samba/devel
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Retorne ao node Interno e instale os pacotes abaixo


# apt-get install quota quotatool mutt

Faça um backup do arquivo /etc/fstab para seu voume criptgrafado


# cp /etc/fstab .

Insira na montagem do home as seguintes linhas


# vim /etc/fstab
defaults,usrjquota=aquaota.user,grpjquota=aquota.group,
jqfmt=vfsv0
Administração de Ambiente Linux

O comando quotacheck checa o sistema de quotasm abaixo seus


parâmetros

c → Cria os arquivos de quota


u → Checa quotas de usuários
g → Checa quotas de grupos
f → Força a checagem das quotas
m → Força checagem no filesystem montado como rw
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Levante o sistema de quotas


# quotacheck -mcug /home ; ls -lah /home

Desative o sistema de quotas para o diretório /home:


# quotaoff -v /home

Refaça a checagem e ative do as quotas para o diretório /home:


# quotacheck -mcug /home
# quotacheck -mcug /home ; ls -lah /home
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Adicione um usuário de teste para quotas


# adduser quotatest1
# adduser quotatest2

Entre na edição de quota do usuário quotatest1


# edquota -u quotatest
soft hard
5000 6000
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Sete a quota via terminal do usuário quotatest2


# setquota -u quotatest2 0 0 100 150 -a /home

Verifique o relatório de sobre as quotas


# repquota -va

Analise o grace time do sistema de quotas


# edquota -t
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Logue com cada um dos usuários em uma aba de terminal diferente


e este o sistema de quotas com o usuário quotatest1
$ echo teste > a ; while true ; do cat a >> b; cat b >> a; done

Teste o sistema de quotas com o usuário quotatest2


$ i=1; while true; do touch arq$i; let i++; done

Verifique o relatório de quotas


# repquota -va
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Logue com cada um dos usuários em uma aba de terminal diferente


e este o sistema de quotas com o usuário quotatest1
$ echo teste > a ; while true ; do cat a >> b; cat b >> a; done

Teste o sistema de quotas com o usuário quotatest2


$ i=1; while true; do touch arq$i; let i++; done

Verifique o relatório de quotas


# repquota -va
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Defina quota para o grupo público


# setquota -g publico 10000 20000 0 0 -a /home

Crie o diretório publico e atribua ao grupo publico


# mkdir /home/publico ; chgrp publico /home/publico

Sete o permissionamento do diretório


# chmod 3775 /home/publico
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Para clonar quotas basta executar os seguintes comandos


# edquota -up usuario <usuario sem cota>
# edquota -gp grupo <grupo sem cota>

Defina o modelo de quotas a ser aplicados a novos usuário


# sed -i s'QUOTAUSER=""/QUOTAUSER="quotauser"/'
/etc/adduser.conf
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Habilite os emails para usuários com quotas excedidas


# vim /etc/warnquota.conf

SUBJECT = Cota de disco excedida


FROM = " root@asf.com
MESSAGE = Olá usuário %i, sua cota de disco foi excedida neste
servidor %h.
Administração de Ambiente Linux
Gerenciamento de Quotas em Discos

Com o usuário root execute o comando


# warnquota -u

Volte ao terminal logue com algum dos usuários e execute;


$ mutt

Você também pode gostar