Mailman renomeando extensão de anexos

novembro 14, 2018

Tive um problema recentemente com o mailman. Quando eu enviava um anexo no formato zip para uma lista, o mesmo era renomeado para a extensão bin, e aí é claro que isso confunde os usuários?

Felizmente a solução é simples.

Basta adicionar no arquivo /etc/mailman/mm_cfg.py a linha abaixo.

SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSION = True

Antes de ativar essa opção você deve avaliar os prós e contras. Ativando essa opção a extensão usada será a mesma do arquivo enviada. Isso abre a brecha de um usuário enviar algum arquivo disfarçado com a extensão trocada. Para ativar essa opção é preciso complementar a solução de maneira que preferencialmente exista algum tipo de checagem nos anexos enviados para a lista.

Problema ao montar volume Windows 2012 no Ubuntu 14.04

agosto 22, 2017

Quando um servidor Windows aqui do trabalho foi migrado para a versão 2012 a montagem do volume compartilhado parou de funcionar no Linux.
O mais estranho é que quando eu executava a linha abaixo:

$ smbclient -L IP -U USER -m SMB2

O volume que eu queria era mostrado.
Quando eu adicionava a entrada correspondente no /etc/fstab aparecia o erro: “mount error(2): No such file or directory” mas o volume existia (eu havia montado com sucesso em uma VM Windows) e a pasta destino também (funcionava antes).
Até que cheguei no link abaixo:
https://askubuntu.com/questions/915781/smb2-0-wont-mount-using-cifs-works-on-smbclient

Notei que no nome do volume constava um $, achei estranho mas tentei adicionar um $ no nome do volume no fstab.
E não é que funcionou também? Depois reparei que realmente no smbclient o nome do volume também aparecia com esse caracter mas eu não havia prestado atenção (ao montar no Windows esse caracter não aparece no nome do volume).
Uma coisa boba que me fez perder um tempinho. Espero que outros não passem pelo mesmo problema.

A minha entrada do fstab ao final ficou assim:
//IP/NOMEDOVOLUME$ /mnt/smb/ cifs defaults,credentials=/FILEPATH,gid=1000,uid=1000,file_mode=0770,dir_mode=0770,vers=2.0 0 0

Erro Forbidden no Apache 2.4

julho 21, 2017

Estava tendo um estranho erro de Forbidden no Apache 2.4. Verifiquei as permissões e estava tudo correto.

Descobri que houve uma mudança na configuração do Apache nessa versão. Seguindo a sugestão do link abaixo:
https://askubuntu.com/questions/561201/apache-2-4-10-giving-403-forbidden-issue-on-ubuntu-14-04/601730#601730

É necessário substituir o trecho

Order allow,deny
allow from all

com

Require all granted

Depois de dar um reload no server, o erro parou de acontecer.

Erro mcrypt no phpmyadmin

maio 11, 2015

Quando abri o phpmyadmin notei que estava aparecendo a mensagem “A extensão mcrypt não está presente. Por favor, verifique a configuração do PHP.”

Para solucionar esse problema primeiro verifiquei se o módulo do mcrypt para o PHP estava instalado.

Isso pode ser feito com a linha:

$ dpkg -l | grep mcrypt

No meu caso a saída foi:

ii  libmcrypt4                                            2.5.8-3.1ubuntu1                                    amd64        De-/Encryption Library
ii  php5-mcrypt                                           5.4.6-0ubuntu5                                      amd64        MCrypt module for php5

Ou seja, a biblioteca estava instalada. Caso não estivesse seria possível instalar através do aptitude com:

$ sudo aptitude install php5-mcrypt

Quando eu tentei habilitar o módulo através do a2enmod mostrava que o módulo não existia. Procurei na documentação do php e encontrei que seria possível habilitar o módulo através do comando:

$ sudo php5enmod mcrypt

Usando o comando service para iniciar o Apache não resolveu a situação pois a mensagem continuava aparecendo. O jeito foi reiniciar o Apache via init.d

$ sudo /etc/init.d/apache2 restart

Após fazer isso o erro do PHPMyAdmin parou de aparecer.

O procedimento acima foi testado no Ubuntu 14.04

Executando arquivos jnlp no Linux

janeiro 17, 2014

Estava precisando executar uma aplicação Java, porém ao entrar na URL desejada o browser (tanto Firefox quanto Chrome) baixavam o arquivo ao invés de executar a aplicação. Atualizei para o Java 7, update 51. Porém mesmo assim não funcionou.

Para funcionar usei a linha de comando e usei o programa javaws:

$ javaws URL

Porém mesmo assim ele dava uma mensagem “missing required permissions manifest attribute”.

Essa página aqui explica o erro e sugere que o ideal é que os desenvolvedores da aplicação façam um upgrade na mesma. Porém existe uma maneira de ignorar o erro.

No Linux, na mesma pasta do javaws, existe um aplicativo ControlPanel. Executando esse aplicativo, basta ir na aba Segurança e depois editar o campo “Lista de exceções de sites”.

Após fechar o ControlPanel basta executar novamente o javaws e a aplicação deve funcionar conforme esperado.

Instalar Rails usando RVM

dezembro 20, 2013

RVM é o Ruby Version Manager, com ele podemos ter múltiplas versões do Ruby e das suas gems instaladas na nossa máquina. Atualizar o Ruby também se torna trivial com RVM. Na dúvida use RVM se pretende trabalhar com Rails.

Para instalar o RVM digite:

$ curl -sSL https://get.rvm.io | bash -s stable

Isso irá instalar a versão estável mais recente do RVM. Após executar esse comando (pode demorar um pouco), abra um novo terminal e digite:

$ which rvm

Se o RVM tiver sido instalado com sucesso será retornado o caminho do mesmo.

Depois já podemos instalar a versão desejada do Ruby:

Por exemplo, o comando abaixa instala o Ruby 1.8.7 da implementação REE (Ruby Enterprise Edition)
$ rvm install ree-1.8.7

O comando abaixo mostrará a versão do Ruby se tudo tiver dado certo.

$ ruby -v

O próximo passo é instalar o RubyGems.

$ rvm rubygems current

O comando acima instala o RubyGems na versão mais recente também.

Também podemos verificar se tudo deu certo com:

$ gem -v

Por fim, é só instalar a versão da gem desejada (no caso Rails 3.2.11):

$ gem install rails –version 3.2.11

O comando abaixo mostra a versão do Rails se tudo estiver bem.

$ rails -v

A princípio parece complicado, mas vale a pena quando se deseja testar algum feature de outra versão do Ruby ou atualizar algo no sistema.

O RVM tem saídas de erro bem informativas, se algo der errado leia com atenção a saída do comando mais recente pois ali certamente haverá alguma dica importante para resolver problemas.

Por fim, consulte sempre o site oficial do RVM. Esse guia tem como objetivo principal dar uma idéia do workflow da instalação com o RVM e servir como referência rápida. Algumas mudanças podem ocorrer em versões futuras.

Site do RVM: https://rvm.io/

Montar compartilhamento automaticamente ao iniciar o computador

dezembro 20, 2013

Primeiro crie a pasta onde o seu compartilhamento será montado.

$ sudo mkdir /mnt/samba

Teste se o seu compartilhamento está sendo montado corretamente.

$ sudo smbmount \\ifs00sv009\\Dados /mnt/samba/ -o username=USERNAMEREMOTO,rw,uid=UIDLOCAL

Na linha acima, estamos montando na pasta /mnt/samba o compartilhamento Dados, que está no servidor ifs00sv009. USERNAMEREMOTO é o nome de usuário no servidor, e UIDLOCAL é o uid do seu usuário local.

Para saber seu uid, você pode digitar na linha de comando:

$ id USERNAMELOCAL

Tente acessar o compartilhamento usando o navegador de arquivos. Se estiver tudo ok, podemos prosseguir e realizar a montagem automaticamente ao iniciar o computador.

Adicione a linha abaixo no arquivo /etc/fstab:

//ifs00sv009/Dados /mnt/samba/ smbfs  auto,gid=GRUPOLOCAL,file_mode=0664,dir_mode=0775,iocharset=iso8859-15,credentials=/root/smbpasswd 0 0

Substitua GRUPOLOCAL pelo grupo de usuários que você deseja que tenha permissão de escrita na pasta.

Observe que o parâmetro credentials indica um arquivo onde está o usuário e senha do usuário remoto que será usado para autenticar no servidor de arquivos e montar o compartilhamento.

Um exemplo da sintaxe do arquivo está abaixo:

username=USERNAMEREMOTO
password=PASSWORDREMOTO

Para testar desmonte o compartilhamento (caso esteja montado):

$ sudo umount /mnt/samba

Depois monte o compartilhamento novamente a partir das entradas do fstab:

$ sudo mount -a

Verifique se o compartilhamento foi montado com sucesso. Caso contrário verifique os passos acima.

Referência:

http://www.cyberciti.biz/faq/access-windows-shares-from-linux/ (Existem alguns erros de sintaxe no link que estão corrigidos acima)

Problema de acesso no puppet agent

novembro 18, 2013

Se ao rodar o puppet agent nas máquinas clientes você estiver obtivendo um erro referente a permissão de acesso não esqueça de verificar o arquivo /etc/puppet/fileserver.conf

Eu estava obtendo uma mensagem de erro que começava com “err: Could not run Puppet configuration client: Error 400 on SERVER: Not authorized to call find on”.

O problema é que eu estava servindo arquivos para duas sub-redes distintas e só lembrei de autorizar o acesso para uma delas.

Por exemplo para autorizar o acesso na sub-rede 192.168.0.0/24 basta adicionar a linha abaixo no arquivo /etc/puppet/fileserver.conf

allow 192.168.0.0/24

Converter PDF para imagem no Linux

junho 17, 2013

Podemos usar o comando convert do Linux para isso:

$ convert arquivo.pdf arquivo.jpg

Fazendo isso a qualidade da imagem resultante pode não ser a ideal. O parâmetro density (por padrão é 72) pode ajudar:

$ convert -density 300 arquivo.pdf arquivo.jpg

Fonte: http://www.cyberciti.biz/faq/howto-convert-a-pdf-file-to-an-image/

Salvar gems em um cache local

maio 22, 2013

Para não ficar dependendo das gems instaladas em um servidor remoto é possível fazer um cache das gems usadas em uma aplicação Rails.

Para isso na máquina de desenvolvimento use:

$ bundle package

Ao fazer isso uma pasta vendor/cache será criada contendo as gems usadas na sua aplicação.

Após fazer o upload da pasta de cache no servidor remoto utilize:

$ bundle install –local –deployment

O parâmetro local fará o bundler usar a cache das gems e a opção deployment dirá para instalar as gems em vendor/bundler

http://gembundler.com/