Como desabilitar o automount no GNOME


Em algumas situações pode-se ter a necessidade de desabilitar a montagem automática de mídias removíveis, tais como pendrivers, HDs externos ou até mesmo unidades de CD/DVD-ROM no seu computador/servidor.

A principal motivação para desabilitar esta funcionalidade é a segurança da informação, ou para evitar que algum usuário abra esses dispositivos automaticamente alterando ou até mesmo sem o conhecimento instalar algum tipo de malware no computador que esteja utilizando.

Para desabilitar a montagem automática em máquinas Linux com o GNOME, podemos fazê-lo das seguintes formas:

Desabilitar por usuário

Desabilitar o automount graficamente

Caso possua o DConf-Editor instalado, você pode abrir a opção org > gnome > desktop > media-handling  e desmarcar as opções automount e automount-open no lado direito da janela.

Desabilitar o automount por linha de comando

Para desabilitar o automount por linha de comando, siga os seguintes passos:

  1. Abra um novo terminal
  2. Autentique com o usuário root utilizando o comando su –  e informando a senha (alternativamente o comando sudo su também funciona)
  3. Informe os seguintes comandos
  4. 
    # gsettings set org.gnome.desktop.media-handling automount false
    # gsettings set org.gnome.desktop.media-handling automount-open false
    

    Reinicie o serviço GDM, nota, antes de executar esse comando, salve todos seus arquivos, pois o mesmo efetuará o logout do seu usuário

    # systemctl restart gdm.service

Ao autenticar novamente, o automount estará desabilitado.

Desabilitar para todos os usuários

Para desabilitar para todos os usuários, os seguintes passos deverão ser seguidos:

  1. Abra um novo terminal
  2. Autentique com o usuário root utilizando o comando su –  e informando a senha (alternativamente o comando sudo su também funciona)
  3. Crie o arquivo /etc/dconf/db/local.d/00-media-automount com o seguinte conteúdo:
  4. [org/gnome/desktop/media-handling]
    automount=false
    automount-open=false
  5. Salve o mesmo e digite o comando como root
  6. dconf update

Feito isso, no próximo login de cada usuário o automount estará desabilitado.

Transformar imagens coloridas em P&B com Python


Olá,

Neste post será abordado como converter imagens PNG em JPEG, e também transformar as imagens coloridas em escala de cinza, ou seja, em preto-e-branco.

Com uma ou poucas imagens, abrir programas gráficos como o GIMP ou Adobe Photoshop, não seria tão trabalhoso abrir uma a uma, alterar o esquema de cores e alterar o formato dos arquivos conforme necessidade. Mas quando são centenas e até milhares de imagens, este processo manual, além de demorado, se torna cansativo.

Para contornar o problema acima descrito, desenvolvi um pequeno script em Python que converte as imagens PNG para JPEG, e também converte as imagens para P&B.

Sem mais delongas, segue o pequeno script:

Download

Código

__author__ = "elexsandro"
__date__ = "$31/12/2014 12:59:21$"

from PIL import Image
import glob, os

def convertToGrayScale(path, grayfilename):
    try:
        # abre a imagem na escala de cinza
        im = Image.open(path).convert("L")
        # salva a imagem
        print 'Salvando a imagem:', grayfilename
        im.save(grayfilename)
    except:
        print 'Erro ao converter a imagem'

# Modulo principal
if __name__ == "__main__":
    # Armazena o caminho informado na variavel d
    d = raw_input('Informe o diretorio de imagens:')
    
    if not os.path.exists(d):
        raise Exception('O diretorio informado nao existe')
        
    # 'Navega' ao diretorio informado
    os.chdir(d)
    # os.path.abspath(os.curdir) tambem retorna o diretorio corrente
    print 'Diretorio corrente:', os.getcwd()

    print 'Convertendo as imagens PNG para JPEG'
    for fn in glob.glob('*.png'):
            print 'Convertendo %s para PNG', fn
            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splittext(fn)[0]
            # Abre a imagem
            imagem = Image.open(fn)

            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splittext(fn)[0]
            imagem.save(f + '.png', 'PNG')
            print f +'.png salvo com sucesso.'

    # Cria o diretorio para armazenar as imagens P&B
    os.mkdir('GrayImages')
    
    # Convertendo todas as imagens JPEG para escalas de cinza
    for fn in glob.glob('*.jpg'):
            print 'Processando:', fn

            # obtem o nome do arquivo sem a extensao
            f = glob.os.path.splitext(fn)[0]

            # Converte a imagem escala de cinza e salva no diretorio GrayImages
            convertToGrayScale(fn, 'GrayImages/' + f + '_gray.jpg')

    print 'Concluido'

Até a próxima.

Utilizando os comandos SSH e SCP em instâncias AWS


Uma dúvida recorrente para quem está iniciando a jornada na cloud da Amazon Webservices, é como se conectar com uma instância Linux, ou até mesmo como efetuar a transferência de arquivos entre a máquina local e a instância na nuvem.

Neste post irei explicar o procedimento de cada um desses casos.

Para se conectar com a instância, é necessário possuir o arquivo com a chave privada do servidor (o arquivo XXX.pem) que é fornecido somente no momento que a instância é criada.

Após localizar o arquivo .pem em sua estrutura de diretórios, o mesmo deve possuir permissões de leitura somente para o dono, no caso do Linux, deve-se aplicar o seguinte comando chmod 400 <arquivo.pem>.

Depois disso para se conectar com a instância é só informar o seguinte comando

ssh -i <caminho para o arquivo.pem> ec2-user@<endereço_da_instância>

Para se tornar o usuário root o comando sudo su funciona perfeitamente.

No caso da cópia de arquivos da sua máquina local para a máquina remota, informe o seguinte comando:

scp -i <caminho_para_o_arquivo.pem> myFiles.ext ec2-user@<endereço_da_instância>:<diretorio de destino>

Até a próxima

Habilitando dispositivos Motorola no ADB em Linux


Olá, recentemente ao desenvolver um aplicativo para Android o ADB passou a não reconhecer mais meu aparelho no momento de depurações nas versões mais recentes do SDK disponibilizado pela Google.

A janela onde é feita a seleção do dispositivo onde deseja implantar o aplicativo surgia da seguinte forma:

Device Not Recognized

Após algumas pesquisas em fóruns e outros locais encontrei a seguinte solução que descrevo abaixo:

Abra uma janela do terminal e autentique com o usuário root, pois é necessário criar uma nova regra no udev.

No arquivo de regras que será criado, cada fabricante possui um ID único, conforme será especificado na propriedade ATTR{IdVendor}, veja a lista completa aqui.

Efetue login como root e crie este arquivo: /etc/udev/rules.d/51android.rules

Utilize este formato para adicionar cada fornecedor neste arquivo:
SUBSYSTEM==”usb”, ATTR{idVendor}==”<vendor>”, MODE=”0<permission>”, OWNER=”<user name>”, GROUP=”<group name>”

No meu caso como é um Motorola a configuração ficou da seguinte forma:

SUBSYSTEM==”usb”, ATTR{idVendor}==”22b8″, MODE=”0666″, OWNER=”elexsandro”, GROUP=”developers”

Salve o arquivo e execute o seguinte comando:

chmod a+r /etc/udev/rules.d/51-android.rules

A propriedade ATTR{idVendor} é o Id único de cada fornecedor conforme visto acima.

A propriedade MODE é o nível de permissão concedida  no formato octal;

A propriedade OWNER é o login do usuário que possuirá permissões administrativas sobre o dispositivo

A propriedade GROUP é o nome do grupo UNIX que possuirá permissões para gerenciar o dispositivo conforme o nível concedido na propridade MODE.

Após reinicializar o meu computador obtive o seguinte resultado:

ADB Recognize device perfect

Agora o dispositivo está pronto para testes,

Até a próxima 🙂

Verificando o tamanho da base de dados no PostgreSQL


Olá, neste post irei mostrar como verificar o tamanho da base de dados no PostgreSQL.

SELECT oid,datname FROM pg_database;

Esta consulta irá retornar o OID e o respectivo nome da base de dados. Com base nestas informações iremos descobrir o tamanho ocupado pela base de dados.

Acesse o diretório onde está instalado o PostgreSQL e entre no subdiretório data/base/ (ex: /var/lib/pgsql/9.3/data/base/ no Linux)

Agora com base no OID do banco de dados obtido anteriormente verificamos o tamanho da base.

Nos sistemas Linux podemos informar o seguinte comando: du -sh <OID>/ em sistemas Windows podemos verificar com o botâo direito > Propriedades para visualizar o tamanho do diretório.

 

Até a próxima

Linux – Como encerrar processos executando em uma porta específica


Neste post irei mostrar como finalizar processos no Linux com base na porta TCP/UDP que está sendo utilizada.

Para listar os processos que estão conectados à determinada porta, podemos utilzar um destes comandos (estou assumindo a porta 8080 do protocolo TCP como exemplo):

$ lsof -w -n -i tcp:8080

$ fuser -n tcp 8080

$ netstat -anp | grep :8080

E para matar o processo é só utilizar o comando kill

$ kill -9 pid

Até a próxima