Programação

quarta-feira, 3 de outubro de 2018

LINUX Server


SITE SOBRE LINUX  e LINUX SERVER 

segurança da rede local (Firewall + Proxy) ----------------------------------------------------   servidor Linux  que pode ser um servidor de ficheiros (SAMBA), 
um servidor de Base de dados (mySQL)  
ou um servidor WEB dinâmico(Apache).





INSTALAÇÃO DE LINUX SERVER

Ubuntu server 18.04.1 LTS 


Configurar rede em Ambiente Gráfico

https://pplware.sapo.pt/linux/ubuntu-20-04-instalado-aprenda-a-configurar-a-rede-via-interface-grafica/


Ubuntu server 20.04.1 LTS 

https://www.youtube.com/watch?v=ZW2mL_-0L-E&ab_channel=DropsTech 

https://vivaubuntu.com/instalar-ubuntu-server-20-04-lts/

instalar o openSSH 

 


Instalar interface gráfica GNOME

sudo apt  update

sudo apt install gnome-essencial

sudo apt install gnome-terminal


sudo apt  install ubuntu-desktop   (não recomendado pois instala muitos programas)

sudo apt  install ubuntu-desktop --no-install-recommends -y

sistema não instala coisas inúteis (para mim), como o OpenOffice, o Evolution e assim por diante, a parte do -y, serve apenas para o sistema instalar tudo sem ficar pedindo a minha confirmação


Inicializar o ambiente gráfico 
startx 


Usar o PUTTY 


 
REMOÇÃO TOTAL DO UBUNTU DESKTOP

sudo apt purge adwaita-icon-theme gedit-common gir1.2-gdm-1.0 \
gir1.2-gnomebluetooth-1.0 gir1.2-gnomedesktop-3.0 gir1.2-goa-1.0 \
gnome-accessibility-themes gnome-bluetooth gnome-calculator gnome-calendar \
gnome-characters gnome-control-center gnome-control-center-data \
gnome-control-center-faces gnome-desktop3-data \
gnome-font-viewer gnome-getting-started-docs gnome-getting-started-docs-ru \
gnome-initial-setup gnome-keyring gnome-keyring-pkcs11 gnome-logs \
gnome-mahjongg gnome-menus gnome-mines gnome-online-accounts \
gnome-power-manager gnome-screenshot gnome-session-bin gnome-session-canberra \
gnome-session-common gnome-settings-daemon gnome-settings-daemon-common \
gnome-shell gnome-shell-common gnome-shell-extension-appindicator \
gnome-shell-extension-desktop-icons gnome-shell-extension-ubuntu-dock \
gnome-startup-applications gnome-sudoku gnome-system-monitor gnome-terminal \
gnome-terminal-data gnome-themes-extra gnome-themes-extra-data gnome-todo \
gnome-todo-common gnome-user-docs gnome-user-docs-ru gnome-video-effects \
language-pack-gnome-en language-pack-gnome-en-base language-pack-gnome-ru \
language-pack-gnome-ru-base language-selector-gnome libgail18 libgail18 \
libgail-common libgail-common libgnome-autoar-0-0 libgnome-bluetooth13 \
libgnome-desktop-3-19 libgnome-games-support-1-3 libgnome-games-support-common \
libgnomekbd8 libgnomekbd-common libgnome-menu-3-0 libgnome-todo libgoa-1.0-0b \
libgoa-1.0-common libpam-gnome-keyring libsoup-gnome2.4-1 libsoup-gnome2.4-1 \
nautilus-extension-gnome-terminal pinentry-gnome3 yaru-theme-gnome-shell

sudo apt autopurge
reboot


Utilizando a ferramenta Tasksel

Através da ferramenta Tasksel  (específica do Ubuntu e do Debian), ajuda a instalar vários pacotes (interfaces gráficas, servidor web LAMP, servidor email, etc)

sudo apt  install tasksel -y


Executar Tasksel    sudo tasksel

escolher opção:  Xubuntu desktop    (utilize a barra de espaços para selecionar opção)

reinicie servidor


INSTALAR AMBIENTE GRÁFCO XFCE 
sudo apt instal xfce4





