Buscar

linux olimpiada 2017

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Treinamento OC 2k17
Linux Básico
Disco, prato, trilhas, setores e cilindros
 Todo disco rígido apresenta trilhas magnéticas mapeadas que necessitam de um formato específico para a leitura e gravação de dados. 
Inode: 
Um inode é uma estrutura de dados em um Sistema de arquivos (file system) do Linux/Unix que armazena toda a informação sobre um determinado arquivo. 
Filesystem:
É uma hierarquia de diretórios que é utilizada para organizer arquivos em um computador. Quando um arquivo é criado, ambos os nomes do arquivos e os números dos inodes correspondentes são armazenados como entradas de diretório, exibindo para o usuário o conteúdo e seus arquivos. Esses diretórios que assossiam nomes de arquivos com inodes. 
O Sistema operacional obtem o número do inode de um arquivo e a sua informação pelo chamado STAT. 
Inode e Filesystem
Inode Layout
Sistemas de Arquivos
O ext3 é uma atualização do sistema de arquivos ext2. 
Em relação ao ext2, a principal diferença é a implementação do journaling.
O ext4 é última versão do sistema de arquivos extFS até o momento, ele é na verdade a atualização do ext3. 
O XFS é considerado por muitos de alto desempenho, é um sistema de arquivos de 64 bits sendo compatível com sistemas de 32 bits. Foi desenvolvido inicialmente para o SO IRIX, depois portado para o kernelGNU/Linux. 
O ReiserFS foi criado por Hans Reiser e pode ser usado pelas distribuições GNU/Linux, sendo que algumas dão bom suporte durante a instalação e outras não. Sua versão atual é a 3.6.x. O ReiserFS foi o primeiro sistema de arquivos com suporte a journaling incluído no núcleo do GNU/Linux.
O JFS foi criado com o propósito principal de ser utilizado em servidores que deveriam usar poucos recursos do processador, e ser capaz de ser redimensionado mesmo em uso
Ext4 Partition:
Reserved boot block,
Collection of equally sized block groups
An ext4 file system is split into a series of block groups. To reduce performance difficulties due to fragmentation, the block allocator tries very hard to keep each file’s blocks within the same group.
XFS – Também possui inodes de tamanho igual, porém apresenta performance melhorada e não tem as limitações de endereçamento do ext4. 
Foi empregado em estações de processamento gráfico de alto desempenho. 
Task
ext3/4
XFS
Create a file system
mkfs.ext4 or mkfs.ext3
mkfs.xfs
File system check
e2fsck
xfs_repair
Resizing a file system
resize2fs
xfs_growfs
Save an image of a file system
e2image
xfs_metadump and xfs_mdrestore
Label or tune a file system
tune2fs
xfs_admin
Backup a file system
dump and restore
xfsdump and xfsrestore
Common Commands for ext3/4 and XFS:
Estrutura de diretórios Linux. 
Pastas montadas na raiz, chama de “/”
	/var - Este diretório contém os as filas de e-mail e impressão, que são muito manipuladas. Há também os arquivos de log, cujo conteúdo está em constante alteração e crescimento.
	/usr - Programas, códigos fonte e documentação. O ciclo de alteração desses arquivos é longo.
	/tmp - Espaço temporário utilizado por programas. Uma partição distinta para /tmp impedirá que dados temporários ocupem todo o espaço no diretório raiz, causando travamento do sistema. Não necessita de backup.
	/home - Diretórios pessoais do usuário. Uma partição distinta ajuda a limitar o espaço disponível para usuários comuns.
Sugestões de diretórios que podem estar em outros dispositivos/partições:
10
	Com o fdisk podemos criar novas partições em um disco, até 4 partições primárias e inúmeras partições lógicas, dependendo somente do tamanho do disco (levando em conta que cada partição requer um mínimo de 40MB). Também podemos modificar ou deletar partições já existentes ou recém criadas no disco. 
	
O FDISK
VISUALIZANDO AS PARTIÇÕES NO HD
Antes de criar uma nova partição, modificar ou deletar, você vai precisar dar uma olhada em todas as partições que existem no disco. Então para esta missão vamos usar o "fdisk -l", como abaixo: 
# fdisk –l
Para ver apenas as partições de um determinado disco podemos incluir no comando o nome do disco como segue: 
# fdisk -l /dev/sda 
FDISK
Para ver as partições dentro do fdisk, usar o opção"p": 
# fdisk /dev/sda
Visto, vamos deletar sda6, sda7 e sda8 usando o comando "d", desta maneira:
Comando (m para ajuda): d
Número da partição (1-9): 6
Comando (m para ajuda): d
Número da partição (1-9): 7
Comando (m para ajuda): d
Número da partição (1-9): 8
Comando (m para ajuda): w 
A tabela de partições foi alterada!
FDISK
Podemos criar uma nova partição de um tamanho específico utilizando o comando "n", conforme abaixo:
Comando (m para ajuda): w 
A tabela de partições foi alterada!
FDISK
Depois de criada a partição deve ser formatada com o comando "mkfs", de acordo com o tipo de sistema de arquivos desejado. Digamos que tenhamos criado a partição "9", alguns exemplos seriam: 
Para ext4: # mkfs.ext4 /dev/sda9 
2) Para reiserfs: # mkfs.reiserfs /dev/sda9 
3) Para ntfs (Windows XP e outros): # mkfs.ntfs /dev/sda9 
MKFS
MONTAR E EXIBIR
FSTAB
O que é o fstab.
	O fstab é o arquivo de configuração que contém informações sobre todas as partições e dispositivos de armazenamento do computador. Esse arquivo está localizado no diretório /etc, de forma que o caminho completo desse arquivo é /etc/fstab.
	O /etc/fstab é apenas um arquivo de texto puro, de forma que você pode abri-lo e edita-lo com qualquer editor de texto que esteja familiarizado. Porém, observe que você precisa ter privilégios de super-usuário antes de poder editar o fstab. Assim, para poder editar esse arquivo, você precisa logar como root ou usar o comando su para tornar-se super-usuário.
