Try   HackMD

Apostila Linux - parte 2

Como colocar ícone na area de trabalho

Assim como é no Mac existe um diretório que carrega todos os atalhos das aplicações e ele fica neste endereço:
/usr/share/applications

Então o que você deve fazer é abrir o gerenciador de arquivos Nautilus (sudo nautilus) e navegar até esta pasta, você pode fazer isso de várias maneiras:

1 - Clicando pelas pastas

1.1 - Clique em Computador
1.2 - Clique na pasta USR
1.3 - Clique na pasta SHARE
1.4 - Clique na pasta APPLICATIONS

2 - Acessando diretamente pela barra de endereços

2.1 - Abra o Nautilis
2.2 - Pressione as teclas Ctrl+L
2.3 - Digite ou cole o caminho /usr/share/applications

De qualquer forma você chegará nesta pasta onde os atalhos dos programas estão:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Para criar o atalho na área de trabalho é muito simples, clique com o botão direito sobre o ícone do programa que você quer no desktop, clique em "Copiar para" e selecione a área de trabalho, pronto.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Como abrir o Chrome pelo terminal:

Abrir o terminal e digitar: google-chrome

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Comando de permissões:

CHMOD - Altera as permissões.
Lembre que somente quem tem permissão no arquivo ou diretório poderá alterar as permissões, quando ocorrer erros, verifique seus direitos sobre o arquivo ou diretório com o comando "ls -l" ou faça com poderes de root.

Tabela de conversão:
0 = nenhuma permissão;
1 = apenas executar;
2 = apenas gravar;
3 = gravar e executar;
4 = apenas ler;
5 = ler e executar;
6 = ler e gravar; e
7 = ler, gravar e executar.

rwx
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111

Onde "rwx" são as permissões de um arquivo, ou seja:
r = read (leitura)
w = write (gravação, alteração, deleção)
x = execute (execução)

Feito isso, sabemos que um arquivo ou diretório possui 3 modos de permissão. Uma permissão para o DONO do arquivo ou seja, quem o criou, uma outra permissão para o GRUPO do usuário dono do arquivo, e outra permissão para QUALQUER outro usuário ou grupo.

Sabendo disso, temos a tabela final abaixo:

dono grupo outros
rwx rwx rwx
0 000 000 000
1 001 001 001
2 010 010 010
3 011 011 011
4 100 100 100
5 101 101 101
6 110 110 110
7 111 111 111

Exemplo: Temos um diretório qualquer chamado mp3 que eu quero permissão total para o dono [eu], permissão de apenas leitura para o meu grupo e nenhuma permissão para o resto do mundo. O comando para executar essa ação é o chmod (em minúsculo mesmo).

chmod 740 /mp3

(acompanhem na tabela acima, que o 7=rwx, 4=r e 0=nada)

Comandos Linux: Find e Locate

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

Procurar por nome

O método mais comum e óbvio de procurar um arquivo é pelo nome. Para executar uma simples de pesquisa usando o nome do arquivo, use o comando Linux find, como mostrado abaixo:

find . -name “meu-arquivo”

No comando acima, nós utilizamos a opção -name, e procuramos um arquivo chamado meu-arquivo. Note que iniciamos a busca no diretório atual.

É importante lembrar que o argumento -name, diferencia letras maiúsculas e minúsculas no Linux. Portanto, se você sabe o nome do arquivo, mas não tem certeza se possui letras maiúsculas e minúsculas, use o comando como esse:

find . -iname "meu-arquivo"

Outra forma de utilizar a opção de busca por nome é procurar por arquivos sem uma palavra específica no nome. No Linux, você pode fazer isso de duas diferentes formas. A primeira maneira é utilizar o -not da seguinte maneira:

find . -not -name "meu-arquivo"

Podemos utilizar também o !, porém deve ser especificado para o Linux saber que é parte da busca e não um comando independente.

find . \! -name "meu-arquivo"

Você pode procurar entre múltiplos arquivos com um formato comum como por exemplo .txt, que pode ser útil em algumas buscas:

find . -name “*.txt”

Isso irá listar todos os arquivos .txt iniciando pela pasta atual.

Finalmente, se você quer encontrar um determinado arquivo pelo nome e remove-lo. Utilize o argumento -delete após o nome:

find . -name "meu-arquivo" -delete

Procurar por tipo

Para a maioria dos usuários, apenas saber encontrar um arquivo pelo nome é o suficiente. Entretanto, é sempre útil conhecer todas as ferramentas oferecidas pelo Linux.

Esse é o momento onde você deve usar o argumento -type. O Linux fornece ao usuário as seguintes opções quando procuramos arquivos pelo tipo:

f arquivo normal
d diretório ou pasta
l link simbólico
c dispositivos de caracteres
b dispositivos bloqueados
Um exemplo simples de busca por tipo pode ser visto abaixo:
find / -type d

Isto irá listar todos os diretórios presentes nos seus arquivos do sistema, pois começamos a busca no diretório raiz utilizando o sinal /.

Você pode realizar a busca com as opções -type e -name juntas, para diminuir as buscas, como por exemplo:

find / -type f -name “meu-arquivo”

Assim irá procurar por arquivos com o nome meu-arquivo, excluindo diretórios ou links.

Procurar por tempo

Se você quer procurar arquivos baseado em tempo de acesso ou rastros de tempo de modificação, Linux tem as ferramentas para você. Existem 3 formas em que o Linux rastreia as datas dos arquivos:

Data de acesso (-atime) a última vez que o arquivo foi lido ou salvo.
Data de modificação (-mtime) Última vez que o arquivo foi modificado.
Data de alteração (-ctime) Última vez que os dados foram atualizados.
Esta opção pode ser usado com um número. Este número especifica quantos dias desde que o arquivo foi acessado, modificado ou alterado. A forma mais simples de procurar arquivos pela data é:
find / -atime 1

Isto irá procurar todos os arquivos que foram acessados um dia atrás. Isto significa que todo arquivo que foi lido, escrito, ou os dois desde 1 dia atras será listado.

Nós podemos fazer nossa pesquisa mais aprimorada com os sinais de mais (+) e menos (-) antes do número de dias. Por exemplo:

find / -mtime +2

Isto irá listar todos os arquivos que tiveram modificações a mais de dois dias.

Para localizar todos os arquivos que tiveram os dados alterados a menos de 1 dia atrás, utilize o comando linux:

find / -ctime -1

Finalmente, existem alguns argumentos adicionais além desses 3, que também estão relacionados pesquisas por data. O argumento -min procura por quantos minutos passaram, por exemplo:

find / -mmin -1

Isto irá listar os arquivos que foram modificados a menos de 1 minuto. O argumento -newer pode ser utilizado para comparar o tempo entre dois arquivos e encontrar o mais novo.

Procurar por tamanho

Assim como o Linux tem a opção de procurar arquivos baseado nas datas, ele também permite fazer o mesmo com tamanhos. A sintaxe básica para encontrar arquivos pelo tamanho é:

find -size

Você pode especificar o tamanhos nestas unidades:

c bytes
k kilobytes
M megabytes
G gigabytes
B blocos de 512-byte

Um exemplo simples de como utilizar o comando find por tamanho de arquivos:

find / -size 10M

Isto irá procurar por arquivos em seu sistema que possuem o tamanho exato de 10 Megabytes.

Exatamente como a busca baseada em datas, você pode filtrar suas buscas com os sinais de mais (+) e menos (-):

find / -size +5G

O comando acima irá listar todos os arquivos com mais de 5 Gigabytes. Você pode também utilizar o sinal de menos para especificar ‘menos que’ em suas buscas.

Pesquisa por propriedade

Este é um privilégio do Linux que também pode ser utilizado para procurar arquivos. Linux fornece a habilidade de restringir suas buscas pela propriedade, pois permissões podem ser fornecidas a diferentes usuários.

