Você está na página 1de 27

Linux Exercises Q&A

1) Um novo servidor foi instalado para testes de uma aplicação. Para tal, 3 usuários e
2 grupos precisam ser criados. Os grupos são dev e sysadmin. Os usuários se chamam
carlitos (pertencente ao grupo dev) e juan (do grupo admin), ambos com senha inicial
sun123. Já o usuário de sistema se chama app1, que não deve ter shell.
useradd carlitos
useradd juan
cat /etc/passwd

passwd carlitos
passwd juan

groupadd dev
groupadd admin

usermod -aG admin juan #aG= adicionar usuário em outro grupo


usermod -aG dev carlitos

getent group dev


getent group sysadmin

useradd app1 -s /sbin/nologin


cat /etc/passwd
2) Será preciso adicionar o diretório /opt/app1 no
sistema, onde 3 arquivos devem ser criados: error,
access e dump.
O arquivo error deve ter acesso de leitura, escrita e
execução para todos.
Já o arquivo access deve ter leitura e escrita apenas
para o usuário de sistema e seu grupo, sem acesso
de terceiros.
No entanto, o arquivo dump deve ter acesso apenas
de leitura, escrita e execução do usuário de
sistema, sem nenhuma permissão para grupos ou
outros usuários.
Configure o dono e grupo do arquivo como app1.
mkdir /opt/app1
cd /opt/app1
touch error access dump

Permissões:
w= 4
r= 2
x= 1

chmod 777 error


chmod 660 access
chmod 700 dump
groupadd app1
usermod -aG app1 app1
chown app1.app1 access
ls -l access
3) Há um disco de 6G atachado na máquina. Você deve
criar uma partição separada chamada /app1 para
comportar uma nova aplicação que será instalada.
mkdir /app1

fdisk –l #listar a tabela de partições


fdisk /dev/xvdb #n, p, enter, enter, enter, w #criar uma nova partição
partprobe –s #informa o SO das mudanças e mostra um resumo

fdisk –l

mkfs.ext4 /dev/xvdb1 #criar o sistema de arquivos


blkid

echo "UUID=3798829b-62cc-493f-94f7-f4c05c185791 /app1 ext4 defaults 0 0"


>> /etc/fstab
mount -a
df -h
4) Use 1G do espaço da nova partição (/app1)
para criar um arquivo de swap para o sistema.
free –m

dd if=/dev/zero of=/app1/swapfile count=4096 bs=1MiB

chmod 600 /app1/swapfile

mkswap /app1/swapfile

echo "/app1/swapfile swap swap defaults 0 0" >> /etc/fstab

swapon –a

free -m
5) O time de dev acaba de te informar a aplicação deve usar quase que
exclusivamente memória RAM. Além disso, a aplicação usará muitos arquivos
simultaneamente. Dessa forma, pediram para diminuir a prioridade do uso de
swap do sistema e aumentar o limite de arquivos abertos que o SO comporta.
sysctl -a | grep swap
sysctl –w vm.swappiness=1

vim /etc/sysctl.conf
vm.swappiness=1
fs.file-max=500000

sysctl –p
sysctl -a | grep swap
6) O servidor de aplicação precisa resolver o nome app1 para o IP da
interface eth0. Porém, ainda não configuraram a entrada A no DNS
Server. Como uma medida de contorno, solicitaram a criação de uma
entrada no /etc/hosts da máquina.
cat /etc/resolv.conf
ifconfig
echo "IP_address app1" >> /etc/hosts
ping app1
7) Há um processo no sistema consumindo demasiada
quantidade de CPU. Identifique o processo e finalize
sua execução.
yes > /dev/null &

top
kill -9 PID
8) Solicitaram que você adicione o repositório
epel no sistema, caso não esteja instalado.
amazon-linux-extras install epel
cat /etc/yum.repos.d/epel.repo
yum clean all
yum repolist
9) O time de administração de sitemas verificou que o comando
htop não está instalado no servidor. Verifique qual pacote precisa
ser instalado para executar o comando e instale-o.
yum whatprovides htop
yum install htop -y
10) Você deve configurar um webserver que será usando na intranet da
empresa. Use o Apache e configure um host virtual para a página que será
usada pela equipe de RH. Use um index.html simples, pois a equipe de
front-end ainda está configurando os arquivos html do site.
yum -y install httpd
systemctl enable httpd
systemctl start httpd
systemctl status httpd
curl -v http://app1

vim /etc/httpd/conf.d/rh.conf
<VirtualHost *:80>
ServerName app1.rh.example.com
DocumentRoot "/var/www/html/rh"
</VirtualHost>

<Directory "/var/www/html/rh">
AllowOverride none
Require all granted
</Directory>

httpd -t
vim /var/www/html/rh/index.html
rh

httpd -t
systemctl restart httpd
systemctl status httpd

netstat –ntpl
telnet app1 80
11) Após a configuração do Apache, o time de dev está preocupado com
a saúde do sistema. Como ainda não configuraram monitoramento do
servidor, faça um check-up completo para verificar se há algum
problema.
RAM, SWAP, CPU
uptime #retorna o load nos últimos 1, 5 e 15 min.
top -c #Shift+P = ordena por consumo de cpu, Shift+M = ordena pelo consumo de memória
RAM
free -m #mebibytes

Redes, Rotas
ifconfig
route -n #traz IP's, não nomes
ping
traceroute

Disco
df -h
du -sh* #sh= total em megas

Logs
journalctl -p err
tail -f messages
tail -1000f messages | grep http

App
tail -f /var/log/httpd/access_log
ps aux | grep http
12) O time de sysadmins solicitou um shell script para restartar o Apache
antes do horário comercial, a fim de resolver alguns problemas de
performance dos testes e dar um "refresh" no serviço. Crie o script e
execute para executar de segunda a sexta, 7hrs da manhã.
mkdir /var/scripts
vim /var/scripts/restart-app.sh
#!/bin/bash
systemctl stop httpd
sleep 5
APP_IS_RUNNING=`ps aux | grep -i http | grep -v grep | awk {'print $2'}`
if [ -n "$APP_IS_RUNNING" ]
then
kill -9 `ps aux | grep -i http | grep -v grep | awk {'print $2'}`

fi
systemctl start httpd

chmod +x /var/scripts/restart-app.sh
bash -x /var/scripts/restart-app.sh

vim /etc/cron.d/apache-restart
0 7 * * 1-5 root bash -x /var/scripts/restart-app.sh
systemctl restart crond
13) Crie um link simbólico e um link físico para o
diretório home do usuários carlitos e juan,
respectivamente.
ln -s /var/scripts/restart-app.sh /home/carlitos/restart-app
ln /var/scripts/restart-app.sh /home/juan/restart-app #mapeia usando o inode

ls -il /var/scripts/restart-app.sh
ls -il /home/carlitos/restart-app
ls -il /home/juan/restart-app

Link simbólico falha, pois o path não existe mais. O Link físico funciona, pois é
um arquivo isolado, porém com o mesmo inode
rm /var/scripts/restart-app.sh
ls -il

Você também pode gostar