Atalhos de teclado do Linux para ser muito mais produtivo!
Você sabe o que diferencia um usuário profissional de um usuário comum? Domínio sobre os atalhos de teclado.
Tudo bem! Isso não é a única coisa, mas é, sem dúvida, um fator.
Read MoreVocê sabe o que diferencia um usuário profissional de um usuário comum? Domínio sobre os atalhos de teclado.
Tudo bem! Isso não é a única coisa, mas é, sem dúvida, um fator.
Read MoreSe você começou a estudar sobre o sistema Linux recentemente, sem dúvidas deve ter se deparado com o “systemd”.
Mas, você sabe, exatamente, o que ele significa? Ou ainda, qual a diferença entre ele e o System V, também famoso no Linux?
Read MoreO 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.
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:
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.
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.
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)
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.
Este comando mostra qual é o login do usuário corrente. É o mesmo que o comando “id -un”.
$ whoami
uiraribeiro
$ id -un
uiraribeiro
$ 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)
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.
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:
O ponto “.” antes do nome do arquivo confere a ele o atributo de escondido, somente sendo listado com o comando “ls –lga”.
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:
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.
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
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.
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.
Se o arquivo ~/.bash_profile não existir, ele é executado logo após o processo de logon. Cada usuário tem o seu;
Se os arquivos .bash_profile e .bash_login não existirem, ele é executado logo após o logon. Cada usuário tem o seu;
É executado automaticamente quando o processo Bash é iniciado. Cada usuário tem o seu;
É 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:
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:
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.
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.
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:
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.
O acesso remoto ao Linux no ambiente gráfico pode ser feito através de ferramentas e protocolos, tais como:
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.
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 é 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.
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: protocolo, cliente, servidor e convidado:
O SPICE é especialmente projetado para fornecer acesso remoto a máquinas virtuais com a experiência de uma máquina local.
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.
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.
Parte do diagnóstico de rede, é verificar os serviços com portas abertas no Linux.
Para verificar as portas em aberto com o netstat, as opções “-tunl” podem ser usadas:
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)
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)
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.