Para encontrar arquivos de um proprietário específico, o comando a seguir deve ser utilizado:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
Find / -user dummy
Isto irá mostrar uma lista com todos os arquivos que pertencem ao usuário dummy. Assim como nome de usuários, é possível também realizar buscas por nome de grupos:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -group classroom
Isto irá procurar por arquivos de propriedade do grupo classroom.

Pesquisa por permissões

Usuários que precisam procurar um arquivo baseado na permissão do arquivo, podem utilizar a opção -perm do comando -find. Por exemplo:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -perm 644
No Linux, 644 corresponde a permissão para ler e escrever. Isto significa que o este comando irá procurar por todos os arquivos com essas permissões exatamente. Você pode utilizar também dessa forma

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -perm -644
Assim irá procurar todos os arquivos que possuem no mínimo a permissão 644.

Outras opções úteis

Além desses métodos de busca de arquivos, existem outras opções úteis que vale a pena lembrar.

Por exemplo, para procurar por arquivos ou pastas vazias no sistema, use o comando Linux

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -empty
Similar a esse, para procurar todos os arquivos executáveis salvos, utilize a opção -exec

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -exec
Para procurar arquivos legíveis, você pode utilizar o seguinte comando:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
find / -read
E isso é tudo que o comando Linux find faz. Como você pode ver, existem várias opções para que os usuários possam adaptar suas pesquisas de acordo com suas necessidades. Vamos dar uma olhada em outro comando Linux que pode ser utilizado ao invés do find para procurar arquivos no Linux.

Utilizando o comando Linux locate

Você pode se perguntar o porque precisa de uma outra alternativa para o comando Linux find. Afinal , isto é tudo que você precisa para procurar arquivos. Entretanto, o locate é uma alternativa útil, pois realiza buscas mais rápidas quando realizadas em sistemas, se comparado ao find.

Por padrão o Linux não vem com o comando locate pré instalado por padrão. Para instalar esse pacote, execute os seguintes comandos em seu terminal

sudo apt-get update sudo apt-get install mlocate

Agora que você instalou o locate, você pode realizar as buscas de arquivos como essas:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
locate meu-arquivo
Você pode utilizar o argumento -b para reduzir sua busca. Esse comando irá procurar o nome do arquivo ‘meu-arquivo’ – listando apenas os arquivos que têm o termo de pesquisa em vez de retornar diretórios que levam aos arquivos.

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
locate -b meu-arquivo
Outros argumentos disponíveis são:

-e Retorna a entrada de arquivos existentes no momento que o comando Linux locate é executado.
-q Desativa a exibição de erros encontrados no processo de busca.
-c Mostra o número de arquivos correspondentes, ao invés dos nomes dos arquivos.

O comando Linux locate pode retornar algumas vezes arquivos que foram deletados. Isto ocorre porque o comando locate busca nos arquivos principais dos dados do SO Linux. Se essa base de dados não foi atualizada, até mesmo os arquivos deletados podem aparecer nos resultados de busca. Você pode atualizar a base de dados manualmente executando o seguinte comando:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
sudo updatedb

Comandos avançados:

Informações do sistema Linux

arch: Mostre a arquitetura da máquina
uname -m: Mostre a arquitetura da máquina
uname -r: Mostre versão do kernel usada.
dmidecode -q: Mostre os componentes do sistema (hardware)
hdparm -i /dev/hda: Mostre as características de um disco rígido.
hdparm -tT /dev/sda: Execute teste de leitura em um disco rígido.
cat /proc/cpuinfo: Exiba informações da CPU.
cat /proc/interrupts: Mostre interrupções.
cat /proc/meminfo: verificar a utilização de memória.
cat /proc/swaps:df -h: Mostre o tamanho dos arquivos e diretórios ordenados por tamanho.
ls -lSr more: Estimar o espaço usado pelo diretório ‘dir1’.
du -sh dir1: Mostre o tamanho dos arquivos e diretórios ordenados por tamanho.
du -sk * sort -rn: mostra o espaço usado por pacotes rpm instalados organizado pelo tamanho (Fedora, Red Hat e outros).
rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ sort -k1,1n: mostra o espaço usado por pacotes instalados, organizado pelo tamanho (Debian, Ubuntu e outros).
dpkg-query -W -f=’
InstalledSize;10t
{Package}n’
sort -k1,1n: g> Mostre arquivos de swap.
cat /proc/version: Exiba a versão do kernel.
cat /proc/net/dev: Mostre estatísticas e adaptadores de rede.
cat /proc/mounts: Mostre o sistema de arquivos montado.
lspci -tv: exiba os dispositivos PCI.
lsusb -tv: Mostre os dispositivos USB.
date: Mostre a data do sistema.
cal 2011: Visualizar o calendário em 2011.
cal 07 2011: Mostre o calendário para o mês de julho de 2011.
date 041217002011.00: Coloque (estado, ajustar) data e hora.
clock -w: Salve as alterações para a data na BIOS.

Desligar (reinicialização do sistema ou logout)

shutdown -h now: Desligue o sistema (1).
init 0: Desligue o sistema (2).
telinit 0: Desligue o sistema (3).
halt: Desligue o sistema (4).
shutdown -h hours: minutos e
shutdown -c: Cancele um desligamento do sistema planejado.
shutdown -r now: Reinicie (1).
reboot: Reinicie (2).
logout: Feche a sessão.

Trabalhando com sistema de arquivos

mount /dev/hda2 /mnt/hda2: Monte um disco chamado hda2. Primeiro, verifique a existência do diretório ‘/ mnt/hda2’; Se você não estiver, você deve criá-lo.
umount /dev/hda2: Remova um disco chamado hda2. Em primeiro lugar, do ponto de ‘ / mnt/hda2.
fuser -km /mnt/hda2: Force a remoção quando o dispositivo está ocupado.
umount -n /mnt/hda2: Execute a remoção sem ler o arquivo/etc/MTAB. Útil quando o arquivo é somente leitura ou o disco rígido está cheio.
mount /dev/fd0 /mnt/floppy: Monte um disco flexível (disquete).
mount /dev/cdrom /mnt/cdrom: montar um cdrom / dvdrom.
mount /dev/hdc /mnt/cdrecorder: Monte um cd gravável ou um dvdrom.
mount /dev/hdb /mnt/cdrecorder: montar um cd gravável / dvdrom (um dvd).
mount -o loop file.iso /mnt/cdrom: Monte um arquivo ou uma imagem iso.
mount -t vfat /dev/hda5 /mnt/hda5: Monte um sistema de aComandos rquivos FAT32.
mount /dev/sda1 /mnt/usbdisk: Monte uma memória ou um pen-drive usb (sem especificar o tipo de sistema de arquivos).

Espaço em disco

df -h: Mostre o tamanho dos arquivos e diretórios ordenados por tamanho.
ls -lSr more: Estimar o espaço usado pelo diretório ‘dir1’.
du -sh dir1: Mostre o tamanho dos arquivos e diretórios ordenados por tamanho.
du -sk * sort -rn: mostra o espaço usado por pacotes rpm instalados organizado pelo tamanho (Fedora, Red Hat e outros).
rpm -q -a –qf ‘%10{SIZE}t%{NAME}n’ sort -k1,1n: mostra o espaço usado por pacotes instalados, organizado pelo tamanho (Debian, Ubuntu e outros).
dpkg-query -W -f=’
InstalledSize;10t
{Package}n’ sort -k1,1n:
Mostrar (no Debian ou derivados) uma lista com 25 pacotes instalados que consomem mais espaço (em ordem decrescente)

Usuários e grupos