FSTAB
Visão geral do arquivo
	Naturalmente cada máquina possui um arquivo /etc/fstab um pouco diferente porque suas partições, dispositivos e suas propriedades são diferentes em cada sistema. Mas a estrutura básica dele é sempre a mesma. Abaixo segue um exemplo do conteúdo do /etc/fstab:
1ª
2ª
3ª
4ª
5ª
6ª
dev/hda2
/
ext2
defaults
1
1
/dev/hdb1
/home
ext2
defaults
1
2
/dev/cdrom
/media/cdrom
auto
ro,noauto,user,exec
0
0
/dev/fd0
/media/floppy
auto
rw,noauto,user,sync
0
0
proc
/proc
proc
defaults
0
0
	Como pode ver, cada linha contém a informação de um dispositivo ou partição. A primeira coluna contém o nome do dispositivo, a segunda seu ponto de montagem, a terceira o tipo do sistema de arquivo, a quarta são as opções de montagem, a quinta (um número) opções de esvaziamento, e a sexta (outro número) são as opções de checagem do sistema de arquivos. 
FSTAB
1ª e 2ª colunas: Dispositivos e pontos de montagens padrão - A primeira e segunda coluna devem ser bem diretas. Elas dizem ao comando mount exatamente as mesmas coisas que você informaria a ele se fosse montar algo manualmente: o que é o dispositivo ou partição, e onde será o ponto de montagem.
3ª coluna: Tipo do sistema de arquivo - A terceira coluna do arquivo especifica o tipo de sistema de arquivo do dispositivo ou partição. Exp. Ext3, Ext4, reiserfs.
4ª coluna: Opções de montagem - A quarta coluna no fstab lista as opções de montagem dos dispositivo ou partições
5ª e 6ª colunas: Opções dump e fsck - Dump é um utilitário de backup e fsck é um utilitário de checagem do sistema de arquivos. A quinta coluna no arquivo /etc/fstab é a opção dump. Ela verifica e usa esse  número para decidir se um sistema de arquivo deve ou não ser alvo de backup. Se for zero, o dump ignorará esse sistema de arquivos. A sexta coluna é a opção fsck. O utilitário verifica esse número para determinar em que ordem os sistemas de arquivos devem ser checados. Se seu valor for zero o sistema não será checado.
Obs.: Para verificar se o arquivo /etc/fstab está consistente digite: mount –a, caso o Linux reporte algum erro, verifique-o e faça as correções, pois o sistema não inicia com erros neste arquivo.
Editar o FSTAB
No vim digitar: Syntax on
BLKID – “Billy the Kid”
Identificador de discos
no sistema. Precisa estar formatado. 
Usos comuns de armazenamentos
o que é NAS?
NAS (Network Attached Storage) é um dispositivo de armazenamento conectado a uma rede que possibilita o armazenamento e a recuperação de dados de um local centralizado para usuários autorizados da rede e clientes heterogêneos.
Os dispositivos NAS são flexíveis e de expansão horizontal, significando que à medida que você precisar de mais armazenamento, pode adicionar ao que você já tem.
Um NAS é como ter uma nuvem privada no escritório. É mais rápido, mais barato e fornece todos os benefícios de uma nuvem pública local, fornecendo controle total para você.
Os dispositivos NAS são perfeitos para pequenas empresas. pois são:
Simples de operar, dispensando a presença de um profissional de TI dedicado
De menor custo
Fácil de usar para fazer backup de dados, então estão sempre acessíveis quando você 
Usos comuns de armazenamentos
SAS
A sigla significa Serial Attached SCSI, ou SCSI com Serial Anexado. Isso já diz bastante sobre como ele atua. É um novo padrão SCSI, porém com comunicação em série, não paralela. É como o SATA está para o ATA. Inclusive, ele foi inspirado no próprio SATA e tem uma grande compatibilidade com este padrão. O grande diferencial dele é que pode permitir a ligação dos HDs com extensores a uma única porta SAS.
Usos comuns de armazenamentos
O Que É SAN?
Um storage area network (SAN) é um rede de dispositivos que conectam vários clientes e dispositivos de armazenamentos (Figura 01). Portanto, no SAN existi vários caminhos disponíveis para o transporte de dados entre dois pontos.
Esta característica de múltiplos caminhos do SAN permite flexibilidade, disponibilidade, e escalabilidade.
Flexibilidade: A configuração do software elimina ou reduz a necessidade de reorganizar os cabos quando é feita alguma modificação no projeto.
Disponibilidade: Múltilplos caminhos protegem contra falha de um caminho entre cliente e um dispositivo de armazenamento.
Escalabilidade: Permite uma maior quantidade de dispositivos serem conectados do que o DAS permite.
Existem dois tipos de maneiras que você pode colocar seus HDs em modo RAID. Por meio de Hardware ou por meio de Software.
Caso decida usar o hardware, você tem de fazer isso por meio de sua BIOS para configurar o controlador RAID do hardware. Como cada BIOS é diferente, é necessário dar uma lida no manual para os passos indicados. Você pode também acessar o site oficial da fabricante do disco rígido para obter mais informações.
ARRAY - MATRIZ
RAID
RAID E NAS STORAGE
SAN E NAS
DIAGRAMA SAN
RAID 0 é o modo de RAID mais rápido, pois grava dados entre todos os discos do volume. Além disso, as capacidades de cada disco são adicionadas juntas para otimizar o armazenamento de dados. Raid 0: O Raid 0 permite que você melhore o desempenho usando múltiplos HDs. Quando o utiliza, o seu computador grava os dados em dois ou mais HDs de forma igual. Um exemplo, você grava 1GB de dados, 500MB fica armazenado em um HD e os outros 500MB, em outro HD. Sendo assim, quando os dados precisam ser lidos, ele lê um pedaço de cada HD, mais rápido do que fazer em apenas um. Uma das desvantagens desse modo é que caso um dos HDs falhe, todos os seus dados são perdidos.
RAID – REDUNDANT ARRAY OF INDEPENDENT DISKS. Mdadm usa níveis. Level = níveis. 
RAID 0 - STRIPING
http://www.seagate.com/br/pt/manuals/network-storage/business-storage-nas-os/raid-modes/
https://www.baboo.com.br/hardware/armazenamento/entenda-quais-sao-os-tipos-de-raid/
30
O RAID 1 fornece segurança de dados aprimorada, já que todos os dados são gravados em cada disco no volume. Se um disco único falhar, os dados permanecem disponíveis no outro disco no volume. Contudo, devido ao tempo que leva para gravar dados várias vezes, o desempenho é reduzido. Além disso, o RAID 1 reduzirá a capacidade do disco em 50% ou mais, pois cada bit de dados é armazenado em todos os discos no volume.
RAID 1 - MIRRORING
O RAID 5 grava dados entre todos os discos no volume e um bloco de paridade para cada bloco de dados. Se um disco físico apresentar falha, os dados do disco com falha podem ser recriados em um disco de substituição. Não há perda de dados em caso de falha em um disco único, mas se um segundo disco falhar antes da recriação dos dados no disco rígido de substituição, todos os dados no array serão perdidos. São necessários no mínimo três discos para recriar um volume RAID 5.
O RAID 5 oferece desempenho comparável ao do RAID 0 com a vantagem de proteger os dados.
O RAID 5 
Synopsis
mdadm [mode] <raiddevice> [options] <component-devices>
Description
RAID devices are virtual devices created from two or more real block devices. This allows multiple devices (typically disk drives or partitions thereof) to be combined into a single device to hold (for example) a single filesystem. Some RAID levels include redundancy and so can survive some degree of device failure.
1 – Particionar os discos
2 - Criar o array
3 – Adicionar o array ao arquivo de configuração
4 – Formatar o array
5 – Montar o array
6 – Verificar o array
7 – Inserir array no fstab
Obs: disco 1 e disco 2 do debian
mdadm - manage MD devices aka Linux Software RAID
https://linux.die.net/man/8/mdadm
33
Criar as partições em disco: 
Fdisk /dev/sdb
Fdisk /dev/sdc
Obs: desmontar o que estiver montado.
Apagar as partições anteriores.
Editar ou comentar a linha no fstab.
Fdisk – type (t) fd = RAID partition
GRAVAR COM W!!!!
RAID - Configuração
Agora vamos criar o RAID 1
# mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/sdc1 /dev/sdb1 
Onde:
--create :: cria o dispositivo /dev/md0
/dev/md0 :: ele cria um dispositivo MD, que significa Multiple Device, ou seja, pode-se ter múltiplos dispositivos neste array
--level=1 :: é o nível do RAID, estamos usando RAID 1, que é o RAID de espelhamento
--raid-devices=2 :: número de discos do RAID. No nosso caso são 2 HDs
/dev/sdc1 :: Partição que será adicionada ao array /dev/md0
/dev/sdb1 :: Partição que será adicionada ao array /dev/md0
Vamos formatar o novo dispositivo MD no sistema de arquivos ext4: 
# mkfs.ext4 /dev/md0 
UU = ambos discos ativados
Criar o array RAID
Verificar o array criado
Verificar o array criado
Adicionar o array criado ao arquivo de configuração
Formatar o array
Montar o array para uso imediato
Verificar o array montado
Inserir o array no fstab
RAID - Configuração
Finalizamos a criação do array, agora vamos ver o andamento da sincronização dos 2 discos: 
# watch -n 1 cat /proc/mdstat 
# mdadm –detail /dev/md0
RAID - Configuração
Vamos configurar o RAID para toda vez que ligar a máquina, ele já automontar a partição para utilizar: 
Primeiro, vamos criar a pasta: 
# mkdir -p /mnt/raid1
Agora vamos ver o UUID do array para configurar na inicialização (/etc/fstab): 
# blkid /dev/md0 
O resultado vai ser alguma coisa parecida com isso: 
 /dev/md0: UUID="f600331d-8f52-49eb-ae69-ea5f85fbbd2b" TYPE="ext4"
