fbpx
Whatsapp (31) 3069-8315
linuxdicaninja 1 scaled
Comando mkswap no Linux (cria swap) [Guia Básico]

O comando mkswap no Linux prepara o dispositivo para ser usado como área de memória virtual (swap). 

O argumento dispositivo geralmente será uma partição de disco (algo como /dev/sdb7), mas também pode ser um arquivo.

Não é exatamente necessário que a partição seja do tipo Swap – Tipo 82 no fdisk – mas é bom que a partição seja do tipo 82.

Depois de criar o disco de swap com o comando mkswap, é necessário ativar com o comando “swapon” e colocar no /etc/fstab para que a partição seja usada como swap após o reinício do sistema.

Exemplo de uso:

# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old swap signature.
Setting up swapspace version 1, size = 2097148 KiB
no label, UUID=a873901e-5b33-4c78-84f5-e9eeadd9fba3

Depois de criada, a partição de swap pode ser ativada:

# swapon
NAME      TYPE      SIZE USED PRIO
/dev/dm-1 partition   2G 256K   -1

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Comando gdisk no Linux (particiona disco) [Guia Básico]

O comando gdisk no Linux é similar ao fdisk e permite manipular e criar partições. Ele foi especialmente criado para lidar com partições GPT.

Ele converte automaticamente o Master Boot Record (MBR) para o novo formato chamado Globally Unique Identifier Partition Table (GPT).

Este novo esquema de tabela de alocação de partições foi criado para funcionar com os novos firmwares das placas-mãe EFI e UEFI. O Windows XP 32- bit e versões anteriores do Windows não podem normalmente ler ou escrever em unidades formatadas com uma tabela de partição GUID, no entanto, Windows Vista e Windows 7 e Windows 8 possuem esta capacidade.

Este novo padrão utiliza o endereçamento de bloco lógico (LBA) no lugar do antigo endereçamento cilindro-cabeça-setor. Este sistema de endereçamento não possui a limitação de enquadrar o gerenciador de boot nos primeiros 1024 cilindros.

Os menus do gdisk, embora com mais opções, são bem similares ao do fdisk. As opções do gdisk são:

  • b Faz backup do GPT em um arquivo
  • c Muda o nome da partição
  • d Apaga uma partição
  • i Mostra informações detalhadas de uma partição
  • l Lista os tipos de partição
  • n Cria uma nova partição
  • o Cria uma tabela GUID partition table (GPT) vazia
  • p Mostra dados da partição
  • q Sai sem salvar
  • r Recuperação e transformação (para experts)
  • s Ordena as partições linux
  • t Muda o tipo de partição
  • v Verifica o disco
  • w Grava a tabela de partições
  • x Funcionalidades extras (para experts)
  • ? Imprime este menu

Neste exemplo foi criada uma partição do tipo GPT no disco /dev/xvdb. Se nada for digitado no prompt interativo, ele vai assumir as opções padrão:

# gdisk /dev/xvdb
GPT fdisk (gdisk) version 0.8.6
Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present
Found valid GPT with protective MBR; using GPT.
Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-16777182, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-16777182, default = 16777182) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/xvdb.
The operation has completed successfully.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Identificar Usuários no Linux [Guia Básico]

Saiba como identificar usuários no Linux, através dos comandos last, id, whoami, who e w, para saber quem se conectou, ou está conectado no sistema.

Comando last

O utilitário last, fornece as últimas conexões efetuadas no sistema e por qual usuário:

$ last
ec2-user pts/0        ip-10-8-0-6.ec2. Tue Apr 14 10:21   still logged in   
ec2-user pts/0        ip-10-8-0-6.ec2. Mon Apr 13 23:26 - 00:10  (00:43)    
ec2-user pts/5        ip-10-8-0-6.ec2. Sun Apr 12 15:52 - 01:50  (09:57)    
ec2-user pts/0        ip-10-8-0-6.ec2. Sun Apr 12 15:51 - 01:50  (09:59)    

Comando id

O comando id mostra qual é o usuário efetivo e qual é o usuário real no Linux.

Exemplo:

$ id
uid=1000(uiraribeiro) gid=1000(uiraribeiro) groups=1000(uiraribeiro),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),119(lpadmin),130(lxd),131(sambashare)

Observe que o usuário que está logado no Linux é o uiraribeiro, com User ID iqual a 1000. O comando também mostra todos os grupos que o usuário faz parte.

Com a opção “-un” o comando id mostra o User Name (login) do usuário:

$ id -un
uiraribeiro

Com a opção “-u” o id mostra o User ID do usuário.

[email protected]:~$ id -u
1000

O comando id também pode mostrar informações de um determinado usuário, quando o login for informado como parâmetro:

$ id arthur
uid=1001(arthur) gid=1001(arthur) groups=1001(arthur)

Este comando geralmente é útil para ser utilizado em scripts, onde se deseja pegar o login ou User Id do usuário.

Comando whoami

Este comando mostra qual é o login do usuário corrente. É o mesmo que o comando “id -un”.

$ whoami
uiraribeiro
$ id -un
uiraribeiro

Comando who

$ who

O utilitário who pode ser utilizado para mostrar quais são os usuários logados no sistema:

$ who
ec2-user pts/0        2015-04-14 10:21 (ip-10-8-0-6.ec2.internal)

Comando w

O utilitário w também fornece uma lista de quais usuários estão conectados, mas com outros detalhes:

$ w
 12:10:53 up 218 days, 22:52,  1 user,  load average: 0,00, 0,01, 0,05
USER     TTY      FROM              [email protected]   IDLE   JCPU   PCPU WHAT
ec2-user pts/0    ip-10-8-0-6.ec2. 10:21    5.00s  0.45s  0.00s w

O comando “w” exibe qual o comando ou programa os usuários estão executando no momento, bem como a média de uso de CPU em 1, 5 e 15 minutos.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Perfil de Usuários no Linux (profile) [Guia Básico]

Ajustando o Ambiente de Trabalho dos Usuários no Linux

Durante o processo de logon de um usuário, quando o shell bash inicia, ele executa o script /etc/profile. Este script pode ser customizado e diferente em cada distribuição Linux. Sua função é configurar algumas variáveis de ambiente e fazer a sintonia do sistema para os usuários.

Para ajustar o Perfil de Usuários no Linux, o bash lê a configuração de diversos arquivos. O conteúdo destes arquivos pode variar em cada distribuição, e nem sempre uma distribuição usa todos eles, mas a ideia geral permanece.

O Bash também procura pelo arquivo /etc/bash.bashrc que também tem uma função parecida com o profile, mas o bashrc é executado todas as vezes que o bash é executado.

Cada usuário também pode criar seus scripts de inicialização para serem executados durante o logon. Estes arquivos precisam estar localizados no diretório home dos usuários com os nomes:

  • .profile
  • .bash_profile
  • .bash_login
  • .bashrc
  • .bash_logout

O ponto “.” antes do nome do arquivo confere a ele o atributo de escondido, somente sendo listado com o comando “ls –lga”.

Arquivos de Perfil do Bash

O bash possibilita que as funções, variáveis e apelidos possam ser gravados em alguns arquivos para que possam ser carregados novamente quando o sistema for iniciado novamente, ou uma nova execução do bash for feita.

Os arquivos lidos pelo bash são:

/etc/profile

Arquivo global de configuração de Perfil de todos os usuários. Define variáveis globais e é executado durante o processo de autenticação do usuário. Este script também costuma carregar com o comando source os arquivos contidos no diretório /etc/profile.d.

/etc/profile.d

Este diretório contém um ou mais scripts que são carregados pelo /etc/profile.

$ ls -l /etc/profile.d
-rw-r--r-- 1 root root 1606 jul 31  2018 colorls.sh
-rw-r--r-- 1 root root 2703 ago  2  2018 lang.sh
-rw-r--r-- 1 root root  121 jul 31  2018 less.sh
-rw-r--r-- 1 root root  248 jul 17 14:46 vim.sh

/etc/bashrc ou /etc/bash.bashrc

Arquivo global de configuração de Perfil, que define variáveis importantes e é executado toda vez que o Bash é carregado. Em algumas distribuições aparece com o nome /etc/bashrc e em outras como /etc/bash.bashrc.

~/.bash_profile

Arquivo de Perfil individual de cada usuário que é executado logo imediatamente ao /etc/profile. Seu conteúdo é lido a cada execução do Bash e cada usuário tem o seu no diretório HOME.

~/.bash_login

Se o arquivo ~/.bash_profile não existir, ele é executado logo após o processo de logon. Cada usuário tem o seu;

~/.profile

Se os arquivos .bash_profile e .bash_login não existirem, ele é executado logo após o logon. Cada usuário tem o seu;

~/.bashrc

É executado automaticamente quando o processo Bash é iniciado. Cada usuário tem o seu;

~/.bash_logout

É executado durante o processo de logout;

Relembrando que o  “~/” indica o diretório HOME do usuário logado. 

Convém você olhar estes arquivos e analisar o seu conteúdo. Cada distribuição pode; variar o conteúdo destes scripts. Você pode até notar que um script chama o outro.

É muito importante saber a função e quando cada arquivo é executado. De maneira geral, guarde que:

  • Os arquivos que ficam no diretório /etc são globais, e valem para todos os usuários;
  • Os arquivos quem ficam no diretório HOME, são individuais para cada usuário;
  • Os arquivos que tem profile no nome, são carregados no processo de login, uma única vez;
  • Os arquivos que tem bash no nome são carregados toda vez que o Bash é executado.

 Outro detalhe importante é que estes arquivos são lidos e executados na ordem descrita acima: primeiro os Profiles, depois os Bash. Nem todas as distribuições fazem uso de todos esses arquivos.

A figura abaixo ilustra a ordem do processo de carga destes scripts:

login_pt Perfil de Usuários no Linux (profile) [Guia Básico]Ordem de leitura dos Scripts de Login

Observe que os nós em amarelo são scripts globais, que valem para todos os usuários. O scripts ~/.bashrc é carregado toda vez que o Bash é executado. E o script ~/.bash_logout toda vez que o Bash termina.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Comando groupdel no Linux (apaga um grupo) [Guia Básico]

O Comando groupdel no Linux apaga um grupo do sistema. Ele modifica os arquivos de contas do sistema, apagando todas as referências ao grupo. O grupo a ser apagado deve existir.

Deve-se manualmente checar os sistemas de arquivos para garantir que nenhum dos arquivos permanece com o  grupo  ou  com  a  sua identificação.

# groupdel contabilidade

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Comando groupadd no Linux (cria grupo) [Guia Básico]

O comando groupadd no Linux cria um grupo de usuários. Este comando grava informações nos arquivos /etc/group e /etc/gshadow.

As opções mais comuns são:

  • -f: Força a saída do comando como sucesso mesmo que o nome do grupo ou groupid já existam;
  • -g N: Atribui o número N ao Group ID;
  • -p SENHA: atribui uma senha à um grupo, de forma que um usuário deve saber a senha para ingressar em um grupo

Exemplos:

Para criar um grupo chamado contabilidade:

# groupadd contabilidade
# cat /etc/group|grep contabilidade
contabilidade:x:1006:

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Acesso Remoto ao Linux [Guia Básico]

O acesso remoto ao Linux no ambiente gráfico pode ser feito através de ferramentas e protocolos, tais como:

X11

O protocolo X11 é a forma de comunicação nativa entre o X.Org Server e aplicações X. 

Ele usa o TCP como protocolo de transporte, tipicamente entre a porta 6000 até 6063, iniciando na porta 6000, somado ao número do Display. 