groupadd nombre_del_grupo: Crie um novo grupo.
groupdel nombre_del_grupo: Exclua um grupo.
groupmod -n nuevo_nombre_del_grupo viejo_nombre_del_grupo: Renomear um grupo.
useradd -c “Name Surname ” -g admin -d /home/user1 -s /bin/bash user1: Crie um novo usuário “admin” do grupo.
useradd user1: Crie um novo usuário.
userdel -r user1: excluir um usuário (‘-r’ elimina o diretório Home).
usermod -c “User FTP” -g system -d /ftp/user1 -s /bin/nologin user1: Altere os atributos do usuário.
passwd: Altere senha.
passwd user1: Altere a senha do usuário (apenas pelo root).
chage -E 2011-12-31 user1: Defina um limite de tempo para a senha do usuário. Neste caso, ele diz que a chave expira a 31 de dezembro de 2011.Informações do sistema Linux
pwck: Verifique a sintaxe correta ‘/ etc/passwd’ arquivo formato e a existência de usuários.
grpck: Verifique a sintaxe correta e formato do arquivo ‘/ etc/grupo’ e a existência de grupos.
newgrp group_name: Registre um novo grupo para alterar o grupo padrão dos arquivos recém-criados.

Permissões de Arquivos (+ Adiciona e – Remover permissões)

ls -lh: Mostre permissões.
ls /tmp pr -T5 -W$COLUMNS: Divida o terminal em 5 colunas.
chmod ugo+rwx directory1: definir permissões de leitura®, gravar (w) e executar (x) para o dono (u), grupo (g) e outros (ou) no diretório ‘arquivo1’.
chmod go-rwx directory1: Remove® a permissão de leitura, gravação (w) e grupo de implementação (x) (g) e outros (ou) no diretório ‘arquivo1’.
chown user1 file1: Altere o proprietário de um arquivo.
chown -R user1 directory1: Altere o proprietário de um diretório e todos os arquivos e diretórios contidos dentro.
chgrp group1 file1: Altere o grupo de arquivos.
chown user1: Grupo1 arquivo1
find / -perm -u+s: Ver todos os arquivos com sistema SUID configurado.
chmod u+s /bin/file1: Defina o bit SUID em um arquivo binário. O usuário que está executando esse arquivo adquire os mesmos privilégios como proprietário.
chmod u-s /bin/file1: Desabilite o bit SUID em um arquivo binário.
chmod g+s /home/public: definir o SGID bit em um diretório – semelhante ao SUID, mas para o diretório.
chmod g-s /home/public: Desative o bit SGID em um diretório.
chmod o+t /home/public: conjunto STIKY bit em um diretório. Permite a exclusão de arquivos somente para os legítimos proprietários.
chmod o-t /home/public: Desative STIKY bit em um diretório.

Atributos especiais de arquivo: (“+” Adiciona e “–” Remover permissões)

chattr +a file1: permite gravar apenas abrindo um arquivo acrescentar modo.
chattr +c file1: permite que um arquivo a ser compactado / descompactado automaticamente.
chattr +d file1: Ele garante que o programa ignore excluir os arquivos durante o backup.
chattr +i file1: torna-se o arquivo inalterado, portanto não pode ser excluído, alterado, renomeado ou vinculado.
chattr +s file1: Permite que um arquivo a ser excluído com segurança.
chattr +S file1: Ele garante que um arquivo é modificado, as alterações são gravadas no modo síncrono, como com a sincronia.
chattr +u file1: Ele permite que você recuperar o conteúdo de um arquivo, mesmo se está cancelado.
lsattr: Mostre atributos especiais.

Arquivos e arquivos compactados

bunzip2 file1.bz2: Descompacte um arquivo chamado ‘file1.bz2’.
bzip2 file1: comprime um arquivo chamado ‘file1’.
gunzip file1.gz: Descompacte um arquivo chamado ‘file1.gz’.
gzip file1: comprime um arquivo chamado ‘file1’.
gzip -9 file1: Comprima com compressão máxima.
rar a file1.rar test_file: Crie um arquivo com o rar chamado ‘file1.rar’.
rar a file1.rar file1 file2 dir1: Comprima ‘arquivo1’, ‘arquivo2’ e ‘dir1’ simultaneamente.
rar x file1.rar: Descompacte o arquivo rar.
unrar x file1.rar: Descompacte o arquivo rar.
tar -cvf archive.tar file1: Crie um tarball descompactado.
tar -cvf archive.tar file1 file2 dir1: Crie um arquivo contendo ‘arquivo1’, ‘ file2′ e ‘dir1’.
tar -tf archive.tar: exibir o conteúdo de um arquivo.
tar -xvf archive.tar: extrair um arquivo tar.
tar -xvf archive.tar -C /tmp: extrair um tarball em / tmp.
tar -cvfj archive.tar.bz2 dir1: Crie um arquivo tar compactado no bzip2.
tar -xvfj archive.tar.bz2: descompactar um arquivo compactado do bzip2 tar
tar -cvfz archive.tar.gz dir1: Crie um arquivo tar compactado em gzip.
tar -xvfz archive.tar.gz: Descompacte um arquivo tar do gzip compactado.
zip file1.zip file1: Crie um arquivo compactado zip.
zip -r file1.zip file1 file2 dir1: compressão, zip, vários arquivos e diretórios simultaneamente.
unzip file1.zip: Descompacte um arquivo zip.

Pacotes RPM (Red Hat, Fedora e similares)

rpm -ivh package.rpm: Instale um pacote rpm.
rpm -ivh –nodeeps package.rpm: Instale um pacote rpm ignorar solicitações de dependências.
rpm -U package.rpm: atualize um pacote rpm sem alterar a configuração dos arquivos.
rpm -F package.rpm: atualize um pacote rpm somente se ele estiver instalado.
rpm -e package_name.rpm: Remova um pacote rpm.
rpm -qa: Mostre todos os pacotes rpm instalados no sistema.
rpm -qa grep httpd: Mostre todos os rpm de pacotes com o nome “httpd”.
rpm -qi package_name: informações sobre um pacote específico instalado.
rpm -qg “System Environment/Daemons”: Mostar um grupo software pacotes rpm.
rpm -ql package_name: Mostre lista de arquivos fornecidos por um pacote rpm instalados.
rpm -qc package_name: Exiba a lista de arquivos, dada por uma configuração de pacote rpm instalados.
rpm -q package_name –whatrequires: Mostre lista de dependências que são solicitados para um pacote rpm.
rpm -q package_name –whatprovides: Mostar capacidade fornecida por um pacote rpm.
rpm -q package_name –scripts: Mostre scripts começados durante a remoção da instalação.
rpm -q package_name –changelog: Mostar o histórico das revisões de um pacote rpm.
rpm -qf /etc/httpd/conf/httpd.conf: Verificar qual rpm pacote pertence um determinado arquivo.
rpm -qp package.rpm -l: Mostre lista de arquivos fornecidos por um rpm do pacote que ainda não foi instalado.
rpm –import /media/cdrom/RPM-GPG-KEY: importe a assinatura digital chave pública.
rpm –checksig package.rpm: Verificar a integridade de um pacote rpm.
rpm -qa gpg-pubkey: Verificar a integridade de todos os pacotes rpm instalados.
rpm -V package_name: Verifique o tamanho do arquivo, licenças, tipos, proprietário, grupo, exame de saúde Resumo de MD5 e última modificado.
rpm -Va: verificar todos os pacotes rpm instalados no sistema. Use com cuidado.
rpm -Vp package.rpm: Verifique se que um pacote instalado ainda não rpm.
rpm2cpio package.rpm cpio –extract –make-directories bin: Extraia o arquivo executável de um pacote rpm.
rpm -ivh /usr/src/redhat/RPMS/arch/package.rpm: Instale um pacote construído a partir de um rpm fonte.
rpmbuild –rebuild package_name.src.rpm: Construa um pacote rpm a partir de um rpm fonte.

Pacotes deb (Debian, Ubuntu e derivados)

dpkg -i package.deb: instalar / atualizar um pacote deb.
dpkg -r package_name: Remova uma deb para o pacote do sistema.
dpkg -l: Mostre todos os pacotes deb instalados no sistema.
dpkg -l grep httpd: Mostre todos deb pacotes com o nome “httpd”
dpkg -s package_name: informações sobre um pacote específico instalado no seu sistema.
dpkg -L package_name: Mostar lista de arquivos fornecidos por um pacote instalado no sistema.
dpkg –contents package.deb: Mostre lista de arquivos fornecidos por um pacote não instalado ainda.
dpkg -S /bin/ping: Verificar qual pacote pertence um determinado arquivo.

Atualizador de pacotes APT (Debian, Ubuntu y derivados)

apt-get install package_name: instalar / atualizar um pacote deb.
apt-cdrom install package_name: instalar / atualizar um pacote deb do cdrom.
apt-get update: Atualize a lista de pacotes.
apt-get upgrade: Atualize pacotes instalados todos.
apt-get remove package_name: Remova a instalação de um pacote deb do sistema.
apt-get check: Verifique se a resolução correta de dependências.
apt-get clean: limpar o cache de pacotes baixados.
apt-cache search searched-package: Retorna a lista de pacotes que corresponde à série ‘queria pacotes’.

Exibir o conteúdo de um arquivo

cat file1: Ver o conteúdo de um arquivo a partir da primeira linha.
tac file1: Ver o conteúdo de um arquivo a partir da última linha.
more file1: Veja o conteúdo ao longo de um arquivo.
less file1: semelhantes para o comando ‘mais’ mas permite que você salve o arquivo, bem como o movimento para trás.
head -2 file1: Veja as duas primeiras linhas de um arquivo.
tail -2 file1: Ver as duas últimas linhas de um arquivo.
tail -f /var/log/messages: Ver em tempo real o que foi adicionado ao arquivo.

Manipulação de texto

