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.

Como instalar o CyanogenMod no Moto G


O artigo explica como instalar o CyanogenMod, uma versão não-oficial do Android (mais atualizada que a versão de fábrica) no aparelho Moto G. O procedimento descrito é compatível com os seguintes versões de aparelhos: XT1031, XT1032, XT1033 e XT1034 e também os de 2ª geração.

Perco a garantia do aparelho ao instalar o Cyanogenmod?

Sim, pois o processo exige o desbloqueio do aparelho.

Quais os riscos existentes ao instalar o Cyanogenmod?

Trata-se de um processo que pode danificar o aparelho e deixá-lo “bricado”, mas só se você fizer algo realmente estranho e diferente do procedimento. Além disso, você perderá todos os dados do aparelho, seus arquivos pessoais, músicas etc. O aparelho será zerado. Fazer backup é importante.

O processo é reversível?

Sim, mas não será abordado neste artigo.

Se algo der errado durante o procedimento, quem eu devo processar ou xingar?

Ninguém. O risco é todo seu. Não há garantias por parte da equipe do CyanogenMod e nem por parte do autor desse artigo.

Nota de esclarecimento do Cyanogenmod:

“Modifying or replacing your device’s software may void your device’s warranty, lead to data loss, hair loss, financial loss, privacy loss, security breaches, or other damage, and therefore must be done entirely at your own risk. No one affiliated with the CyanogenMod project is responsible for your actions. Good luck.”

Tradução livre:

“Modificar ou substituir o software do seu dispositivo pode anular a garantia do dispositivo, levar à perda de dados, perda de cabelo, perda financeira, perda de privacidade, violações de segurança ou outros danos e, portanto, deve ser feito inteiramente por sua conta e risco. Ninguém afiliado com o projeto CyanogenMod é responsável por suas ações. Boa sorte.”

Este artigo foi feito usando:

  • Moto G 2013 (1ª geração)
  • Ubuntu 15.04

E terminou com a instalação do Android 5.1.1 (CM 12.1).

Resumo do procedimento para instalar o CyanogenMod:

  1. Desbloquear o bootloader;
  2. Instalar programa de “recovery” usando o fastboot;
  3. Instalar do CyanogenMod a partir do “recovery”.

Continue lendo “Como instalar o CyanogenMod no Moto G”

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 🙂