sábado, 29 de dezembro de 2018

pmount e udiscksctl para mountar e monitor Pen Drives

Não me lembro se publiquei algum artigo sobre o pmount para mountar pen-drives a partir da linha de comando.

Basicamente, a sintaxe é muito parecida com o comando mount.
A diferença é que não é necessário que o dispositivo que se deseja montar esteja no arquivo /etc/fstab, e no caso de desejar que um usuário normal o utilize o dispositivo, também não é necessário que esta opção também esteja especificada no referido arquivo.
Se o usuário para o qual deseja-se dar permissão estiver no grupo plugdev é o suficiente.

A sintaxe do comando pmount é:

$ pmount < dispositivo > < diretório em que quer montar o dispositivo>

Exemplo:
$ pmount /dev/sdb1 # Se não informado diretório, o dispositivo /dev/sdb1 será montado em /media/sdb1

Para desmountar, devemos apenas digitar:
$ pumount /media/sdb1 # Fora do diretório ou
$ pumount /dev/sdb1

Entretanto, quando inserimos o Pen Drive no computador, como saber em qual(is) arquivo(s) de dispositivo(s) a(s) partição(ões) será(ão) reconhecida(s)?

Antigamente, eu espetava o Pen Drive na entrada USB do computar, e ficava monitorando as mensagens do kernel com dmesg.
Porém, os usuários normais deixaram de ter a capacidade de fazer isto por questões de segurança (é possível flexibilizá-la, mas seria ilógico).

Outra solução é utilizar o udisks2. Ele já está instalado no Debian, porque os desktops mais modernos o utilizam para montar os pendrives.
Ele tem um programa em linha de comando chamado udisksclt, que permite tanto monitorar os Pen Drives espetados no computador via USB, como também montá-los.

Para monitorar, basta digitar:

$ udisksctl monitor # Espete o Pen Drive depois deste comando
Depois, aperte Ctrl+C para cancelar o monitoramentom e use o udisksctl ou o pmount já citado para montar a partição e/ou o dispositivo desejado.

Fonte: Manuais de udisks2 e pmount

sexta-feira, 3 de agosto de 2018

Redirecionamento de portas para acessar computador de rede interna (casa ou escritório) a partir de acesso externo, remotamente

Não sei porque demorei tanto para fazer um artigo sobre isso, mas enfim, estou fazendo agora.

Em geral, os provedores de acesso, ou os serviços de banda larga das mais variadas tecnologias (ADSL, Cabo, ATM etc) bloqueiam as portas 80, 22, 21, 25, e muitas outras portas baixas e conhecidas, e quanto a essas, não há nada a ser feito, a menos que tenha um plano de conexão empresarial, ou link direto com o backbone.

Além disso, o firewall do seu roteador, por segurança, bloqueia acesso para todas as demais portas.
Às vezes, entretanto, desejamos acessar um computador da nossa rede interna a partir de um computador externo conectado à Internet.
Para realizar esta tarefa, devemos:

1) Liberar uma porta (alta) no nosso roteador a partir da configuração do firewall
2) Especificar o endereço IP do computador desejado na rede interna
3) Especifiar a porta que computador da rede interna estará escutando no serviço por ele ofertado.

Deste modo, quando um computador externo procurar pelo IP do seu roteador na Internet solicitando o serviço da porta especificada (digamos, 20000), o roteador irá redirecionar a conexão para o computador da sua rede interna que está provendo o serviço na porta real que está sendo escutada (digamos, 21).

No OpenWRT, seguindo este link, vemos que precisamos configurar, o /etc/config/firewall, ou /etc/firewall.user, no caso de deixarmos as nossas configurações de usuário separadas das configurações do sistema.

Devemos incluir, em quaisquer dos dois arquivos, o seguinte trecho:
 
 config redirect                              
        option target 'DNAT'               
        option src 'wan'                      
        option dest 'lan'    
        option proto 'tcp udp'
        option src_dport '20000'  #porta que o roteador vai escutar     
        option dest_ip '192.168.1.171' #endereço do computador destino na rede interna
        option dest_port '21' #porta que o computador destino está escutando
        option name 'min' #pode ser qualquer nome
Depois, devemos reiniciar o firewall:

/etc/init.d/firewall restart

Para mais informações sobre redirecionamento de portas e configuração de firewall no OpenWRT, clique aqui.

domingo, 29 de abril de 2018

Redirecionamento com pipes para um programa a ser debugado no gdb

Com pipes, podemos colocar num arquivo uma série de parâmetros a serem processados por um programa, e redirecioná-lo como entrada para o programa.
Mas se chamarmos um gdb programa < arquivo, a entrada vai para o gdb, e não para o programa a ser debugado.

Para evitar isto, ao abrir o programa no gdb, podemos redirecionar o arquivo para o programa a ser debugado fazendo o redirecionamento como comando run:

(gdb) run < 3.in

Fonte: https://stackoverflow.com/questions/8422259/gdb-debugging-with-piped-input-not-arguments