Agora vamos abrir o "/etc/fstab" e inserir esse dispositivo na inicialização do servidor: 
UUID=f600331d-8f52-49eb-ae69-ea5f85fbbd2b /mnt/raid1 auto defaults,errors=remount-ro 0 1
update-initramfs sudo -u
Verificação e teste de falha
# mdadm --manage --set-fault /dev/md0 /dev/sdc1
RAID - Configuração
Removendo o disco com problemas
# mdadm /dev/md0 -r /dev/sdc1 
RAID - Configuração
Adcionando novo disco ao RAID
# mdadm /dev/md0 -a /dev/sdc1 
RAID - Configuração
	O Linux é um sistema multiusuário, portanto necessita de gerência destas contas de usuários. Como administrador de sistemas é importante saber como funciona esta gestão que engloba os arquivos de configuração referente aos usuários.
Todo usuário possui um UID (User ID) é sua identificação única.
O usuário também possui GID que é a identificação do grupo primário do usuário.
	O principal arquivo de configuração dos usuários é /etc/passwd
que tem 7 campos distribuídos da seguinte forma:
[login]:[senha]:[UID]:[GID]:[Nome Completo]:[home]:[shell]
login: Usado para logar no sistema
senha: palavara chave
UID: Número de identificação do Usuários
GID: Número de identificação do grupo do usuário
Comentários: Informações extras sobre o usuário
home: diretório home – Espaço de trabalho do usuário
shell: interpretador de comandos
Administração de usuários
	Quando um usuário é criado outros arquivos também são alterados. São eles o /etc/shadow e o /etc/group.
	No /etc/shadow contém a senha criptografada do usuário e no /etc/group a lista de grupos que este usuário pertence.
	/etc/shadow – informações de contas de usuários e senhas criptografadas;
	/etc/group    – informações de grupos do sistema.
Administração de usuários
Campos do arquivo /etc/shadow: 
Nome do usuário: alexandre
Senha criptografada: ! = não possui senha; * = conta desativada; ! + Senha = conta travada; !! = nunca configurou senha
Última mudança de senha: 16865 - dias decorridos entre 1 de janeiro de 1970
Número de dias para que a mudança de senha seja permitida: 0 tipicamente este número é zero, permitindo que o usuário mude sua senha quando desejar.
Número de dias após o qual a senha deve ser alterada: caso a alteração da senha não seja forçada, este número será 99999.
Número de dias antes da expiração da senha : 7 tipicamente o usuário é avisado com uma semana de antecedência.
Número de dias entre a expiração da senha e a desativação da conta: caso não se queira desativação automática da conta, este campo é deixado em branco ou com o valor 1.
Dia da desativação da conta: dias decorridos entre 1 de Janeiro de 1970 e a data em que a conta será desativada.
Campo reservado: para uso futuro.
Administração de usuários
Administração de usuários
Campos do arquivo /etc/group:
nome do grupo:
senha (opcional): Isso só é usado para participar de um grupo quando não se é um membro usual 
gid: identificar numérico único para cada grupo;
lista de membros: lista de nomes de usuários que são membros do grupo, separados por vírgulas.
O comando id exibe informações sobre o usuário logado
Useradd - Para adicionar um usuário no sistema, é necessário ter privilégios de administrador (#root).
#useradd [opções] LOGIN
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.
p - Essa opção serve para especificarmos uma senha já criptografada para o usuário.
Cria o usuário aluno. 
	# useradd aluno
Cria o usuário designando o diretório pessoal /home/aluno
	# useradd –m aluno
Cria o usuário aluno com o grupo root.
	#useradd –U root aluno
Cria o usuário aluno com com várias informações.
 	#useradd –m –U –c “aluno Infnet” aluno
Administração de usuários
	O comando passwd permite que se troque a senha de determinado usuário. O superusuário pode trocar a senha de qualquer outro. O usuário comum, porém, pode trocar somente a sua senha. 
#passwd [usuário/grupo] [opções]
opções
-g - Se especificada, a senha do grupo será alterada. Somente o root ou o administrador do grupo pode alterar sua senha. 
A opção -r pode ser usada com esta para remover a senha do grupo. 
A opção -R pode ser usada para restringir o acesso do grupo para outros usuários.
-x [dias] Especifica o número máximo de dias que a senha poderá ser usada. Após terminar o prazo, a senha deverá ser modificada.
-i Desativa a conta caso o usuário não tenha alterado sua senha após o tempo especificado por -x.
-n [dias] Especifica o número mí­nimo de dias para a senha ser alterada. O usuário não poderá mudar sua senha até que [dias] sejam atingidos desde a última alteração de senha.
-w [num] Número de dias antecedentes que o usuário receberá o alerta para mudar sua senha. O alerta ocorre [num] dias antes do limite da opção -x, avisando ao usuários quantos dias restam para a troca de sua senha.
-l [nome] Bloqueia a conta do usuário [nome]. Deve ser usada pelo root. O bloqueio da conta é feito acrescentando um caracter a senha para que não confira com a senha original.
-u [nome] Desbloqueia a conta de um usuário bloqueada com a opção -l.
-S [nome] Mostra o status da conta do usuário [nome]. A primeira parte é o nome do usuário seguido de L(conta bloqueada), NP(sem senha), ou P (com senha), a terceira parte é a data da última modificação da senha, a quarta parte é a perí­odo mí­nimo, máximo, alerta e o perí­odo de inatividade para a senha.
Administração de usuários
Modificando o perfil de um usuário
	O comando usermod tem a mesma sintaxe e os mesmos parâmetros (existem algumas opções a mais) do comando useradd, a diferença é que ele modifica ou adiciona informações relativas a um usuário já cadastrado.
 
usermod [ opções ] usuário
Opções:
	-d - Modifica o caminho do diretório home do usuário.
	-g - Modifica o grupo do usuário.
	-L – Bloqueia o usuário no sistema
	-U – Desbloqueia o usuário
	-c - Modifica o comentário referente ao usuário.
	-p - Substitui a senha já criptografada do usuário.
Administração de usuários
Eliminando usuários
	O comando userdel permite que se eliminem usuários do sistema. Somente o superusuário poderá utilizar este comando.
userdel [opções] usuário
Exemplos de utilização:
	#userdel aluno
 Eliminando a conta do usuário e apagando o seu diretório home.
	#userdel –r aluno
Administração de usuários
	O comando chage possibilita modificar configurações de uma conta de usuário que tenham relação com sua expiração.
Essas informações ficam armazenadas no arquivo /etc/shadow, incluindo a senha criptografada do usuário.
Significado das opções:
-l - Mostra informações da conta de usuário fornecida.
-m <n> - Minimum Password Age, onde "n" é a quantidade mínima de dias para a troca da senha. 
-M <n> - Máximo Password Age, onde "n" é a quantidade máxima de dias para a troca da senha. 
-d <data> - Last Password Change, onde "data" é a data da última troca da senha. 
-W <n> - Password Expiration Warning, onde "n" é a quantidade de dias antes da expiração da senha, em que o usuário irá começar a receber o aviso para a troca da senha. 
-I <n> - Password Inactive, onde "n" tem que ser ao menos a quantidade de dias de senha expirada +1, isso significa se a senha esta expirada a 10 dias, temos que no mínimo colocar n=11, para a conta seja reativada e o usuário possa trocar da senha. 
-E <data> - Account Expiration Date, onde "data" é a data de expiração da senha.
Administração de usuários
Administração de usuários
Para criar grupos, usamos o comando groupadd
Cria um novo grupo diretoria
# groupadd diretoria
Cria o novo grupo marketing especificando o seu GID como 1502.
# groupadd -g 1502 marketing
Para mudar informações de grupos, usamos o comando groupmod
Modifica o GID do grupo diretoria. 
# groupmod -g 1501 diretoria
Modifica o nome do grupo marketing
# groupadd -n market marketing
Para delir um grupo de usuário do sistema, usamos o comando groupdel
	# groupdel diretoria
Criar usuários 8 users diferentes
Criar grupos (4: ftp, ssh, congo, sunda)
Mudar senhas dos users.
Conferir onde eles estão
Listar usuários
Listar grupos
Interpretar a organização dos arquivos shadow, group e passwd
Colocar usuários em 4 grupos diferentes
Apagar grupos
Apagar usuários
PRÁTICA DE ADMINISTRAÇÃO DE USUÁRIOS
# less /etc/group ( vai até o final da linha, você vera quais os grupos tem no seu servidor e quais usuários façam parte de cada determinado grupo.)
cat /etc/passwd
cat /etc/group
# useradd aluno
#passwd [usuário/grupo] [opções]
usermod [ opções ] usuário
cat /etc/group | cut -d: -f1
groups “nome do usuário”
gpasswd -a “user” teste
groupadd diretoria
http://www.planetaunix.com.br/2014/11/o-arquivo-etcgroup-gerenciando-grupos.html
Comandos úteis para administração de usuários e grupos. 
Agendando Tarefas com cron e atd
	O cron é o daemon
responsável por executar comandos agendados e recorrentes (todo dia, toda semana, etc.); o atd é o que lida com comandos a serem executados uma única vez, mas em um momento específico no futuro.
	Por padrão, todos os usuários podem agendar a execução de tarefas. Cada usuário tem, assim, seu próprio crontab no qual pode gravar comandos agendados. Ele pode ser editado rodando crontab -e (seu conteúdo é armazenado no arquivo /var/spool/cron/crontabs/usuário).
SEGURANÇA Restringindo cron ou atd
	Você pode restringir o acesso ao cron criando um arquivo explícito para autorização (whitelist) em /etc/cron.allow, no qual você indica apenas usuários com autorização para agendar comandos. Todos os outros serão automaticamente privados desse recurso. Reciprocamente, para bloquear apenas um ou dois encrenceiros, você pode botar seus nomes de usuário em um arquivo explícito para proibição (blacklist), /etc/cron.deny. Esse mesmo recurso está disponível para o atd, com os arquivos /etc/at.allow e /etc/at.deny.
Cada significante linha de um crontab descreve um comando agendado com os seguintes seis campos:
o valor para o minuto (números de 0 à 59);
o valor para a hora (de 0 à 23);
o valor para o dia do mês (de 1 à 31);
o valor para o mês (de 1 à 12);
o valor para o dia da semana (a partir de 0 até 7, 1 correspondendo a Segunda, Domingo sendo representado tanto por 0 quanto por 7; ainda é possível usar as três primeiras letras do nome do dia da semana em Inglês, como Sun, Mon, etc.);
	Cada valor pode ser expresso na forma de uma lista de valores possíveis (separados por vírgulas). A sintaxe a-b descreve o intervalo de todos os valores entre a e b. A sintaxe a-b/c descreve o intervalo com um incremento de c (exemplo: 0-10/2 significa 0,2,4,6,8,10). Um asterisco * é um coringa, representando todos os valores possíveis.
Agendando Tarefas com cron e atd
	O cron reconhece algumas abreviações que substituem os cinco primeiros campos de uma entrada no crontab. Elas correspondem as opções de agendamento mais clássicas:
@yearly: uma vez por ano (Janeiro 1, às 00:00);
@monthly: um vez por mês (o primeiro dia do mês, às 00:00);
@weekly: uma vez por semana (Domingo às 00:00);
@daily: uma vez por dia (às 00:00);
@hourly: uma vez por hora (no início de cada hora).
Exemplo Arquivo de exemplo crontab
#min hour day mon dow command
*/2 * * * * ping –c www.google.com >> ~/ping.txt
00-59/3 * * * * cp ~/ping.txt ping2.txt
# 8:00 am, segunda~sexta 
00 08 * * 1-5 COMANDO
Agendando Tarefas com cron e atd
	O at executa um comando em um momento específico no futuro. Ele recebe o horário e data desejados como parâmetros de linha de comando, e o comando a ser executado em sua saída padrão. 
	O comando será executado como se estivesse sido feito no shell corrente. O at até toma o cuidado de reter o ambiente corrente, para poder reproduzir as mesmas condições quando ele executa o comando. 
	O horário é indicado pelas seguintes convenções usuais: 16:12 ou 4:12pm representa 4:12 pm. 
	A data pode ser especificada em vários formatos Europeus e Ocidentais, incluindo DD.MM.YY (27.07.15 assim representando 27 July 2015), YYYY-MM-DD (essa mesma data sendo expressa como 2015-07-27.
	Uma sintaxe alternativa adia a execução por uma dada duração: at now + número período. O período pode ser minutos, horas, dias, ou semanas. O número apenas indica o número de unidades ditas que tem que ocorrer antes da execução do comando.
Agendando Tarefas com cron e atd
Agendando Tarefas com cron e atd
Para cancelar um tarefa agendada pelo cron, apenas rode crontab -e e apague a linha correspondente no arquivo crontab. Para tarefas do at, também é fácil: rode atrm número-da-tarefa. O número da tarefa é indicado pelo comando atno momento que você vez o agendamento, mas você pode obter ele novamente com o comando atq, o qual retorna a lista corrente de tarefas agendadas.
	O SAMBA é um serviço muito útil, tendo em vista a necessidade de compartilhamento de informações e sistemas de autenticação que possam integrar diferentes tecnologias, tais como: Windows e Linux. Foi uma criação de um estudante de Ciência da Computação da Universidade Nacional Australiana, de Camberra na Austrália, Andrew Tridgell, que teve a iniciativa de fazer testes com o objetivo de montar um espaço em disco em seu PC, rodando o sistema operacional DOS, para um servidor com o sistema operacional Unix.
	Com o servidor SAMBA devidamente instalado e configurado, é possível o compartilhamento de recursos (impressoras, arquivos) com clientes Windows, ligados em rede. Através do compartilhamento, o servidor se comporta como se fosse uma estação Windows na rede. Ele utiliza o protocolo SMB.
SAMBA
No caso de ser configurado como um controlador primário de domínio (PDC), o servidor SAMBA realiza a autenticação de usuários em estações clientes Windows. Toda a manipulação necessária de usuários cadastrados é feita de forma centralizada em um único arquivo, no qual se encontram as configurações do servidor
SAMBA
SAMBA - Instalação
Instalação
Verificação
SAMBA - Configuração
Passo 1: Inserir usuários no Linux:
	# adduser <nomeusuario>
Passo 2: Adicionar usuários no SAMBA e atribuir uma senha ao mesmo.
	# smbpasswd –a <nomedousuario>
SAMBA - Configuração
	Todas as configurações do SAMBA são feitas de forma centralizada no arquivo smb.conf, localizado em /etc/samba/.
Existem ferramentas gráficas disponíveis trabalham sobre o arquivo smb.conf, com uma interface mais amigável para os usuários, tal como a SWAT. Porém algumas distribuições não mantêm o pacote de instalação em seus repositórios.
	O arquivo smb.conf é dividido em partes (seções), sendo que os parâmetros são agrupados por seção, para ser mais fácil a sua manipulação pelos usuários. Uma seção no arquivo de configuração smb.conf do SAMBA é especificada através de um nome entre colchetes []
As seções foram divididas em global, homes, profiles e printers.
Global - são especificados os parâmetros para as configurações que
afetam o servidor SAMBA como um todo.
Homes - são de especificação das opções de acesso aos diretórios dos usuários, sendo que o diretório criado é disponibilizado apenas para seu dono, após a autenticação do usuário no servidor SAMBA. 
Printers - têm a função de disponibilizar as impressoras configuradas na rede via SAMBA. 
Profiles - é composta por parâmetros que definem um perfil quando o servidor SAMBA é utilizado como PDC de domínio. 
SAMBA - Configuração
SAMBA - Configuração
smb.conf – seção Global
SAMBA - Configuração
Usuário sem pasta /home
O parâmetro "-s" especifica um shell de comandos para ser atribuído ao usuário criado. O shell /bin/false, como o nome sugere, é um shell falso, e qualquer usuário que utiliza este shell não será capaz de logar-se corretamente no sistema GNU/Linux.
Caso você tenha criado um usuário sem especificar o shell, o usuário é configurado com o shell padrão de sua distro. Para alterá-lo, edite diretamente o arquivo de texto /etc/passwd, ou execute o comando usermod -s /bin/false 
Vamos adicionar estes usuários para serem utilizados no Samba: 
Para facilitar a administração e ter compartilhamentos Samba, devemos organizar os usuários em grupos. Criar o usuário antes com o comando adduser que é melhor, porra!
SAMBA - Configuração
Agora, vamos agrupar os funcionários da empresa nos grupos correspondentes, de acordo com o seu departamento.
# cat /etc/group
Vamos criar um diretório de trabalho do Marketing: 
Vamos alterar quem será o dono do diretório de trabalho
Precisamos alterar as permissões dos diretório, pois queremos que apenas usuário do grupo tenha acesso
SAMBA - Configuração
Precisamos criar no /etc/samba/smb.conf as politicas de acesso aos diretório compartilhados
SAMBA - Configuração
Acessando a pasta compartilhada via Microsoft
SAMBA - Verificação
SAMBA - Verificação
SAMBA - Autenticação
O Samba oferece também um recurso de geração de log. Ele
pode ser ativado na seção [global] do smb.conf.
	A opção "log level" indica o nível das mensagens (de 0 a 10), sendo que o nível 0 mostra apenas mensagens críticas, o nível 1 mostra alguns detalhes sobre os acessos e os demais mostram diversos níveis de informações de debug, úteis a desenvolvedores. A partir do Samba 3.04 foi incluído um módulo de auditoria, que permite logar os acessos e as modificações feitas de uma forma muito mais completa que o log tradicional. Isso é feito através do módulo "full_audit", que (do ponto de vista técnico) funciona de forma similar ao módulo "recycle" usado pela lixeira.
SAMBA – Log´s
Precisamos ativar o módulo através da linha abaixo:
	vfs objects = full_audit
Precisamos definir quais operações devem ser logadas através da opção "full_audit:success“. Exite uma lista de opções que podem ser inseridas, porém como em nosso contexto, queremos apenas LOG de arquivos inseridos no Diretório compartilhado pelo Samba, usaremos os parâmetros abaixo. Consulte a lista completa no link https://www.samba.org/samba/docs/man/manpages-3/vfs_full_audit.8.html
	full_audit:success = mkdir write pwrite
Por padrão, um grande volume de mensagens de alerta e erros gerados durante a operação. A opção "full_audit:failure = none" evita que estas mensagens sejam enviadas para log, fazendo com que a mensagem de saida do log fique muito mais limpo e seja mais fácil encontrar as opções que realmente interessam:
	full_audit:failure = none
Para concluirmos, vamos especificar o nível dos alertas, entre os suportados pelo syslog, como em:
	full_audit:facility = local7
	full_audit:priority = notice
Esta configuração pode ser tanto incluída dentro da seção [global] (de forma que o log inclua os acessos e as alterações feitas em todos os compartilhamentos) quanto ser incluída apenas na configuração de um compartilhamento específico.
SAMBA – Log´s
Com isso, o Samba vai passar a gerar os eventos referentes aos acessos. Falta agora configurar o rsyslog , para gerar as saídas dos eventos em um arquivo o enviar notificação para o e-mail do administrado. Para isso, abra o arquivo /etc/rsyslog.d/50-default.conf, e insira a linha direcionando as saidas de log para o arquivo “samba-full_audit.log”.
Precisamos criar o arquivo no diretório indicado no rsyslog e mudar o dono:grupo, para que nele sejam inseridas as mensagem de mudança.
Mensagens de log do samba !
SAMBA – Log´s
	Monitorar um sistema de arquivos, pode ser necessário para auditoria e ou supervisionamento de atividades no sistema em tempo real. O Incros - inotify cron, é um Daemon que pode ser usado de maneira semelhante ao Cron (serviço de agendamento de tarefas).  A diferença é que o Incron trata os eventos do sistema de arquivos (escrita, leitura e etc) ao invés de períodos de tempo.
Incron 
Alguns exemplos:
Notificar programas (daemons do servidor, por exemplo) sobre as mudanças na configuração;
Notificação de mudanças nos arquivos críticos do sistema, assim, como a sua eventual recuperação através da execução de scripts de backups;
Limpeza automática;
Entre outros ...
Quando o Incron é instalado via gerenciador de pacotes, é criado dentro do diretório "/etc" alguns arquivos que descreverei abaixo:
"/etc/incron.conf": Arquivo de configuração principal do Incron. Contém as configurações padrão para o programa 'incrond'. Cada linha possui um único par de valores na forma 'opção = valor'.
"/etc/incron.deny": Arquivo que detém a lista de usuários não autorizados a usar o Incron e ter uma 'incrontab' própria.
"/etc/incron.allow": Arquivo que detém a lista de usuários autorizados a usar o Incron e ter uma 'incrontab' própria.
"/etc/init.d/incron": Script para iniciar, parar e reiniciar o Daemon 'incrond'.
Incron 
Instalação
Verificação
Incron 
Para permitir o uso do serviço para algum usuário, é só editar o arquivo "/etc/incron.allow" listando os nomes dos usuários ou o arquivo que configurou no "/etc/incron.conf". 
	É necessário que o 'root' esteja listado no "/etc/incron.allow", caso não esteja, ele será bloqueado e não usará o serviço. Abaixo tem o exemplo: 
O usuário 'root', está podendo escrever entradas na 'incrontab'
Incron 
Alguns símbolos de eventos e o que significam:
IN_ACCESS: O arquivo foi acessado (lido).
IN_ATTRIB: Metadados alterados (permissões, timestamps, atributos estendidos, etc.).
IN_CLOSE_WRITE: Arquivo aberto para a escrita foi fechado.
IN_CLOSE_NOWRITE: Arquivo não aberto para escrita foi fechado.
IN_CREATE: Arquivo ou diretório criado no diretório monitorado.
IN_DELETE: Arquivo ou diretório excluído do diretório monitorado.
IN_DELETE_SELF: Arquivo ou diretório monitorado foi-se excluído.
IN_MODIFY: O arquivo foi modificado.
IN_MOVE_SELF: Arquivo ou diretório monitorado foi movido.
IN_MOVED_FROM: Arquivo foi movido para fora do diretório monitorado.
IN_MOVED_TO: Arquivo foi movido para diretório monitorado.
IN_OPEN: Arquivo foi aberto.
IN_ALL_EVENTS: símbolo é definido como uma máscara de bits de todos os eventos acima.
- Opções:$$: Cifrão
$@: Representa o diretório monitorado.
$#: Representa o arquivo que aconteceu o evento.
$%: Representa o evento ocorrido sobre o objeto (em modo texto).
$&: Representa o evento ocorrido sobre o objeto (em modo numérico).
Incron 
	O Incron trabalha analisando as entradas do 'incrontab' de cada usuário, e para cada evento no objeto (diretório e ou arquivo) monitorado, o Incron executa um comando ou script definido pelo administrador. Desta forma, podemos usar o Incron para armazenar informações sobre alterações no diretórios e/ou arquivos, assim como a criação de arquivos ou exclusão dos mesmos, podendo monitorar um objeto ou vários objetos contidos no diretório. 
O diretório "/samba/publico/" será monitorado, e qualquer evento de criação ou deleção de diretório ou arquivo dentro do mesmo, será registrado pelo comando 'logger' com a facilidade 'loca1' e nível 'notice'. 
Os símbolos indicam:
$@: O diretório que está sendo monitorado “/samba/publico/” no exemplo.
$#: indica o nome do objeto (pode ser um arquivo ou diretório) onde ocorreu um evento.
$%: Indica o tipo de evento realizado sobre o $# objeto.
Nesta opção, quando houver alterações no diretório “/samba/publico/” , o script será executado.
Shell Script
	Podemos utilizar a criação de arquivos de scripts para tornar mais simples as execuções de tarefas repetitivas no dia a dia
	Um script nada mais é do que um algoritmo projetado para realizar uma determinada tarefa, utilizando os comandos específicos do bash e os executáveis do sistema operacional
Para criar um shell script é necessário obedecer a algumas regras. Para começar, a primeira linha do arquivo deve ser uma invocação do próprio bash: 
#!/bin/bash
#!/bin/bash
echo "Hello, World!"
Shell Script
Variáveis de Ambiente
	O shell é executado no sistema controlado por variáveis de ambiente. Variáveis de ambiente são espaços de memória que armazenam valores. Estas variáveis podem ser locais, que são as variáveis disponíveis somente pelo shell corrente e que não está sendo acessado por subprocessos do sistema. E as variáveis globais, que estão disponíveis tanto para o shell corrente como para os subprocessos que fazem uso delas. 
Algumas variáveis de ambiente importantes para facilitar o entendimento:
	HOME - Esta variável identifica o diretório do usuário doméstico.
	SHELL - Esta variável identifica qual shell está sendo usado.
	TERM - Esta variável define o tipo de terminal que está sendo usado.
	USER - Pré-define o nome de conta como variável de ambiente.
	PATH - Esta é a variável de ambiente que define quais diretórios pesquisar e a ordem na qual eles são pesquisados para encontrar um determinado comando.
 	MAIL - Esta é a variável de correio eletrônico. 
	
Utilize o comando echo “$Variavel” para exibir o conteúdo da mesma
Variáveis locais: $ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2" [1]="04" [2]="0" [3]="1" [4]="release" [5]="i386-conectiva-linux-gnu")
BASH_VERSION='2.04.0(1)-release'
COLORTERM=
COLUMNS=142
...
Variáveis globais:  $ env ou $ printenv
PWD=/root
WM=kde
TMPDIR=/root/tmp
KONSOLE_DCOP=DCOPRef(konsole-985,konsole)
GS_LIB=/root/.kde/share/fonts
... 
Shell Script
Para atribuir um valor a uma variável local veja o exemplo: 
$ LINUX=livre
$ echo $LINUX
livre
	O comando echo exibe o valor de uma variável de ambiente. 
$ set | grep LINUX
LINUX=livre
	Para tornar esta variável local em uma variável global, devemos usar o comando export: 
# export LINUX
# env | grep LINUX
LINUX=livre
	Para deletar uma variável de ambiente da memória usamos o comando unset e
# unset LINUX
# echo $LINUX 
Shell Script
Usando variáveis
#!/bin/bash
TEXTO=‘Primeiro Script !!!’ 
echo “Imprima na tela o texto $TEXTO”
#!/bin/bash 
DATA=`date +%d-%m-%y-%H:%M` 
ls –l /etc/* > etc.$DATA
echo $DATA
	As aspas (‘ ‘) simples interpretam literalmente a frase que estiver entre elas e as variáveis não são processadas. 
	Já as aspas duplas (“”) processam o conteúdo das variáveis. 
	A crase (´ `) faz com que o comando que estiver entre elas seja executado e seu resultado armazenado em variáveis ou usado por outro comando.
Shell Script
Shell Script
Atribuindo saídas de comandos a variáveis
	É possível armazenar o resultado de um comando em uma variável. 
Há duas sintaxes para isso:
nome_da_variavel=$(comando)
nome_da_variavel=`comando`
#!/bin/bash 
system_info=`df -h` 
echo “$system_info” 
Também poderia ser 
#!/bin/bash 
system_info=$(df -h)
echo “$system_info” 
Capturando a entrada de dados do usuário
Shell Script
Pode ser que o seu script precise interagir com o usuário, pedindo para ele fornecer algum dado de entrada para processamento. Neste caso, é necessário que se leia o que o usuário digitou e isso é feito através do seguinte comando:
read variável onde será armazenado o valor digitado
#!/bin/bash 
echo “Qual sua idade ?” 
read idade;
echo “Você tem $idade!” 
#!/bin/bash 
echo –n “Qual sua idade ?” 
read idade;
echo “Você tem $idade!” 
Shell Script
Comandos de seleção ou de tomada de decisão
Na maioria das vezes precisamos seguir um determinado fluxo de execução baseado em alguma decisão tomada pelo usuário ou outro sistema que esteja utilizando o nosso.
O comando mais simples que permite isso é o IF
if CONDICAO; 
then 
 AÇÕES 
Fi
Onde: 
CONDICAO: teste que, se verdadeiro, passará o controle para o bloco dentro do then;
AÇÕES: comandos a serem executados se o resultado de CONDICAO for verdadeiro
If ping –c 5 www.google.com
Then
Echo ´Internet OK! ‘
fi
Shell Script
O comando else
	Existe a possibilidade de também tratar o caso em que o nosso teste falha. Para isso temos o comando else, cuja sintaxe é:
if CONDICAO ;
 then
 AÇÕES_1
 else
 AÇÕES_2
fi 
If ping –c 2 10.10.10.10
 Then
 Echo ´Internet OK! ‘
 else
 Echo ‘ está fora!’	
fi
Shell Script
O comando case
	O comando case tem a mesma funcionalidade do if...then.., com a diferença de sua sintaxe ser mais compacta:
case VARIAVEL in 
CASO_1) 
AÇÕES_1;;
CASO_2)
AÇÕES_2
esac
#!/bin/bash
Echo ‘ Escolha uma das opções : ‘
Echo ‘ 1 – Ping internet ‘
Echo ‘ 2 – Reboot ‘
case OP in 
“1”) Ping –c 5 www.google.com;;
“2”) reboot;;
esac
Shell Script
#!/bin/bash
P(){
echo ' opção 1 - Ping internet'
echo ' opção 2 - Reboot do sistema'
read –t 2–p ' digite a opção desejada: ‘ op
Echo ‘ Vamos lá seu molenga’
case $op in
'1') teste;;
'2') reiniciar;;
*) echo 'Digite apenas 1 ou 2';P;;
esac
}
teste (){
ping -c 5 www.google.com
}
reiniciar (){
reboot
}
P
Criando função

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais