Mostrando postagens com marcador linha de comando. Mostrar todas as postagens
Mostrando postagens com marcador linha de comando. Mostrar todas as postagens

domingo, 8 de julho de 2012

Atualizando as principais distros Linux

Existem dezenas de distribuições Linux, entretanto a grande maioria são baseadas nas quatro principais, Slackware, Debian, Suse e Red Hat, herdando as principais características e funcionalidades. Demonstrar o modo de operação destas quatro distros já é suficiente para abranger quase todas.

Uma das grandes características das distribuições Linux está na funcionalidade de atualização de todo o sistema. Independente do formato do pacote adotado, seja .rpm, .deb ou .txz, as distros dispõem de ferramentas que gerenciam a base de pacotes instalada. Cada distribuição, dentre as quatro base, terão ferramentas distintas para esta operação.

Apenas pela linha de comando, é possível executar esta atualização geral do sistema, substituindo os pacotes antigos por versões novas. A seguir veremos as particularidades de cada uma delas e os respectivos comandos básicos:

Red Hat, Fedora, CentOS:

Estas distribuições utilizam a ferramenta YUM no processo e usam o formato RPM nos pacotes. As configurações ficam no arquivo "/etc/yum.conf" e no diretório "/etc/yum.repos.d/". Para atualizar os pacotes instalados, execute o comando a seguir:

# yum update


Debian, Ubuntu:

Estas duas distros e suas descendentes, utilizam as ferramentas apt-get ou aptitude, em comandos semelhantes, e usam o formato DEB nos pacotes. As configurações de repositórios ficam no arquivo "/etc/apt/sources.list". Para atualizar os pacotes instalados, execute os comandos:

# apt-get update
# apt-get upgrade


openSUSE:

O openSUSE utiliza na linha de comando a ferramenta Zypper e usa o formato RPM nos pacotes. As configurações ficam no arquivo "/etc/zypp/zypper.conf". Para atualizar os pacotes instalados, execute os comandos:

# zypper list-updates
# zypper update


Slackware:

O Slackware utiliza na linha de comando a ferramenta slackpkg e usa o formato TXZ nos pacotes. As configurações de repositórios ficam no arquivo "/etc/slackpkg/mirrors". Para atualizar os pacotes instalados, execute os comandos:

# slackpkg update
# slackpkg check-updates
# slackpkg install-new
# slackpkg upgrade-all


O procedimento de atualização envolve primeiro atualizar a lista dos pacotes fornecidos pelos repositórios, para o sistema saber o que há de novo, e então atualizar os pacotes instalados por novos pacotes. Os comandos foram apresentados em ordem. A ferramenta YUM faz isto em apenas um comando, nas outras são necessários dois ou mais comandos.

Os comandos apresentados neste artigo são para uma atualização dos pacotes dentro da mesma versão da distribuição. É possível também atualizar os pacotes de modo que atualize a versão da distribuição, por exemplo de Debian 5 para Debian 6. Os comandos para este procedimento não estão demonstrados neste artigo.

Apenas o superusuário (root) tem a permissão para executar estes comandos, um usuário comum não é capaz de atualizar o sistema.

quarta-feira, 20 de junho de 2012

A linha de comando do VirtualBox

O VirtualBox possui, além da sua interface gráfica, a opção de interface pela linha de comando para configuração e manutenção das máquinas virtuais. A ferramenta VBoxManage é capaz de criar, modificar e executar as VMs. Faz tudo que a interface gráfica faz e mais um pouco, pois existem comandos não possíveis de realizar graficamente. Por exemplo, a interface gráfica não possui o recurso para compactar o HD virtual.

Aqui não irei demonstrar cada um dos comandos, apenas ilustrar a interface de gerenciamento em linha de comando do VirtualBox.

Com uma sequência de comandos podemos criar uma máquina virtual, por exemplo:

$ VBoxManage createvm --name "CentOS 6.2" --register
$ VBoxManage modifyvm "CentOS 6.2" --memory 1024 --acpi on --boot1 dvd --nic1 bridged --bridgeadapter1 eth0
$ VBoxManage createhd --filename CentOS_6.2.vdi --size 40000
$ VBoxManage storagectl "CentOS 6.2" --name "IDE Controller" --add ide
$ VBoxManage storageattach "CentOS 6.2" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium CentOS_6.2.vdi
$ VBoxManage storageattach "CentOS 6.2" --storagectl "IDE Controller" --port 1 --device 0 --type dvddrive --medium /home/CentOS-6.2-i386-bin-DVD1.iso

Todas as VMs criadas e registradas no VirtualBox são listadas com a execução do comando "list vms":

$ VBoxManage list vms

Caso queira executar uma VM, usa-se o comando startvm, seguido pelo nome da VM ou pelo UUID:

$ VBoxManage startvm "CentOS 6.2"

Pelo comando acima, a VM é aberta naturalmente em uma janela, que exibe o conteúdo do sistema virtualizado. Uma opção interessante é a "headless", pois inicia a VM em segundo plano sem abrir a janela da interface gráfica, além de ativar o protocolo de desktop remoto, o que possibilita visualizar a saída gráfica da VM remotamente por outra máquina. A linha de comando torna-se:

$ VBoxManage startvm "CentOS 6.2" --type headless

Desviando do assunto, o desktop remoto pode ser aberto por qualquer cliente RDP. A porta padrão é a 3389, porém se existirem mais de uma máquina virtual, cada uma deverá estar configurada para uma porta diferente. O endereço IP é o endereço do host, pois é onde o VirtualBox está sendo executado. Exemplo com o rdesktop do Linux:

$ rdesktop 192.168.1.10:3389

Todas as máquinas virtuais que estão rodando são listadas com a execução do comando "list runningvms":

$ VBoxManage list runningvms

Para desligar a máquina virtual de fora dela, ou seja, sem executar um comando interno no sistema convidado, existem alguns comandos que simulam o hardware de um computador. As funções dos botões "Power" e "Reset" até o suporte da ACPI, são simulados com, por exemplo:

$ VBoxManage controlvm "CentOS 6.2" acpipowerbutton

$ VBoxManage controlvm "CentOS 6.2" reset

$ VBoxManage controlvm "CentOS 6.2" poweroff

Sempre é possível identificar a máquina pelo nome da VM ou pelo UUID da VM. Caso o nome ou qualquer outra identificação tenha espaços, é necessário protegê-lo do interpretador de comandos. As aspas e os apóstrofos servem para isto.

$ su vboxuser -c '/usr/bin/VBoxManage startvm "CentOS 6.2" --type headless'

Desviando do assunto mais uma vez, para executar um comando interno no sistema convidado, por exemplo um comando para desligamento, estando fora da máquina virtual, podemos usar a ferramenta ssh, em algo como:

$ sshpass -p senha ssh root@192.168.1.15 "shutdown -h now"

A ferramenta VBoxManage possui dezenas e mais dezenas de comandos e opções, tornando esta interface textual bastante rica em recursos. Uma necessidade desta interface está, por exemplo, no gerenciamento de servidores remotos, quando o acesso é por um terminal remoto em modo texto. A opção "--help" exibe a lista de todos os comandos e opções existentes. É uma ajuda mas não é um manual:

$ VBoxManage --help

quinta-feira, 26 de janeiro de 2012

Agilizando downloads pela linha de comando

Uma linha de comando executada em um prompt do shell pode agilizar muitos downloads, especialmente quando as URLs se diferem em valores sequenciais ou quando temos páginas com muitos links. Fica muito mais rápido todo o trabalho.

Neste primeiro caso de exemplo, temos uma série de arquivos numerados (man01.pdf, man02.pdf ...) com um início de endereço comum. O uso de um simples laço de repetição executará o programa wget para cada arquivo:

for (( i=1; i<=9; i++ )) do wget http://manuais.com/pdf/man0$i.pdf; done

Já neste segundo exemplo, temos duas variações ocorrendo nos nomes dos arquivos, com letras e números (manBR01.pdf, manBR02.pdf, ..., manUS01.pdf, manUS02.pdf, ...). O uso de dois laços aninhados irão gerar todas as respectivas URLs dos arquivos:

for c in BR US ES; do for (( i=1; i<=6; i++ )) do wget http://manuais.com/pdf/man"$c"0"$i".pdf; done; done

Apesar de nos exemplos ocorrerem apenas variações nos nomes dos arquivos, elas podem ocorrer em qualquer parte da URL. Bastando somente posicionar a variável no endereço.

Neste terceiro e último exemplo, temos uma página fornecendo links de diversos arquivos, não necessariamente sequenciais, sendo formatada para que somente as URLs sirvam de parâmetro para o programa wget:

for x in $(lynx -dump http://manuais.com/ | awk '{print $2}' | grep .pdf); do wget $x; done

Entendendo melhor este último exemplo. A opção -dump do programa lynx formata a página para texto puro na saída padrão e gera no final uma relação dos links encontrados. Esta relação das referências é que será utilizada. A ferramenta awk filtra e exibe somente a segunda coluna do texto, e a ferramenta grep filtra e exibe somente as linhas contendo a string especificada. Todo resultado deste texto alimentará o laço.

Nestes exemplos, todos os arquivos baixados serão salvos no diretório corrente. Os comandos deverão ficar em uma única linha, estão quebrados pois são extensos para a página. Uma longa lista poderá correr em sua tela, serão execuções sequenciais do programa wget, um downloader não-interativo para rede.

É vantajoso usar uma linha de comando ao invés de ficar clicando repetidamente em uma página, por todos os links. O tempo economizado é grande, além do conforto. Se encontrar uma página com um certo padrão nos links, não hesite, use a linha de comando!

sábado, 15 de janeiro de 2011

Ferramentas de linha de comando do The Sleuth Kit

O The Sleuth Kit (TSK) é uma coleção de ferramentas de linha de comando para Unix que permite investigar um computador, isto é, trata-se de uma coleção de ferramentas forenses. O objetivo destas ferramentas é o acesso aos arquivos e aos sistemas de arquivos. O TSK suporta os sistemas de arquivos FAT, Ext2/3, NTFS, UFS, e ISO 9660.

Ao todo são 27 ferramentas que fornecem informações ou conteúdo de arquivos, unidades de dados, volumes, partições, sistemas de arquivos e metadados como Mac times e inode. Veja abaixo uma lista das ferramentas com uma breve descrição da respectiva funcionalidade:

blkcalc - Converte entre números de unidades não alocadas no disco e números de unidades regulares no disco.
blkcat - Mostra o conteúdo da unidade de dados do sistema de arquivos (blocos) em uma imagem de disco.
blkls - Lista as unidades de dados do sistema de arquivos (blocos).
blkstat - Mostra os detalhes de uma unidade de dados do sistema de arquivos (bloco ou setor).
ffind - Encontra o nome de um arquivo ou diretório pelo inode.
fls - Lista os nomes dos arquivos e diretórios de uma imagem de disco.
fsstat - Mostra os detalhes gerais de um sistema de arquivo.
hfind - Consulta um valor de Hash em uma base de dados de Hash.
icat - Retorna o conteúdo de um arquivo baseado no seu número inode.
ifind - Encontra a estrutura de metadados que foi alocada para uma unidade de disco ou nome de arquivo.
ils - Lista a informação do inode.
img_cat - Retorna o conteúdo de um arquivo imagem.
img_stat - Mostra os detalhes de um arquivo imagem.
istat - Mostra os detalhes de uma estrutura de metadados, isto é, inode.
jcat - Mostra o conteúdo de um bloco journal em um sistema de arquivos com journal.
jls - Lista o conteúdo de um sistema de arquivos com journal
mactime - Cria uma linha do tempo ASCII das atividades dos arquivos.
mmcat - Retorna o conteúdo de uma partição para a saída padrão.
mmls - Mostra o esboço da partição de um volume do sistema (tabela de partição).
mmstat - Mostra os detalhes sobre volumes do sistema (tabela de partição).
sigfind - Encontra a assinatura binária em um arquivo.
sorter - Classifica os arquivos de uma imagem em categorias baseadas nos tipos de arquivo.
srch_strings - Mostra os caracteres imprimíveis das strings de um arquivo.
tsk_comparedir - Compara o conteúdo de um diretório com o conteúdo de uma imagem ou dispositivo local.
tsk_gettimes - Coleta os MAC times de uma imagem de disco para um arquivo.
tsk_loaddb - Popula um banco de dados SQLite com os metadados de uma imagem de disco.
tsk_recover - Exporta os arquivos de uma imagem para um diretório local.

Com estas ferramentas podemos recuperar arquivos deletados, montar uma linha do tempo do uso dos arquivos, procurar por determinada string, entre outras coisas, tarefas corriqueiras na computação forense.

As ferramentas funcionam acessando o conteúdo tanto na forma de imagem como diretamente ao dispositivo. Mas lembre-se, é sempre recomendável criar a imagem da unidade de armazenamento para preservar a integridade da prova.

O TSK pode ser obtido pelo endereço www.sleuthkit.org. Algumas distribuições Linux fornecem seu pacote pelos repositórios oficiais de software.

Existe o Autopsy que é a interface gráfica para esta coleção (http://dan-scientia.blogspot.com/2010/10/computacao-forense-com-o-sleuth-kit-e.html), entretanto, é possível com apenas poucos comandos realizar algumas tarefas do Autopsy, e em alguns casos, até de forma mais agilizada. Mas isto fica para uma outra postagem.

segunda-feira, 23 de agosto de 2010

Usando o msmtp com o Mutt para envio de anexos

O Mutt é um programa que permite aos usuários ler, salvar e compor mensagens de e-mail, em um ambiente em modo texto. Programas deste tipo são formalmente chamados de MUA (Mail User Agent).

Para o envio de e-mail pela linha de comando com arquivos binários em anexo, o resultado é mais garantido quando utiliza-se o Mutt para formatar a mensagem. O Mutt trata adequadamente os tipos MIME e assim o recebimento do arquivo binário é devidamente reconhecido pelo programa cliente do destinatário.

O Mutt pode trabalhar com o programa msmtp para o envio das mensagens, ao invés de sua função interna de SMTP ou do sendmail, para isso é necessária uma simples configuração no seu arquivo ~/.muttrc, desde que o programa msmtp esteja devidamente configurado (veja em: http://dan-scientia.blogspot.com/2010/08/enviando-email-pela-linha-de-comando.html).

Um exemplo de configuração para o ~/.muttrc é apresentado a seguir:

set sendmail = "/usr/bin/msmtp -a gmail"
set realname = "Nome do Usuario"
set from = usuario@gmail.com
set use_from=yes
set envelope_from=yes

Toda a construção do e-mail será agora pela linha de comando do Mutt. Os principais parâmetros de entrada são:

-a arquivo
     Anexa um arquivo na mensagem usando MIME.
-b endereço
     Especifica o endereço de e-mail para cópia oculta (Bcc).
-c endereço
     Especifica o endereço de e-mail para cópia (Cc).
-H rascunho
     Especifica um arquivo de rascunho com os dados do cabeçalho e corpo da mensagem.
-i arquivo
     Especifica um arquivo texto para incluir no corpo da mensagem.
-s assunto
     Especifica o assunto da mensagem.
--   Marca o final dos parâmetros. Obrigatório quando usa-se o parâmetro -a pois separa os nomes dos arquivos dos endereços de e-mail.

Para compor uma nova mensagem pode-se usar uma linha de comando semelhante a abaixo:

$ mutt -c fulano@provedor.com.br -i arquivo.txt -s "Assunto da mensagem" -a foto.jpg -- destinatario@provedor.com.br

Com o comando acima o Mutt abrirá um editor para confirmar os itens de cabeçalho e corpo da mensagem. Para automatizar o envio do e-mail e assim não abrir o editor do Mutt, podemos utilizar uma mensagem pré preparada em um arquivo texto, para compor o corpo da mensagem, e direcioná-la para o programa Mutt:

$ cat mensagem.txt | mutt -c fulano@provedor.com.br -s "Assunto da mensagem" -a foto.jpg -- destinatario@provedor.com.br

O próximo exemplo faz uso do parâmetro -i para inserir o texto no corpo da mensagem porém direciona o dispositivo nulo (ele retorna uma indicação de final de arquivo) na edição do Mutt, para automatizar o envio.

$ mutt -c fulano@provedor.com.br -i mensagem.txt -s "Assunto da mensagem" -a foto.jpg -- destinatario@provedor.com.br < /dev/null

E o exemplo a seguir utiliza o parâmetro -H que recebe um arquivo texto contendo toda a estrutura para o cabeçalho e corpo do e-mail, chamado arquivo de rascunho:

$ mutt -H email.txt -a foto.jpg < /dev/null

O conteúdo para este arquivo de rascunho segue o modelo abaixo:

To: fulano@provedor.com.br, sicrano@provedor.com.br
Cc: beltrano@provedor.com.br
Bcc: johndoe@provedor.com.br
From: usuario@gmail.com
Subject: Assunto do e-mail

Texto do corpo da mensagem.

Outra opção para automatizar o envio é redigir a mensagem na própria linha de comando:

$ echo "Texto do corpo da mensagem." | mutt -c fulano@provedor.com.br -s "Assunto da mensagem" -a foto.jpg -- destinatario@provedor.com.br

O Mutt é um programa cliente de e-mail completo, com diversas diretivas para configuração e personalização. Seu ambiente, em modo texto, é controlado completamente pelo teclado e possui tudo o que é necessário para um software cliente de e-mail. Como visto neste artigo, somente por sua linha de comando já é possível enviar um e-mail automaticamente, isto pode ser útil em um shell script.

Se você acabar entrando no ambiente de edição do Mutt, será necessário conhecer as teclas dos comandos para operar o ambiente. Quem sabe num próximo artigo.

Mais informações em http://www.mutt.org/ ou nas páginas manuais do Mutt.

domingo, 22 de agosto de 2010

Enviando email pela linha de comando usando o msmtp

O msmtp é um cliente de SMTP que em seu modo de operação padrão transmite um e-mail para um servidor SMTP, por exemplo para seu provedor, que faz a entrega. Pode ser usado por um programa cliente de e-mail (MUA) e é compatível com o programa sendmail. Dentre outros atributos o msmtp pode trabalhar com diversos métodos de autenticação e com múltiplas contas de e-mail.

O msmtp é executado pela linha de comando e pode ser configurado por arquivo alcançável em todo o sistema (/etc/msmtprc), por arquivo restrito ao usuário (~/.msmtprc) ou diretamente por parâmetros na linha de comando. Um exemplo de conteúdo para o arquivo de configuração é o apresentado a seguir:

account gmail
host smtp.gmail.com
port 587
timeout off
protocol smtp
auto_from off
from usuario@gmail.com
maildomain gmail.com
auth on
user usuario
password suasenha
tls on
tls_starttls on
tls_certcheck off
logfile ~/.msmtp.log
syslog LOG_MAIL

account default: gmail

Este exemplo serve para o servidor SMTP do Gmail. Múltiplas contas podem ser configuradas neste arquivo, identificadas pela linha "account nome_da_conta". É recomemdável proteger o arquivo de configuração do msmtp com permissões de leitura e escrita somente para o próprio usuário (0600, -rw-------), senão a senha ficará exposta aos outros usuários.

O msmtp possui muitas opções para sua linha de comando mas basicamente o comando pode ser "msmtp " se o arquivo de configuração existir. Com este comando simples o programa inicia um prompt para a entrada do conteúdo do e-mail, para o cabeçalho e corpo. A combinação de teclas "Ctrl+D" encerra esta edição. Entretanto, pode ser mais prático utilizar um arquivo texto contendo toda esta estrutura de mensagem e direcioná-lo para a entrada padrão do msmtp. Um exemplo de como pode ser este arquivo texto é apresentado abaixo:

To: fulano@provedor.com.br, sicrano@provedor.com.br
Cc: beltrano@provedor.com.br
Bcc: johndoe@provedor.com.br
From: usuario@gmail.com
Subject: Assunto do e-mail

Texto do corpo da mensagem.

A linha de comando do msmtp ficaria então desta forma:

$ msmtp --read-recipients < email.txt

Para não utilizar um arquivo de configuração é necessário passar todos os dados do servidor SMTP pela linha de comando do msmtp. Aproveitando o exemplo da conta do Gmail mostrado anteriormente, a seguir está o exemplo da linha de comando equivalente:

$ msmtp --host=smtp.gmail.com --port=587 --timeout=off --protocol=smtp --auto-from=off --from=usuario@gmail.com --maildomain=gmail.com --auth=on --user=usuario --tls=on --tls-starttls=on --tls-certcheck=off --syslog=LOG_MAIL --read-recipients < email.txt

A senha do servidor não é passada pela linha de comando, ela é solicitada pelo msmtp em um prompt semelhante ao abaixo:

password for usuario at smtp.gmail.com:

Outros parâmetros poderão ser úteis, o parâmetro --file=arquivo é usado para indicar outro arquivo de configuração ao invés do padrão e --account=nomedaconta para indicar outra conta de e-mail ao invés da conta padrão.

O conteúdo de uma mensagem de e-mail é sempre em texto ASCII, porém é possível anexar um conteúdo binário no corpo da mensagem. Um arquivo binário pode ser codificado para o formato ASCII por ferramentas como o uuencode ou o uuenview, este último mais poderoso. A linha de comando para um e-mail com anexo binário pode ser como no exemplo a seguir:

$ (cat email.txt; uuenview foto.jpg) | msmtp --read-recipients

Neste exemplo tanto o conteúdo do arquivo email.txt como o resultado da codificação do arquivo foto.jpg são canalizados para a entrada padrão do comando msmtp. Contudo, aqui tem uma ressalva, o programa msmtp não trata garantidamente os tipos MIME e, dependendo do programa cliente ou provedor que irá receber a mensagem, o arquivo anexo poderá não ser reconhecido no recebimento. Por exemplo, em testes feitos por mim, contas do Gmail e do Yahoo receberam adequadamente mas a conta do Terra não. A solução garantida é utilizar outra ferramenta para formatar o e-mail e trabalhar em parceria com o msmtp, no envio. Uma boa ferramenta para linha de comando é o Mutt, que será descrito em um próximo artigo.

Mais informações em http://msmtp.sourceforge.net/ ou nas páginas manuais do msmtp.

sexta-feira, 31 de julho de 2009

Como copiar um texto para a área de transferência do X pela linha de comando

O xclip é um utilitário de linha de comando que proporciona uma interface para a área de transferência do ambiente X Window. Pode ler dados de um arquivo ou da entrada padrão e copiar o conteúdo para a área de transferência do X, para então colar em outra aplicação do ambiente X. O xclip pode também imprimir o conteúdo da área de transferência para a saída padrão ou redirecionar para um arquivo ou outro programa.

Também tem o XSel, um utilitário de linha de comando, similar ao xclip, que pode copiar um conteúdo de e para um arquivo ou entrada e saída padrão, para a área de transferência do ambiente X. Pode inclusive adicionar ou apagar um conteúdo da área de transferência.

Para capturar o conteúdo de um arquivo texto use um dos comandos exemplificados abaixo:

$ xclip -selection clipboard arquivo.txt

$ xsel -b < arquivo.txt

Com estes comandos, o conteúdo do arquivo estará armazenado na área de transferência do ambiente X. Para o sentido inverso, copiar o conteúdo da área de transferência para um arquivo, use um dos comandos abaixo:

$ xclip -selection clipboard -o > arquivo.txt

$ xsel -b > arquivo.txt

Um detalhe, estes dois utilitários, obviamente por interagir com o X, são executados sobre o sistema operacional Linux.

domingo, 26 de julho de 2009

Enviando email pela linha de comando usando o sSMTP

O sSMTP é um programa para Linux capaz de enviar um e-mail via um agente de transporte de e-mail (MTA) externo, sendo uma opção para as mensagens de correio do sistema, como também para enviar mensagens pela linha de comando.

Primeiro instale, caso ainda não esteja, o pacote do sSMTP em seu sistema. Na distro Fedora pode ser com o comando "yum install ssmtp" digitado no prompt do console.

Edite o arquivo de configuração "/etc/ssmtp/ssmtp.conf" de acordo com o seu servidor SMTP. O exemplo abaixo serve para o Gmail.com:

root=seunome@gmail.com
mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
Hostname=localhost
FromLineOverride=YES
UseTLS=YES
AuthUser=seunome@gmail.com
AuthPass=suasenha

Uma recomendação é proteger o arquivo de configuração para que nenhum usuário em sua máquina consiga ler. Faça com o comando abaixo:

# chmod 600 /etc/ssmtp/ssmtp.conf

Para enviar um e-mail basta executar o comando "ssmtp" como super-usuário, ele apresentará um prompt para a entrada da mensagem. Digite como no modelo abaixo, sendo necessário pular uma linha entre o cabeçalho e o corpo da mensagem:

To: email-destino@dominio.com
From: seunome@gmail.com
Subject: Seu assunto

Pule uma linha e escreva aqui sua mensagem.
Pressionando Enter adiciona outra linha no corpo.

Para encerrar pressione as teclas "Ctrl+D". O sSMTP irá enviar então sua mensagem.

Outra opção para gerar o e-mail é criar um arquivo texto colocando em seu conteúdo a sua mensagem, respeitando a mesma estrutura. Desta forma direcione o arquivo texto para o comando do sSMTP em sua execução. Como abaixo:

# ssmtp email-destino@dominio.com < email.txt

Para que um usuário sem privilégios de administrador possa enviar e-mails com o sSMTP, é necessário que o usuário tenha o seu próprio arquivo de configuração do sSMTP e então acioná-lo na execução do comando. Veja exemplo:

$ ssmtp -C ssmtp.conf email-destino@dominio.com < email.txt

A utilidade deste uso do sSMTP pode estar, por exemplo, em fazer sua máquina enviar avisos automaticamente quando você estiver longe dela, simplesmente recebendo e-mails.