UTILIZADORES e GRUPOS

Informação dos Utilizadores

A informação relativa aos utilizadores fica normalmente armazenada no ficheiro /etc/passwd.

A informação da password dos utilizadores é mantida no ficheiro /etc/shadow

Informação sobre grupos existentes estão no ficheiro /etc/group

A informação sobre grupos é mantida no ficheiro /etc/gshadow

 

Visualizar conteúdo do ficheiro passwd 




Informações sobre um utilizador (USER)

Nome do login:password; UID (User ID) ; GID (group ID), Info user (nome completo...); diretório padrão; Shell do utilizador ( programa que interpreta os comandos)

username: x: UID: GID : DadosUser :   /diretório_do_user :  shell


Visualizar conteúdo do ficheiro shadow








Criar  utilizador  
-- adduser (pede informações) 
--useradd (usar opções ou sem informações)   


Diferença entre useradd e adduser

adduser é um script em Perl que utiliza o programa useradd para criar utilizador, no Debian e derivados.


Criar Utilizador com useradd



 









Criar Utilizador com useradd

useradd com opções

useradd [opções ] conta

opções

-d   (dir_home)

-c  dados do utilizador

-m cria diretório home

-e   data de expiração

-s  Shell

-u   UID  para user


 


Se criar utilizador com  useradd e sem opções     ---  não será pedido informações sobre a conta

useradd nomeuser   (cria utilizador mas sem informações ) 


Adicionar um Utilizador a um grupo

 adduser user group

 

 adduser ronaldo jogadores

 

Adicionar ao grupo um user

 usermod -g grupo user

 

 usermod -g jogadores ronaldo


 Apagar Utilizador

 deluser nomeuser

 

 


APAGAR A CONTA E apagar diretório  /home/username

deluser -remove-home nomeuser    

 





Apagar utilizador de um grupo

 deluser user grupo

 

#deluser joaofelix pigr

 

 

Apagar grupo

#delgroup  nomegrupo

 


Definir/Alterar password para o utilizador

 

passwd [opçoes] username

 

- l bloqueia

-u   desbloqueia a senha

-d exclui

-e força

-S status da conta




Alteração de parâmetros da conta de um utilizador

Mudar o nome completo do utilizador  

 Comando  chfn  (Change Full Name)

chfn nomeconta


Comando  usermod [opções] nomeconta

  • -c “Nome Completo” – Modifica o nome de um utilizador
  • -d /Directório  – Modifica o diretório do utilizador
  • ‐e  AAAA/MM/DD – Define a data em que a  conta do utilizador expira
  • ‐f  nº de dia – Define o número de dias que a conta de um utilizador expire
  • ‐g  grupo – Define um novo grupo
  • -p password – Define nova password
  • -s shell – Define nova shell
  • -l muda o nome do login 
  • -L  (Lock) Bloquear conta
  • -U (Unlock) desbloquear conta


Exemplo:

sudo usermod -c "Ester Oliveira" ester

sudo usermod -s  /bin/sh  ester

 


Mostrar as alterações 

finger Ronaldo  


 Expiração da password de um utilizador

comando chage [opções] nomeconta (change age)

 chage -l ester






Backup; Agendamento de Tarefas e Scripts

 

Backup

Instalação do ZIP

sudo apt install zip 


Compactação e descompactação de pastas

Exemplo compactar um diretório para realizar um backup 

Linux utilizamos o comando "zip "   - Compactar ficheiros do diretório  

Linux utilizamos o comando "zip -r"   - Compactar ficheiros de diretório   (recursivo)


 

Sintaxe

$zip  nome_compatar.zip  ficheiros_a_compactar

$zip  file_compactado.zip   f*           (todos os ficheiros começados por f )



Visualizar o conteúdo do ficheiro

$ zipinfo nomearquivo.zip



Acrescentar ficheiros ao ficheiro zipado

chamar o ficheiro zip e especificar qual o arquivo a adicionar



Retirar o ficheiro que foi adicionado 

$ zip -d  file_compactado.zip ficheiro_a_apagar

 


Compactar ficheiros excepto -x  

$ zip  compactado.zip   *.txt   -x  ficheiro_a_excluir









APAGAR FICHEIROS  utilizando caracter   



apaga todos os ficheiros começados por abc?.txt


Descompactar o ficheiro compactado

$ unzip  file_compactado.zip


LISTAR CONTEÚDO antes de descompactar










COMPACTAR DIRETÓRIO       (opção - r   recursivo)

$ zip -r     file.zip    Mydiretorio                               















DESCOMPACTAR DIRETÓRIO       (opção - d   )

$ unzip -d    file.zip    ./Mydiretorio       



 Exercício

1.Na sua área padrão cria um diretório Backups

2. Compactar todos os ficheiros da pasta MODULO6  para a pasta Backups

$zip –r  /home/ester/Backups/back.zip    *     (todo o conteúdo da pasta onde se encontra)

Listar conteúdo da pasta MODULO6

$ ls -l  ./MeusBackups

 

3. Apagar conteúdo do diretório MODULO6

$rm   -r  *

 

4. Copiar back.zip para diretório MODULO6

$cp  ./MeusBackups/back.zip   ./MODULO6

 

ou

5. Descompactar o ficheiro compactado (dentro do diretório MODULO6)

$ unzip    back.zip  -d    ./MODULO6

 

 

UTILIZAR O TAR   https://www.vivaolinux.com.br/dica/Backup-com-ZIP-e-TAR

O tar não é um compactador e sim um arquivador (empacotar ficheiros), ou seja, ele junta vários arquivos num só.

Deverá ser utilizado em conjunto com um compactador, como o gzip ou zip, para armazena-los compactados. 

 O tar também é muito usado para cópias de arquivos especiais ou dispositivos do sistema Linux. 

É comum encontrar arquivos com a extensão .tar, .tar.gz, .tgz, .tar.bz2, .tar.Z, .tgZ, o primeiro é um arquivo normal gerado pelo tar e todos os outros são arquivos gerados através tar junto com um programa de compactação (gzip (.gz), bzip2 (.bz2) e compress (.Z). 

  sintaxe   

tar [parâmetros] [nome_arquivo_tar] [arquivos_origem]

 Comando 

 $tar -cvf txt.tar   *.txt

 

acima, utilizamos os argumentos:

§  -c para criar novo ficheiro tar;

    -C especifica o diretório dos ficheiros a serem armazenados

§  -z  comprime o ficheiro tar resultante com o gzip;

§  -v que é o verbose, ou seja, exibe os ficheiros que estão sendo comprimidos;

§  -f  permite especificar o ficheiro tar a ser utilizado;

§  -x de extract ficheiros de um ficheiro tar

   - r adiciona ficheiros a um ficheiro tar 

   -t exibe conteúdo do ficheiro tar

 

 

Adicionar ficheiro poema.doc ao anterior

 Comando 

 $tar -rf txt.tar  poema.doc

Adicionar diretório PASTA ao anterior

 $tar -cvf txt.tar  PASTA


Descompactar  ou Extrair  

$tar -tvf txt.tar  


Agrupar e compactar ficheiros  (utilizar o gzip: opção -z)

$tar -czvf txt.tar.gz    *.txt

 

como o ficheiro está compactado com o gzip, é melhor alterar o nome do ficheiro para txt.tar.gz 


Descompactar e desagrupar

em vez da opção c coloca-se -x (extrair)

$tar -xzvf txt.tar.gz

 

 

Exercício

1. Agrupar e compactar ficheiro file1 e file2

2. Apagar ficheiros file1 e file2

3. Listar conteúdo

4. Descompactar

5. Listar conteúdo

 

 

 BACKUP NO LINUX RSYNC https://e-tinet.com/linux/backup-no-linux/

rsync é uma ferramenta de backup das mais utilizadas para Linux. 

 




Instalação rsync

sudo apt install rsync

 

Comando:

rsync -r   dir_origem/  dirdestino

 

Onde:

·       rsync: executa o comando do rsync para sincronização de ficheiros;

·       -r : indica que o comando será executado recursivamente (pastas e subpastas)

·       dir1/ : diretório onde estão os ficheiros em relação aos quais se pretende fazer o backup;

·       dir2: diretório onde os ficheiros serão guardados.

 

Exercício

 criar pasta MATH com 2 ficheiros aaa.txt e bbb.txt

Criar uma pasta TEMP

$rsync -r  MATH   TEMP

Verificar se pasta TEMP tem o conteúdo da pasta MATH



Agendar automaticamente a tarefa no Crontab  (a seguir)

00 12 * * * rsync -a   /dir1/   /dir2/



 FERRAMENTA DE BACKUP - AMANDA

O Amanda (Advanced Maryland Automatic Network Disk Archiver) é um software de backup e de empacotamento, open source, o mais popular do mundo. 

O Amanda permite que os administradores configurem um único servidor de backup para fazer backup de vários hosts em fita ou disco ou sistema de armazenamento baseado em nuvem. É robusto, confiável e flexível. 

Amanda usa utilitários e formatos nativos do Linux (por exemplo, dump e / ou GNU tar) e pode fazer backup de um grande número de servidores e estações de trabalho executando várias versões do Linux ou Unix (incluindo OpenSolaris), MacOSX ou sistema operativos Windows (cliente Windows nativo e Samba).

 
https://www.youtube.com/watch?v=GDMesKUkwRI&ab_channel=LinuxSolutions 

O comando dump no Linux é usado para fazer backup do sistema de arquivos em algum dispositivo de armazenamento

comando dump no Linux funciona apenas com o sistema de arquivos ext2 / ext3

Download do sistema Amanda: http://www.zmanda.com/download-amanda.php 

As empresas de hoje raramente funcionam em apenas um sistema operativo. Os utilizadores e administradores do Linux geralmente têm fortes preferências por uma distribuição em relação a outra; os web designers podem se inclinar para o Mac; o software e hardware legados podem incluir vários sistemas operativos UNIX. Apesar da complexidade dos ambientes de computação empresarial modernos, espera-se que um administrador de sistema encontre uma solução de backup confiável.

 

Informações sobre o AMANDA*

man amanda





https://www.youtube.com/watch?v=OPbA_6IBEGs&ab_channel=MariaLuizaR.Defante 




Criar um ficheiro Amanda_Backup.txt com passos de Instalação e configuração do Amanda   (procurar no google sistema de backup Amanda Artigo - Viva o Linux)
(pode utilizar o putty)


1. Instalar o Amanda Server

sudo apt install amanda*
sudo apt install amanda-server

2. Instalar o xinetd
daemon de internet xinetd (Extend Internet Super Server)

sudo apt install xinetd

3. Configurar o xinetd

sudo nano /etc/xinetd.conf

4. Iniciar xinetd 

sudo service xinetd restart

sudo xinetd status


5. criar diretórios de Backup

sudo mkdir -p /amanda   /etc/amanda


6.  Criar Utilizadores

adduser amanda

adduser amandabackup


7. Alteração permissões dos diretórios anteriores para utilizador amandabackup

chown amandabackup /amanda /etc/amanda

chown amandabackup /amanda /etc/amanda

chown amandabackup /var/log/amanda


etc...


 


Agendamento de Tarefas

o   Agendamento de tarefas

o   Cron para a execução de tarefas automáticas

o   Scripts de backup e backup automatizado

o   Diretório /var/spool/cron/

o   Diretório /var/spool/at/

 

Agendamento de tarefas

podemos agendar tarefas para dias da semana, a determinada hora, em tal dia do mês, ao longo de 1 ano, etc.

 

CRON é uma ferramenta que permite agendar tarefas automaticamente no Linux

 

--O utilizador pode agendar que o sistema mande diferentes msg em determinados dias e horários. 

--Agendar a execução de scripts

--Agendar backups  automaticamente em dias específicos; etc.


A cada minuto, o Cron é ativado e verifica se há novas tarefas a serem executadas.

 

O cron utiliza o Crontab estrutura em tabelas (Cron Tables).

 

Nas tabelas são preenchidas as informações referentes aos minutos, horas, dias do mês, dias semana, utilizador e comando a serem executados.

 

O ficheiro Crontab é gerado e o Cron interpreta os dados e parâmetros contidos na tabela.

 

A configuração padrão para ficheiros do Cron está localizada no ficheiro /

etc/crontab

 

No diretório /etc   verificar que existem estes diretórios e ficheiro crontab



Diretório /var/spool/cron

No diretório /var/spool/cron é criado para cada utilizador um crontab

Exercício:

Ir para a pasta /var/spool/cron;  Mudar dono pasta crontabs para o seu utilizador; entrar no crontabs e ver quais os ficheiros existentes


Crontab

Comandos

Listar conteúdo do ficheiro:     crontab -l

Editar ficheiro:      crontab -e

Remover conteúdo:    crontab -r

 

Sintaxe # significa que a linha está em comentário 

  h     dom              mon    dow       command 

      min   hour   day_of_month               month      day_of_week      comando

Valores permitidos (por campo):

  • m: 0-59
  • h: 0-23
  • dom: 1-31
  • mon: 1-12
  • dow: 0 -7 (0 e 7  = Domingo )  
em que 1 (2feira)  2 (3feira)   3 4f  4 5f   5 6f    6 sábado

Casos particulares (aceites em todos os campos):

  • * : todos os valores
  • */5: de 5 em 5 unidades
  • 3-6: de 3 a 6, inclusive
  • 3,6: 3 e 6
  • 3-6,8-11: de 3 a 6 e de 8 a 11
 
Exemplo 
 0 12 * * 1 tar -zcf /var/backups/home.tar.gz /home/
 significa que aos
0 minutos, 12 horas, todos os dias do mês, todos meses, 2feiras, faz o backup do diretório /home
 ou seja, resumindo Aconselhável ler da direita para a esquerda)