cat file1 file2 .. command <> file1_in.txt_or_file1_out.txt: sintaxe geral para a manipulação de texto usando o tubo, STDIN e STDOUT.
cat file1 command( sed, grep, awk, grep, etc…) > result.txt: sintaxe geral para manipular um texto de um arquivo e escrever os resultados para um novo arquivo.
cat file1 command( sed, grep, awk, grep, etc…) » result.txt: sintaxe geral para manipular um texto de um arquivo e adicionar o resultado em um arquivo existente.
grep Aug /var/log/messages: Procure as palavras “Ago” no arquivo ‘/ var/log/messages’.
grep ^Aug /var/log/messages: procurar palavras que começam com “Agosto” no arquivo ‘/ var/log/messages’
grep [0-9] /var/log/messages: Selecione todas as linhas no arquivo ‘/ var/log/messages’ que contêm números.
grep Aug -R /var/log/*: encontrar a seqüência de caracteres “Ago” no diretório ‘ / var/log ‘ e abaixo.
sed ‘s/stringa1/stringa2/g’ example.txt: Realocando “string1” com “string2” em Sample. txt
sed ‘/^$/d’ example.txt: remover todas as linhas em branco do sample. txt
sed ‘/ *#/d; /^$/d’ example.txt: excluir comentários e linhas em branco de Sample. txt
echo ‘esempio’ tr ‘[: baixa
sed -e ‘1d’ result.txt: elimina a primeira linha do arquivo Sample. txt
sed -n ‘/stringa1/p’: exibir somente as linhas que contêm a palavra “string1”.

Estabelecer o formato de conversão de arquivos

dos2unix filedos.txt fileunix.txt: Converta um formato de arquivo de texto do MSDOS para UNIX.
unix2dos fileunix.txt filedos.txt: Converta um formato de arquivo de texto do UNIX para MSDOS.
recode ..HTML < page.txt > page.html: Converta um arquivo de texto para html.
recode -l more:

Análise de sistema de arquivos

badblocks -v /dev/hda1: Verifica os blocos defeituosos no disco hda1.
fsck /dev/hda1: reparar / verificar a integridade do arquivo do sistema Linux no disco hda1.
ext2 /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext2 no disco hda1.
e2fsck /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext2 no disco hda1.
e2fsck -j /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext3 no disco hda1.
ext3 /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext3 no disco hda1.
vfat /dev/hda1: reparação / verificar integridade do arquivo sistema disco fat hda1.
msdos /dev/hda1: reparar / verificar a integridade de um arquivo a partir do dos sistema disco hda1.
dosfsck /dev/hda1: reparar / verificar a integridade de um arquivo a partir do dos sistema disco hda1.

Formatar sistema de arquivos

mkfs /dev/hda1: Verifica os blocos defeituosos no disco hda1.
mke2fs /dev/hda1: reparar / verificar a integridade do arquivo do sistema Linux no disco hda1.
mke2fs -j /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext2 no disco hda1.
mkfs -t vfat 32 -F /dev/hda1: reparação / verificar a integridade do sistema de arquivo ext2 no disco hda1.
fdformat -n /dev/fd0: reparação / verificar a integridade do sistema de arquivo ext3 no disco hda1.
mkswap /dev/hda3: reparação / verificar a integridade do sistema de arquivo ext3 no disco hda1.

Backups

dump -0aj -f /tmp/home0.bak /home: Fazer um completo salvar do directório ‘/Home’.
dump -1aj -f /tmp/home0.bak /home: Fazer um Backup incremental do diretório ‘ /home’.
restore -if /tmp/home0.bak: Restaurando um save interativamente.
rsync -rogpav –delete /home /tmp: Sincronização entre diretórios.
rsync -rogpav -e ssh –delete /home ip_address: rsync através do túnel SSH.
rsync -az -e ssh –delete ip_addr: Sincronizar um diretório local com um diretório remoto via ssh e compressão.
rsync -az -e ssh –delete /home/local ip_addr: sincronizar um diretório remoto em um diretório local através de ssh e compressão.
dd bs=1M if=/dev/hda gzip ssh user@ip_addr ‘dd of=hda.gz’: fazer um salvamento em um disco rígido em um host remoto através de ssh.
dd if=/dev/sda of=/tmp/file1: Salve o conteúdo de um disco rígido para um arquivo. (Neste caso o disco rígido é “sda” e o arquivo “file1”).
tar -Puf backup.tar /home/user: Salvar os diretórios/etc e a raiz (excluindo o conteúdo do subdiretório/root/dir1 /) em um arquivo compactado, cujo nome inclui a data e hora atual.
( cd /tmp/local/ && tar c . ) ssh -C user@ip_addr ‘cd /home/share/ && tar x -p’: Copie o conteúdo de um diretório em um diretório remoto através de ssh.
( tar c /home ) ssh -C user@ip_addr ‘cd /home/backup-home && tar x -p’: copiar um diretório local em um diretório remoto através de ssh.
tar cf – . (cd /tmp/backup ; tar xf – ): cópia local preservando licenças e links de um diretório para outro.
find /home/user1 -name ‘*.txt’ xargs cp -av –target-directory=/home/backup/ –parents:
find /var/log -name ‘*.log’ tar cv –files-from=-
dd if=/dev/hda of=/dev/fd0 bs=512 count=1: Faça uma cópia do MRB (Master Boot Record) para um disquete.
dd if=/dev/fd0 of=/dev/hda bs=512 count=1: Restaurar a cópia da (MBR Master Boot Record) gravada no disquete.

CD-ROM

cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force: limpar ou apagar um cd regravável.
mkisofs /dev/cdrom > cd.iso: Crie uma imagem iso do CD-ROM no disco.
mkisofs /dev/cdrom gzip > cd_iso.gz:
mkisofs -J -allow-leading-dots -R -V “Label CD” -iso-level 4 -o ./cd.iso data_cd: Crie uma imagem iso de um diretório.
cdrecord -v dev=/dev/cdrom cd.iso: grave uma imagem iso.
gzip -dc cd_iso.gz cdrecord dev=/dev/cdrom –: grave uma imagem iso comprimida.
mount -o loop cd.iso /mnt/iso: Monte uma imagem iso.
cd-paranoia -B: Tire músicas de um cd para arquivos wav.
cd-paranoia – ”-3”: Pegue as 3 primeiras músicas de um cd para arquivos wav.
cdrecord –scanbus: varredura de ônibus para identificar o canal
dd if=/dev/hdc md5sum:

Redes (LAN e Wi-Fi)

ifconfig eth0: Mostre a configuração de uma placa de rede Ethernet.
ifup eth0: Ative uma interface ‘eth0’.
ifdown eth0: Desabilite uma interface ‘eth0’.
ifconfig eth0 192.168.1.1 netmask 255.255.255.0: Configure um endereço IP.
ifconfig eth0 promisc: Configure ‘eth0’ modo comum para obter pacotes (sniffing).
dhclient eth0: Ative a interface ‘eth0’ em modo dhcp.
route -n: Mostre tabela de rota.
route add -net 0/0 gw IP_Gateway: Configure a entrada padrão.
route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1: Configure uma rota estática para encontrar a rede, ‘192.168.0.0/16’.
route del 0/0 gw IP_gateway: Remova a rota estática.
echo “1” > /proc/sys/net/ipv4/ip_forward: Ative o ip de rota.
hostname: Exiba o nome do host do sistema.
host example.com: Encontre o nome do host para resolver o nome de um IP (1).
nslookup example.com: Encontre o nome do host para resolver o nome de um ip e vice-versa (2).
ip link show: Mostra o status de todas as interfaces.
mii-tool eth0: Mostar o status de ‘eth0’ link.
ethtool eth0: Exiba estatísticas da placa de rede ‘eth0’.
netstat -tup: Mostre todas as conexões de rede ativa e seu PID.
netstat -tupl: Mostre todos os ouvinte de rede de serviços sobre o sistema e seu PID.
tcpdump tcp port 80: Mostre todo o tráfego HTTP.
iwlist scan: Mostre as redes sem fio.
iwconfig eth1: Mostre a configuração de uma placa de rede sem fio.
whois example.com: Pesquisa Base de dados Whois .
Redes Microsoft Windows (SAMBA)
nbtscan ip_addr: resolução de nome de rede do BIOS.
nmblookup -A ip_addr: resolução de nome de rede do BIOS.
smbclient -L ip_addr/hostname: Visualizar compartilhamentos remotos de um host windows.

Firewall (iptables)

iptables -t filter -L: Mostre todas as correntes na tabela de filtro.
iptables -t nat -L: Mostre todas as correntes da tabela nat.
iptables -t filter -F: Limpe todas as regras da tabela de filtro.
iptables -t nat -F: Limpe todas as regras da tabela nat.
iptables -t filter -X: exclua qualquer cadeia criados pelo usuário.
iptables -t filter -A INPUT -p tcp –dport telnet -j ACCEPT: permita conexões telnet de entrar.
i ptables -t filter -A OUTPUT -p tcp –dport http -j DROP:
iptables -t filter -A FORWARD -p tcp –dport pop3 -j ACCEPT: permitindo conexões POP para uma cadeia de frente.
iptables -t filter -A INPUT -j LOG –log-prefix “DROP INPUT”: registrando uma sequência de entrada.
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE: Configure uma PAT (conversão de endereços de porta) na eth0, escondendo os pacotes de saída de coação.
iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp –dport 22 -j DNAT –to-destination 10.0.0.2

Monitoramento e depuração

top: Exiba tarefas linux usando mais cpu.
ps -eafw: Exibe as tarefas do Linux.
ps -e -o pid,args –forest: Exibe as tarefas do Linux de forma hierárquica.
pstree: Mostre uma árvore de processos do sistema.
kill -9 ID_Processo: forçar o encerramento de um processo e terminá-lo.
kill -1 ID_Processo: força um processo para recarregar a configuração.
lsof -p $$: Exiba uma lista de arquivos abertos por processos.
lsof /home/user1: Exibe uma lista de arquivos abertos em um determinado caminho do sistema.
strace -c ls >/dev/null: Mostre o sistema de chamadas feitas e recebidas por um processo.
strace -f -e open ls >/dev/null: Visualizar chamadas para a biblioteca.
watch -n1 ‘cat /proc/interrupts’: Mostre interrupções em tempo real.
last reboot: Reinicialização de história do programa.
lsmod: Exiba o kernel carregado.
free -m: Exibe o status da RAM em megabytes.
smartctl -A /dev/hda: Monitore a confiabilidade de um disco rígido através do SMART.
smartctl -i /dev/hda: Verifique se o SMART está habilitado em um disco rígido.
tail /var/log/dmesg: Mostre os eventos inerentes no processo de carregar o kernel.
tail /var/log/messages: Mostre eventos de sistema.

Dicas e Comandos úteis

apropos …keyword: exibir uma lista de comandos que pertencem às palavras-chave de um programa; Eles são úteis quando você sabe o que faz o seu programa, mas sconoces o nome do comando.
man ping: exibir as páginas de manual on-line; por exemplo, um comando ping, use a opção ‘-k’ para encontrar qualquer comandos relacionados.
whatis …keyword: Exibe a descrição do que o programa faz.
mkbootdisk –device /dev/fd0 uname -r: Crie um disquete boteable.
gpg -c file1: codifica um arquivo com o guarda de segurança do GNU.
gpg file1.gpg: decodificar um arquivo com o guarda de segurança do GNInformações do sistema LinuxU.
wget -r example.com: Baixe um site inteiro.
wget -c example.com/file.iso: Baixe um arquivo com a possibilidade de parar o download e retomar mais tarde.
echo ‘wget -c example.com/files.iso‘ at 09: 00
ldd /usr/bin/ssh: Mostrar compartilhada bibliotecas exigirem pelo ssh programa.
alias hh=’history’: Coloque um alias para um comando – hh = história.
chsh: Mude o Shell de comando.
chsh –list-shells: É um comando adequado para descobrir se você tem controle remoto em outro terminal.
clear: Limpa a tela do terminal.
umcomando > archivodesaida.txt 2>&1: executa um comando e redirecionar saída para um arquivo, combinando neste ambos STDOUT e STDERR.
umcomando archivodesaida.txt 2> archivodeerros.txt: Executar um comando, você redirecionar a saída (STDOUT) para um arquivo e os erros (STDERR) para outro.
umcomando tee arquivodesaida.txt: executa um comando, exibe a saída na tela e, simultaneamente, grava-lo em um arquivo.

O que é SSH?

O QUE É O OPENSSH?

Lançado em 1999 pela equipe Open BSD, o OpenSSH é um conjunto de ferramentas livres e de código aberto, usadas para fornecer segurança e encriptar a comunicação entre computadores numa rede.

Todos os programas que fazem parte do OpenSSH têm em comum o fato de utilizarem o protocolo SSH. Essa variedade de utilitários específicos faz dele um software completo e com recursos avançados — não por acaso, o OpenSSH é amplamente utilizado por administradores de sistemas.

Por que essa ferramenta é tão relevante aos que trabalham com servidores? Começarei pelo fator segurança: o protocolo SSH é fundamental no ambiente virtual em que informações circulam a todo o momento. Se considerarmos a disseminação de Ransomware, a criticidade é ainda maior.

A sua função é blindar os dados enquanto eles são transferidos entre host e client (e vice-versa). Ou seja, o SSH assegura que nenhum invasor obtenha acesso ou mesmo interfira em uma transmissão de pacotes. Você consegue imaginar o caos numa rede corporativa desprovida dessa segurança?

O SSH é uma ferramenta de acesso remoto bastante poderosa, que permite acessar máquinas Linux remotamente de forma segura. Ele se baseia no uso de criptografia assimétrica para criar um túnel seguro onde são transmitidos os dados, garantindo a segurança mesmo em casos onde a transmissão pode ser interceptada, como no caso de uma rede wireless sem encriptação.

As chaves assimétricas são um sistema muito interessante, onde temos um par de chaves em vez de uma única chave simétrica. Uma (a chave pública), permite apenas encriptar dados, enquanto a segunda (a chave privada) permite desencriptar as informações embaralhadas pela primeira. O grande segredo é que qualquer informação embaralhada usando a chave pública pode ser recuperada apenas usando a chave privada correspondente. Como o nome sugere, a chave pública pode ser distribuída livremente, pois serve apenas para gerar as mensagens encriptadas, sem permitir lê-las posteriormente. Quando você se conecta a um servidor SSH, seu micro e o servidor trocam suas respectivas chaves públicas, permitindo que um envie informações para o outro de forma segura.

Instalar o servidor SSH é bastante simples, basta instalar o pacote “openssh-server” usando o gerenciador de pacotes. No Ubuntu, por exemplo, você usaria:

$ sudo apt-get install openssh-server openssh-client

A partir daí, você pode acessar a máquina remotamente a partir de outras máquinas Linux usando o comando “ssh”, seguido do login usuário (na máquina remota) e o endereço, como em:

$ ssh gdh@192.168.1.192

Da primeira vez que fizer a conexão, ele exibe um aviso, confirmando a identificação do servidor. Depois de fornecer a senha a conexão é efetuada e você obtém um prompt de comando da máquina remota. A partir daí, todos os comandos são executados na outra máquina. A sua passa apenas a exibir a saída de texto, funcionando como um terminal remoto.

COMO CONFIGURAR O FIREWALL UFW PARA LIBERAR O OPENSSH

O firewall que acompanha o Ubuntu por padrão é o UFW (Uncomplicated Firewall). Como o nome já diz, o UFW se caracteriza pela facilidade de uso, mas sem deixar de lado o aspecto funcional — visto que o software deriva do poderoso IPTables.

Então, o procedimento é simples. Digite um dos comandos abaixo:

sudo ufw allow ssh

ou

sudo ufw allow 22/tcp

Crontab

O crontab, é um programa do Unix que edita o arquivo onde são especificados os comandos a serem executados e a hora e dia de execução pelo cron, um serviço que executa comandos agendados nos sistemas operacionais do tipo Unix (como o Linux ou o MINIX, por exemplo). O cron se encarregará de verificar a hora e determinar se existe ou não algum programa a ser rodado. Caso exista ele o rodará na hora e data solicitada.

Antes de explorar o Crontab, é necessário apresentar a você o Cron. Trata-se de um programa do Linux executável em segundo plano (ou seja, um daemon), capaz de executar tarefas automaticamente.

Como o serviço funciona? Quando iniciado, o Cron faz uma varredura (a cada minuto) pelos diretórios que possam conter arquivos nos quais estão guardados os scripts agendados pelo usuário.

O propósito da examinação não é somente o de encontrar tarefas novas, mas, principalmente, de saber se há alguma atividade programada para o momento.

Vale destacar, também, que o Cron é um programa de nível multiusuário. Isso significa que cada usuário pode agendar suas tarefas individualmente, graças ao próprio arquivo onde são armazenados os scripts: o Crontab.

Sim, o Crontab é uma ferramenta para gerar arquivos a serem lidos pelo Cron. Como o próprio nome diz, a estrutura do Crontab consiste em tabelas. Nessas tabelas são preenchidas todas as informações referentes à tarefa:

  • minutos
  • horas
  • dias do mês
  • mês;
  • dias da semana;
  • usuário; e
  • comando.

Parâmetros

-l usuário lista as tarefas agendadas para o usuário
-e usuário edita o agendador
-r usuário apaga o arquivo do usuário
-c diretório especifica um diretório para o Crontab
-u usuário especifica o nome do usuário cujo arquivo de crontab está sendo criado ou alterado. Sua execução se dá como serviço, logo existem as opções: start, stop, restart e status

ex: service crond 'option'

Sintaxe:

Dentro do arquivo que se abre após o comando existe uma sintaxe conforme a seguir:

mm hh dd MM ss script

onde

mm minuto(0-59)
hh hora(0-23)
dd dia(1-31)
MM mes(1-12)
ss dia_da_semana(0-7)
script comando a ser executado.
Obs 1: Em dia_da_Semana, 0 refere-se a domingo; e 6, ao sábado. O número 7 também refere-se ao domingo. No caso de dia da semana funciona também as três primeiras letras (em inglês) do dia da semana (SUN,MON,TUE,WED,THU,FRI,SAT)
Obs 2: Em qualquer posição pode-se usar o * (asterisco) quando não se importar com o campo em questão.
Obs 3: Pode-se utilizar intervalos nesses campos. O caracter para intervalo é o - (hifen).
Obs 4: Pode-se utilizar lista de valores nesses campos. O caracter para a lista é a , (vírgula).
Obs 5: Qualquer texto colocado após o programa que será executado será considerado comentário e não será interpretado pelo cron

Seguem alguns exemplos:

Todo dia de hora em hora (hora cheia)
  00 * * * * /bin/script
De cinco em cinco minutos todos os dias (note a divisão por 5 do intervalo 00-59)
  00-59/5 * * * * /bin/script
Nas seguintes horas: 10, 12, 16, 18, 22 aos 15 minutos da hora
  15 10,12,16,18,22 * * * /bin/script
Nos primeiros cinco dias do mês às 19:25
  25 19 01-05 * * /bin/script
De segunda a sexta ao meio-dia e a meia-noite
  00 00,12 * * 1-5 /bin/script
Script rodar Segunda,Quarta,Sexta às 2 horas
   0 2 * * mon,wed,fri /bin/script
Script para rodar Terça,Quinta às 3 horas
   0 3 * * tue,thu /bin/script
Script para ser executado minuto a minuto
   */1 * * * * /bin/script

Criando tarefas/rotinas agendadas

Como já ouvimos dizer que uma imagem vale mais que mil palavras, segue uma imagem da estrutura para criar o agendamento de uma tarefa, chamando aqui tarefa qualquer script, aplicação ou rotina direta no crontab.

Um exemplo de agendamento de um script baseado na informação da imagem acima seria.

36 2 * * 7 root /usr/local/sbin/backup.sh

Uma tarefa no crontab o correto é ler da esquerda para a direita sendo a primeira opção o minuto(0-59) e ae vai a sequencia hora(0-23), dia(1-31), mês(1-12), dia da semana(0-7), usuário e por ultimo o comando ou script a ser executado.

Quando se usa o “*” é mesma coisa que dizer qualquer dia e qualquer mês ou mesmo parâmetros em branco, então para executar o script backup.sh podemos dizer que será executado todos os domingos as 2:36 da manhã, correto? Sim!

E se eu quiser executar o backup do banco de dados todos os dias a meia-noite?

00 00 * * * root /usr/local/sbin/backup.sh

Expressões especiais

Para facilitar algumas rotinas, existem alguns comandos especiais para adicionar nos agendamentos, vamos ver a tabela abaixo:

@reboot Executa ao iniciar
@yearly Executa uma vez ao ano, “0 0 1 1 *”
@annually Igual ao @yearly
@monthly Executa uma vez ao mês, “0 0 1 * *”
@weekly Executa uma vez na semana, “0 0 * * 0”
@daily Executa uma vez ao dia, “0 0 * * *”
@midnight Igual ao @daily
@hourly Executa a cada hora, “0 * * * *”

Compartilhar pasta na maquina virtual

sudo mkdir /mnt/nome_pasta sudo mount -t vboxsf nome_pasta_compartilhada /mnt/nome_pasta

Esteganografia

Usando esteganografia para esconder informações em imagens no Ubuntu

Em outras palavras, esteganografia é o ramo particular da criptologia que consiste em fazer com que uma forma de escrita seja camuflada em outra a fim de mascarar o seu verdadeiro sentido.

Steghide é um programa de esteganografia capaz de ocultar dados em vários tipos de arquivos de imagem e áudio, sem alterar respectivamente sua cor, ou aspecto, tornando a incorporação resistente contra testes estatísticos de primeira ordem.

Os formatos de arquivo suportados são JPEG, BMP, WAV e AU e os arquivos com dados secretos não contém restrições de formato.

Instalando

O primeiro passo é atualizar seu repositório use o seguinte comando:

sudo apt-get update

Em seguida Instale o programa com o comando

sudo apt-get install steghide

Para verificar todos os parâmetros e principais recursos do programa digitando:


steghide --help

Parâmetros do Steghide

Você pode consultar a opção "help" do Steghide para ver todas as opções, mas vou descrever aqui as opções utilizadas nos exemplos anteriores:

-ef: Indica o arquivo de imagem onde a mensagem será imbutida
-cf: Indica o arquivo que será camuflado
-sf: Indica o nome do novo arquivo criado como uma imagem esteganografada, caso você não especifique um novo arquivo com este parâmetro, o Steghide vai ocultar os dados na própria imagem original.
-xf: Este parâmetro indica a criação de um novo arquivo onde os dados extraídos serão jogados, usamos ele no comando de extração.

Uma vez instalado, para inserir um arquivo de imagem em JPEG e BMP ou arquivos de áudio WAV ou AU basta usar o comando:

steghide embed -cf arquivo.jpeg -ef dados.txt

Será requisitado sobre uma senha usada para extrair os dados de dentro do arquivo.

Quando for preciso extrair o arquivo de texto de dentro da imagem ou arquivo de áudio, basta digitar o comando:

steghide extract -sf arquivo.jpeg

Uma vez dado o comando, é preciso digitar a senha e o arquivo de texto será extraído, caso queira obter informações do arquivo recebido, antes de extraí-lo use o comando:

steghide info arquivo.jpeg

Depois de imprimir algumas informações gerais sobre o arquivo stego (formato,Capacidade) você será perguntado se steghide deve tentar obter informações sobre os dados incorporados.

Tar

Tar significa tape archive. Na maioria dos casos em que o processo é realizado com o comando Tar, é gerado um arquivo com extensão .tar. Para maior compactação é utilizado o gzip, gerando um arquivo .tar.gz.

Com o Tar, você pode compactar e descompactar arquivos. Ele possui diversas opções, mas vamos focar nas mais importantes.

Vantagens do Tar

  • No que se trata de compactação, o Tar possui uma proporção eficiente de 50%.
  • Reduz drasticamente o tamanho de arquivos e diretórios.
  • O tar não altera características dos arquivos e diretórios. As permissões e outros aspectos permanecem intactos durante a compactação.
  • O tar está disponível na grande maioria das versões do Linux.
  • Compactação e descompactação rápidas.
  • Fácil de usar.

Mesmo com todos os benefícios, em que situações devo usar o Tar?

  • Se você está trabalhando em sistemas baseados em Linux e precisa realizar a compactação de arquivos.
  • Para transferir uma grande coleção de arquivos e pastas de um servidor para outro.
  • Para criar um backup do seu site, dados ou outros arquivos.
  • Para reduzir o uso de espaço no seu sistema.
  • Para fazer upload e download de diretórios.

Principais funções

-c (criar um arquivo);
-C (alterar diretório destino antes de qualquer procedimento);
-z (comprimir o arquivo com gzip);
-x (a letra corresponde a extract, ou seja, extração de arquivos);
-r (anexa itens ao final do arquivo tar.gz);
-t (lista os conteúdos de um arquivo tar.gz);
-u (anexa somente os itens novos e os copiam para o arquivo tar.gz);
-v (exibir progresso no terminal enquanto cria o arquivo, ou seja, modo verbose);
-f (permite a especificação do nome para o arquivo);
–add (adiciona um item ao arquivo tar.gz);
–delete (remove itens de um arquivo tar.gz).

DPKG

O comando Linux dpkg, trabalha em uma camada mais baixa do que os utilitários APT. O dpkg é na verdade é o responsável pelo gerenciamento de pacotes no LINUX em distribuições baseadas em Debian, como por exemplo Ubuntu e Kali Linux.

Para utilizar o dpkg para instalar ou remover software do seu sistema Linux, só poderá ser executado com o privilégios de root.

Cat

O comando cat do Linux é um dos mais úteis para se aprender. Seu nome é uma derivação da palavra concatenate (concatenar) e permite que você crie, una e exiba arquivos no formato padrão de tela ou em outro arquivo, entre outras coisas.

Ele não requer instalação uma vez que vem pré-instalado com o pacote coreutils em qualquer sistema baseado em Debian ou Red Hat.

Sintaxe:

cat [OPÇÃO] [ARQUIVO]

Criar
O comando cat permite a criação de novos arquivos de texto de forma rápida. Para isso utilize o operador de redirecionamento > para redirecionar o texto no arquivo.

cat > arquivo.txt

Visualizar
Este é um dos usos mais básicos do comando. Sem nenhuma opção, o comando irá ler o conteúdo do arquivo e exibi-lo no terminal.

cat arquivo.txt

Para evitar ter que rolar por arquivos muito grandes, você pode adicionar | more mostrar o resultado com as opções “mostrar mais” ou “mostrar menos”:

cat arquivo.txt | more

Redirecionar
Ao invés de exibir os conteúdos no console, você pode redirecionar o resultado para outro arquivo com a opção >. O comando fica assim:

cat fonte.txt > destino.txt

Para anexar os conteúdos do arquivo de destino, use a opção >> com o comando cat Linux:

cat fonte.txt >> destino.txt

Telnet

O Telnet é um protocolo que permite emular (traduzir/adaptar) um terminal à distância, isto é, que permite executar comandos escritos no teclado de um computador remoto. O Telnet é um aplicativo com o protocolo Telnet, que funciona em um ambiente cliente/servidor, ou seja, o computador remoto é configurado no servidor e aguarda que outro computador venha lhe solicitar um serviço. Como o computador distante envia os dados, o usuário tem a impressão de trabalhar diretamente nele. No Unix, o serviço é fornecido por um daemon, uma pequena tarefa que funciona em plano de fundo. O daemon do Telnet é chamado de Telnetd. Um daemon é um programa que se executa como um processo em plano de fundo no computador, sem ser controlado pelo usuário.

O Telnet é um protocolo, ou seja, um conjunto de regras e procedimentos definidos para padronizar a comunicação no Telnet. Ele tornou-se compatível rapidamente (adaptado a partir das especificações do protocolo) com várias plataformas.

O Telnet é fornecido como padrão em diversas plataformas, entre as quais, o Unix, o Windows 95, o Windows NT, o Linux, entre outras. De um modo geral, o comando para iniciar uma sessão Telnet é telnet nome_do_servidor. O nome do servidor representa obviamente o nome da máquina remota à qual se quer conectar. É possível dar o seu endereço IP telnet 125.64.124.77, por exemplo. Também podemos determinar a porta a ser utilizada enviando o endereço IP ou o nome do servidor pelo número de porta, tipo telnet 125.64.124.77 80.

Comando Descrição
close Termina a sessão Telnet
display Mostra na tela as configurações da conexão (tipo de terminal, porta)
ambiente Permite definir as variáveis de ambiente do sistema operacional
logout Permite desconectar-se
modo Alterna entre os modos de transferência ASCII (transferência de um arquivo em modo de texto) e BINARY (transferência de um arquivo binário)
open Permite lançar outra conexão a partir da conexão atual
quit Sai do aplicativo Telnet
set Altera as configurações IP da conexão
unset Carrega as configurações de conexão padrão
login usuário :: permite o acesso de usuários devidamente credenciados a máquina especificada em telnet
logout :: desconexão entre o usuário e a máquina remota
dir :: exibe o diretório da máquina conectada via telnet
pwd :: exibe o diretório atual
cd :: significa change directory - mudar de diretório
ftp :: para transferência de arquivos
? Ajuda
close Termina a sessão Telnet
display Mostra na tela as configurações da conexão (tipo de terminal, porta)
ambiente Permite definir as variáveis de ambiente do sistema operacional
modo Alterna entre os modos de transferência ASCII (transferência de um arquivo em modo de texto) e BINARY (transferência de um arquivo binário)
open Permite lançar outra conexão a partir da conexão atual
quit Sai do aplicativo Telnet
set Altera as configurações IP da conexão
unset Carrega as configurações de conexão padrão

Para acessar

Especificar a máquina remota

telnet nome_da_máquina  

ou

telnet <IP>

Para FTP:

Para fazer a conexão a máquina remota

open nome_da_máquina  # Para fazer a conexão a máquina remota

ou

 open <IP>

Kill

Dentro do Linux, as tarefas são chamadas de processos, e cada um deles possui um número de identificação (ID) único. Para encerrar (matar) um processo utilizamos o comando kill. Neste tutorial vamos ensinar como matar processo Linux e melhorar o gerenciamento de seu VPS.

Listamos alguns exemplos em que o comando kill pode ser útil:

  • Para interromper processos automatizados.
  • Para interromper um processo que foi iniciado por acidente.
  • Para interromper um processo que está utilizando muita memória.
  • Para forçar a parada de qualquer processo em execução no Linux.
  • Para interromper um processo sendo executado em segundo plano.

Além de interromper um processo, o comando kill ainda oferece outros recursos. Por exemplo, enviar um sinal. Por padrão, é utilizado o sinal TERM para encerrar o processo.

Como Exibir o ID do Processo no Linux

O comando kill permite que você encerre um processo utilizando seu ID específico, também conhecido como pid. Para mostrar o pid no Linux, execute o comando:

ps

Este comando irá exibir todos os processos disponíveis com um pid. Para criar uma lista mais específica, adicione o comando grep:

ps -ux | grep java

Como Exibir Todos os Sinais do Comando Kill

Existem múltiplos sinais disponíveis no Linux que podem ser utilizados para interromper, encerrar ou pausar processos. O comando pode ser usado como mostrado abaixo:

kill -l

Usar o Comando Kill com um PID

Para matar um processo específico com um PID, utilize o seguinte comando:

kill 63772

Neste caso, o número 63772 representa o pid do processo que queremos encerrar. Como nenhum sinal foi especificado, será o sinal SIGTERM. Pode ser que o comando não funcione. Nesses casos é preciso matar o processo de maneira forçada:

kill [sinal ou opção] pid

Abaixo temos um exemplo de comando para forçar o encerramento do processo:

kill SIGKILL 63772

Você também pode utilizar o número do sinal:

kill -9 63772

Não esqueça de substituir o 63772 pelo pid do processo a ser encerrado.

Como Matar Múltiplos Processos

Com o mesmo comando, você pode matar vários processos. A sintaxe fica:

kill -9 pid1 pid2 pid3

Por exemplo:

kill -9 63772 45116 23465

Sed

O comando SED no Linux é uma ferramenta poderosa que ajuda a executar tarefas de uso geral. Entre elas: analisar e transformar textos. Hoje em dia, o SED é suportado nos principais sistemas operacionais.

A sintaxe e vários recursos úteis do SED são, em sua maioria, emprestados do editor ed. O mecanismo em si inclui fluxos de entrada padrões, bem como de arquivos de texto. O script base da sintaxe do SED parece um pouco difícil no começo. No entanto, muitas tarefas complexas podem ser solucionadas com apenas algumas linhas de script SED.

Instalação do SED

Nos sistemas baseados em Linux, o SED é instalado por padrão. Lembre-se, antes de começar, você deve acessar seu VPS com SSH. Confira nosso tutorial PuTTY se você estiver com problemas.

O comando which pode ser usado para verificar se o sistema possui SED ou não. No GNU/Linux Debian, pode-se instalar o SED usando o apt package manager da seguinte forma:

[user]: ~$ sudo apt-get install sed

Para garantir que o SED esteja instalado corretamente, o seguinte comando é utilizado:

[user]: ~$ sed --version

Samba

Samba é um software executado em servidores, responsável por estabelecer interações com redes constituídas por computadores operados em Windows possibilitando, assim, que todos os seus recursos sejam gerenciados e compartilhados.

Dentre tantas funcionalidades presentes no servidor Samba, podemos destacar:

  • compartilhamento de arquivos, impressoras, diretórios, entre outros, com máquinas que rodam o Windows;
  • controle de acesso e privilégios;
  • resolução de nomes (DNS);
  • configurações a partir de ambientes remotos.
  • Vale ressaltar que os recursos do Samba são bastante completos. Não por acaso, muitas corporações que possuem equipes de TI dedicadas usufruem dos recursos do Samba.

Vantagem

Como a principal função do servidor Samba é simular um servidor Windows, mais precisamente as distribuições do Windows Server, inevitavelmente o custo-benefício entra em jogo a favor do Samba.

Levando em consideração os bugs, que são muito menos recorrentes no Samba, a estabilidade e a segurança — visto que o software é instalado em um sistema GNU/Linux —, o sistema da Microsoft fica para trás.
Samba é um software executado em servidores, responsável por estabelecer interações com redes constituídas por computadores operados em Windows possibilitando, assim, que todos os seus recursos sejam gerenciados e compartilhados.

Remina

O Remmina é um cliente de desktop remoto escrito em GTK +, com o objetivo de ser útil para administradores de sistemas e viajantes, que precisam trabalhar com muitos computadores remotos na frente de monitores grandes ou minúsculos netbooks. O Remmina suporta vários protocolos de rede em uma interface de usuário integrada e consistente. Atualmente, há suporte para RDP, VNC, SPICE, NX, XDMCP, SSH e EXEC.

Principais características do Remmina:

  • Permite manter uma lista de perfis de conexão, organizados por grupos;
  • Permite fazer conexões rápidas colocando diretamente o endereço do servidor;
  • Os desktops remotos com resoluções mais elevadas são roláveis​/escaláveis ​​na janela e no modo de tela cheia;
  • Modo de tela cheia View-port: a área de trabalho remota rola automaticamente quando o mouse se move sobre a borda da tela;
  • Barra de ferramentas flutuante no modo de tela cheia, permite alternar entre os modos, ativar o teclado, minimizar, etc;
  • Interface com guias, opcionalmente gerenciada por grupos;
  • Ícone da bandeja, permite acessar rapidamente perfis de conexão configurados.

Para instalação:

Abra o Terminal no Ubuntu ou Linux Mint, você pode abrir normalmente via menu ou usando o atalho Ctrl + ALT + T, o atalho deve funcionar em alguns ambientes:

sudo add-apt-repository ppa:remmina-ppa-team/remmina-next
sudo apt-get update
sudo apt-get install remmina remmina-plugin-rdp libfreerdp-plugins-standard
tags: linux apostila