O controle de acesso ao protocolo pode se dar através de firewall, restringindo o acesso as portas 6000-6063 somente à hosts permitidos, além do controle na aplicação com o comando xhost.

XDMCP

A arquitetura do X.Org é tão modular que permite que o Gerenciador de Janelas execute no mesmo host que o X Server, ou remotamente em outro host.

O protocolo XDMCP (acrônimo para X Display Manager Control Protocol) foi criado para formatar a comunicação entre o X Server e o X Window Display Manager.

Ele usa o protocolo de transporte UDP na porta 177 e é inseguro, pois não criptografa seu tráfego.

O XDMCP é análogo ao telnet e, portanto, compartilha os mesmos problemas de segurança, permitindo, por exemplo por meio de uma rede sem fio, que qualquer pessoa possa “ouvir” o tráfego e gravar facilmente as sequências de teclas digitadas.

VNC

VNC é um conjunto de aplicativos que podem ser usados para acesso remoto ao ambiente gráfico. Ele consiste de um servidor, que fica escutando na porta TCP 5900, e um VNC Cliente, capaz de conectar nesta num servidor executando o VNC Server.

Ele é bastante utilizado para acesso remoto, uma vez que é multiplataforma, permitindo acesso remoto em Windows, Mac OS, Linux, AIX, HP-UX e Solaris. 

Tão versátil, o cliente VNC pode ser executado na plataforma Java e em Mobile como nos dispositivos Apple iPhone, iPod touch, iPad e também no Google Android.

Sua autenticação é simples, através de uma senha configurada no VNC Servidor.

SPICE

O SPICE (acrônimo para Simple Protocol for Independent Computing Environments) é um sistema de exibição remota criado para ambientes virtuais que permite visualizar ambiente Desktop numa grande variedade de arquiteturas.

De todos os protocolos de conexão remota, o SPICE é o mais poderoso deles, pois fornece uma solução completa de acesso remoto a máquinas virtuais que permite reproduzir vídeos, gravar áudio, compartilhar dispositivos usb e compartilhar pastas sem complicações.

SPICE pode ser dividido em 4 componentes diferentes: protocoloclienteservidor e convidado:

  • O protocolo é a especificação na comunicação dos três outros componentes;
  • Um cliente é o visualizador remoto responsável por enviar dados e traduzir os dados da Máquina Virtual (VM) para que você possa interagir com ele;
  • O servidor SPICE é a biblioteca usada pelo hipervisor (Sistema Operacional Host), a fim de compartilhar a Máquina Virtual em Protocolo SPICE;
  • O convidado é todo o software que deve ser executado na Máquina Virtual, a fim de tornar SPICE totalmente funcional, como o driver QXL e SPICE VDAgent.

O SPICE é especialmente projetado para fornecer acesso remoto a máquinas virtuais com a experiência de uma máquina local.

RDP

O RDP (acrônimo para Remote Desktop Protocol ) é um protocolo multi-canal criado pela Microsoft para acesso remoto ao Desktop.

Existem clientes RDP para a maioria das versões do Windows, e também para o Linux.

O servidor RDP escuta por padrão na porta TCP 3389.

O FreeRDP é uma implementação do RDP sob os termos do software livre, estando licenciado pela Apache License. Seguindo as Open Specifications da Microsoft, o FreeRDP fornece uma aplicação cliente para conexões através do protocolo RDP à partir do Linux para Servidores Windows.

A implementação xrdp também provê o lado servidor do RDP para o Linux, aceitando conexões de uma variedade de clientes como FreeRDP, rdesktop e do Microsoft Desktop Client.

NX

O NX criado pela NoMachine é outro protocolo de compartilhamento de área de trabalho remota. Sua tecnologia na versão 3.5 era open source e disponível sob a licença GNU GPL2. No entanto, à partir da versão 4 tornou-se proprietário e fonte fechada.