todas as 2feiras em todos os meses do ano faz um backup do diretório /home que contém todos utilizadores 

 

Comando/instrução

Cuidados a ter:

·       usar sempre caminhos absolutos (comandos e ficheiros/pastas)

  • a instrução não pode necessitar de qualquer intervenção humana (atenção redobrada aos argumentos)
  • para uma sucessão de comandos é usual usar-se um script


Exemplos  

20 9 * * 5 /bin/rm -rf /tmp/   
todas as 6fs às 9h20m apaga ficheiros temporários
 
2 18 * * 1-5 /sbin/shutdown -h now 
acontece de 2f a 6f às 18h02m faz shutdown  
 
10 13 * * * /bin/cp -rf /home/user/Transferências/* /home/user/Documentos/Tecnica/linux 
acontece todos os dias às 13h10
 
15 9 10 * * /usr/bin/apt-get autoremove --purge -y >> /var/logs/scriptlimpeza

acontece no dia 10 de cada mês 9h15m

 

dia de Natal mandar msg

30  16  25  12  *          (não sabendo qual o dia da semana coloca-se o * pois já está definido 25/12 )

 

*/15   */2   1  *  *

em cada 15 minutos,  2 em 2 horas, no dia 1 de cada mês

 

*/5  9-16  1-5   *    *  

em cada 5 minutos das 9h às 16h55 , nos primeiros 5 dias de cada  mês

 

*/5   9-16  *   4 -10   *     

a cada 5 minutos das 9h às 16h55, todos os dias dos meses abril a outubro qualquer que seja dia da semana

 

0  17   1-7   6,7  0  

No primeiro domingo do mês às 17h, no meses Junho e Julho,  todos os dias dos meses abril a outubro qualquer que seja dia da semana

 

 

 

 

Digitar comando: crontab -e

Opção 1: para escolher à nano-à editar e escrever o agendamento 



Agendar Tarefas

 

Verificar se a data do sistema está certo

$date

$sudo dpkg-reconfigure tzdata   à escolher Lisboa

$reboot







Editar Tarefa
1. criar um diretório  XXXX

Verificar onde está o  script/executável do comando “mkdir” 

 which mkdir





Editar crontab:
crontab -e

#Colocar a Instrução dependendo do hora do sistema Linux 

0 12   *    *  *    /bin/mkdir    /home/ester/Documentos/XXXX

Guardar ficheiro e sair

Verificar a criação do diretório






2. Criar um backup no diretório  XXXX



Verificar a criação do backup









3. Outros agendamentos de tarefas





Sem comentários:

Enviar um comentário