Isso fez com que algumas variações de código aberto fossem implementadas, como o FreeNX e X2Go.

A tecnologia NX fornece tempo de resposta excelente, mesmo em conexões de baixa largura de banda, sendo mais rápido do que os produtos baseados em VNC.

O NX usam tunelamento OpenSSH com tráfego é criptografado, o que é ótimo para acesso remoto via Internet.

Além disso o NX suporta vários usuários simultâneos, compacta os dados X11 e emprega o uso de  cachê para proporcionar uma experiência de desktop remoto aprimorada.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled
Portas abertas no Linux [Guia Básico]

Parte do diagnóstico de rede, é verificar os serviços com portas abertas no Linux.

Como Verificar as Portas Abertas no Linux

Para verificar as portas em aberto com o netstat, as opções “-tunl” podem ser usadas:

  •  -t para TCP
  • -u para UDP
  • -n para não resolver nomes
  • -l para as portas abertas (listen)

Neste exemplo, o netstat lista as portas abertas TCP/UDP:

$ netstat -tunl
Active Internet connections (only servers)
Proto Local Address   Foreign Address
tcp    127.0.0.53:53   0.0.0.0:* 
tcp    0.0.0.0:22      0.0.0.0:*
tcp6   0 :::22           :::*  
udp    127.0.0.53:53   0.0.0.0:*

O netstat com a opção -p mostra os processos donos das portas. Para utilizar essa opção é preciso ser o root:

$ sudo netstat -tunlp
Active Internet connections (only servers)
Proto Local Address   State   PID/Program name    
tcp    127.0.0.53:53   LISTEN  24813/systemd-resol 
tcp    0.0.0.0:22      LISTEN  9857/sshd           
tcp6   :::22           LISTEN  9857/sshd           
udp    127.0.0.53:53      24813/systemd-resol 

O comando ss também pode mostrar as portas abertas com a opção idêntica:

# ss -tunelp
Netid  Local Address:Port  Peer Address:Port                                                                                  
udp    127.0.0.53%lo:53    0.0.0.0:*   ("systemd-resolve",pid=355)
udp    0.0.0.0:68          0.0.0.0:*   ("dhclient",pid=17984)
udp    0.0.0.0:5353        0.0.0.0:*   ("avahi-daemon",pid=27533)
tcp    0.0.0.0:22          0.0.0.0:*   ("sshd",pid=14825)

Comando lsof no Linux

Como tudo no Linux é um arquivo, também as conexões de rede podem ser visualizadas como um “arquivo em aberto”. O comando “lsof” pode ser usado neste contexto para ver os arquivos que correspondem a endereços de Internet.

A opção “-i” do lsof filtra os arquivos em aberto do tipo de endereços de Internet. É necessário executar o lsof como root:

$ sudo lsof -i
COMMAND     PID            USER   FD   TYPE  NODE NAME
sshd       9857            root    3u  IPv4  TCP *:ssh (LISTEN)
sshd       9857            root    4u  IPv6  TCP *:ssh (LISTEN)
systemd-r 24813 systemd-resolve   12u  IPv4  UDP localhost:domain 
systemd-r 24813 systemd-resolve   13u  IPv4  TCP localhost:domain (LISTEN)

Comando fuser no Linux

O comando “fuser” também pode ser usado para mostrar informações sobre uma determinada porta em aberto. Ele identifica os processos através dos arquivos ou sockets, retornando o PID dos processos:

$ sudo fuser 22/tcp
22/tcp:               9857 24313 24400

Para saber qual processo está usando determinado arquivo:

$ fuser -v /bin/bash
                     USER     PID ACCESS COMMAND
/usr/bin/bash:       ec2-user  16092 ...e. bash

Os comandos netstat, ss, lsof e fuser servem para ver as portas em aberto da máquina local.

Existe uma ferramenta chamada nmap que pode também descobrir as portas em aberto tanto da máquina local, quanto de máquinas remotas.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe