<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TutoriALL &#187; linux</title>
	<atom:link href="http://www.tutoriall.com.br/category/ti-2/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tutoriall.com.br</link>
	<description>.. tutoriais sobre tudo que você procura ..</description>
	<lastBuildDate>Wed, 03 Aug 2011 12:34:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Limitando usuários com o PAM</title>
		<link>http://www.tutoriall.com.br/2009/10/29/limitando-usuarios-com-o-pam/</link>
		<comments>http://www.tutoriall.com.br/2009/10/29/limitando-usuarios-com-o-pam/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 22:58:25 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/?p=101</guid>
		<description><![CDATA[O PAM (Pluggable Authentication Modules) é uma boa forma de controlar a autenticação para os diversos programas na plataforma Linux. Este artigo apresenta algumas formas básicas para se limitar as ações dos usuários em um sistema Linux com algumas das configurações disponíveis do PAM. Isto inclui: limitar por quantidade de logins, por horários, limitar se [...]]]></description>
			<content:encoded><![CDATA[<p>O PAM (Pluggable Authentication Modules) é uma boa forma de controlar a autenticação para os diversos programas na plataforma Linux. Este artigo apresenta algumas formas básicas para se limitar as ações dos usuários em um sistema Linux com algumas das configurações disponíveis do PAM. Isto inclui: limitar por quantidade de logins, por horários, limitar se o usuário pode gastar muita memória ou não, entre outros.</p>
<p><span id="more-821"> </span></p>
<h2>1. Por que PAM?</h2>
<p>Há muito tempo atrás, coisa de décadas, toda aplicação de um sistema Linux utilizava seus próprios mecanismos de configuração/autenticação. Então cada programa tinha dentro do seu código o mecanismo para, por exemplo, autenticar o usuário olhando no arquivo /etc/passwd. Agora imagine no caso da base de usuários mudar para outro lugar que não seja o /etc/passwd, algo como um servidor de banco de dados ou um LDAP? Ou um NIS? Primeiro: teria-se que descobrir se todas as aplicações suportavam o tipo de armazenamento de contas, segundo: teria que configurar todas as aplicações.</p>
<p>O PAM surgiu como um intermediador entre as aplicações e o mecanismo de autenticação. Todas as aplicações agora têm suporte ao PAM, que tem uma interface de comunicação única. Então quando quisermos fazer qualquer modificação de onde autenticar, basta apenas modificar a configuração do PAM e todo o resto das aplicações já estará configurada automaticamente. Muito mais prático.</p>
<p><span id="more-101"></span></p>
<p>Por se tornar o intermediário, o PAM também pode conter outras coisas que não fazem parte da “autenticação” dos usuários. Ele pode ter outros “módulos” que fazem tarefas quando um usuário é logado, ou não. Por exemplo, o módulo pam_mkhomedir pode criar um diretório HOME automaticamente se o usuário logado não tiver um HOME no sistema. O módulo pam_wheel pode ser usado para verificar se um usuário pertence ao grupo wheel ou não e permitir que ele se torne root sem precisar de senha. Cada módulo faz uma coisa, e esses módulos podem ser encontrados no diretório <strong>/lib/security</strong> (Ou <strong>/lib64/security</strong> em sistemas 64-bits).</p>
<h2>2. Limitação dos usuários</h2>
<p>Sabendo que cada módulo pode ser responsável por algum tipo de recurso para os logins no PAM, vamos trabalhar alguns módulos que produzem limitações aos usuários no sistema. Estes módulos são: <strong>pam_limits</strong>, para limites dentro de uma sessão; e <strong>pam_time</strong> para restrição de logins em certos períodos.</p>
<h3>2.1. Configuração Inicial</h3>
<p>Para que tanto o pam_limits, quanto o pam_time funcionem, eles precisam estar habilitados na sua distribuição e configuração do PAM. Geralmente o pam_limits já vem por padrão na grande maioria das distribuições, mas o pam_time nunca vem habilitado por padrão.</p>
<p>A configuração do PAM não é tão simples assim como a gente gostaria que fosse, então vou explicar aqui apenas o básico para aprendermos à habilitar as funcionalidades que queremos.</p>
<p>Todas as configurações do PAM estão contidas no diretório <strong>/etc/pam.d</strong>. Dentro deste diretório, cada arquivo representa o que um programa vai utilizar de mecanismo PAM. Por exemplo, o arquivo <strong>/etc/pam.d/su</strong> vai ser utilizado pelo programa <em>su</em> para saber como ele vai autenticar os usuários.</p>
<p>Para facilitar um pouco a vida dos usuários, as distribuições unificam as configurações comuns em apenas alguns arquivos. Em sistemas baseados em Red Hat EL / Fedora, este arquivo será o <strong>/etc/pam.d/system-auth</strong>, enquanto que em sistemas baseados em Debian, são 4 arquivos: <strong>common-account</strong>, <strong>common-auth</strong>, <strong>common-password</strong> e <strong>common-session</strong>, todos dentro do diretório <strong>/etc/pam.d</strong>.</p>
<p>Vamos aos exemplos, em um sistema Fedora, no system-auth vai ter a linha:</p>
<pre>session     required      /lib/security/pam_limits.so</pre>
<p>O que significa que o pam_limits já está sendo carregado cada vez que o usuário inicie uma sessão. Para habilitar o pam_time, precisamos adicionar uma linha:</p>
<pre>account     requisite     /lib/security/pam_time.so
account     required      /lib/security/pam_unix.so</pre>
<p>A segunda linha (pam_unix) já existia. A primeira linha habilita o pam_time, ou em outras palavras, torna a execução do pam_time <strong>obrigatória</strong> na hora que o usuário for acessar a conta (antes de se logar).</p>
<p>Agora em um sistema Debian, pode-se colocar as duas linhas (do pam_limits e do pam_time) nos arquivos <strong>common-session</strong> e <strong>common-account</strong> respectivamente, que isso irá se aplicar para tudo que utiliza o PAM, assim como fizemos com o <strong>system-auth</strong> no Fedora. Ou você também pode utilizar o arquivo <strong>/etc/pam.d/login</strong>, que é responsável pelos logins locais no sistema.</p>
<p>Dentro do <strong>/etc/pam.d/login</strong> no Debian você já poderá encontrar várias linhas pré-definidas e comentadas. Se procurar pelo pam_limits, vai ver que a linha:</p>
<pre>session    required   pam_limits.so</pre>
<p>Está lá. Se procurar pelo pam_time, vai ver que a linha está comentada:</p>
<pre># account    requisite  pam_time.so</pre>
<p>Então para habilitar basta descomentar e salvar o arquivo.</p>
<p>Com estas duas linhas configuradas no PAM, os limites para os usuários já podem ser configurados!</p>
<h2>3. Limitando por Hora</h2>
<p>Habilitado o pam_time, podemos configurá-lo através do arquivo <strong>/etc/security/time.conf</strong>. Dentro deste arquivo, cada linha vai ser uma restrição para os usuários. Como o próprio arquivo diz, a sintaxe das linhas é:</p>
<pre>serviços;ttys;usuários;horas</pre>
<p>Sendo que:</p>
<ul>
<li><em>serviços</em> significa o nome do serviço PAM para se restringido. Exemplos: <strong>samba</strong>, <strong>su</strong>, <strong>login</strong>. Use <strong>*</strong> para restringir para tudo.</li>
<li><em>ttys</em> significa em quais terminais a restrição será feita. Exemplo: terminais locais seriam <strong>tty*</strong>. Use <strong>*</strong> para restringir para tudo.</li>
<li><em>usuários</em> significa uma lista dos usuários para a restrição. Múltiplos usuários podem ser feitos com: “fulano|cicrano|beltrano” que significa fulano OU cicrano OU beltrano. O <strong>*</strong> também pode ser utilizado para restringir a todos.</li>
<li><em>horas</em> é a faixa de horas e datas para a restrição. Melhor entendendido nos exemplos.</li>
</ul>
<p>Para aprender melhor, vamos aos exemplos:</p>
<pre>sshd:*:teste:Mo2100-2200</pre>
<p>Na linha acima, o usuário teste <strong>só </strong>poderá acessar o <strong>sshd</strong> das <strong>21:00 até as 22:00 na Segunda-Feira</strong>. A linha:</p>
<pre>sshd:*:teste:!Mo2100-2200</pre>
<p>O usuário teste poderá acessar o <strong>sshd toda hora</strong>, <strong>exceto Segunda-Feira das 21:00 até as 22:00.</strong> A exclamação inverteu totalmente o caso.</p>
<p>No campo da faixa de tempo, podemos usar as abreviações:</p>
<ul>
<li>Su: Domingo</li>
<li>Mo: Segunda</li>
<li>Tu: Terça</li>
<li>We: Quarta</li>
<li>Th: Quinta</li>
<li>Fr: Sexta</li>
<li>Sa: Sábado</li>
<li>Wk: Finais de semana (Sábado e Domingo)</li>
<li>Wd: Dias da semana (Segunda à Sexta)</li>
<li>Al: Todos os dias</li>
</ul>
<p>E como horários, basta usar faixas de horas como 2100-2200 (21 horas até 22 horas), ou 1732-1915 (17:32 até as 19:15).</p>
<p>Mais exemplos:</p>
<pre>sshd:*:hugo:Wd0800-1800</pre>
<p>O usuário <strong>hugo</strong> só poderá acessar o <strong>sshd</strong> em horário comercial, ou seja, de Segunda à Sexta das 08:00 da manhã até as 18:00.</p>
<pre>*:*:silvia|lisa:!Al1200-1800</pre>
<p>As usuárias <strong>silvia</strong> e <strong>lisa</strong> <strong>não</strong> vão poder acessar <strong>nada</strong> durante todos os dias, das 12:00 às 18:00.</p>
<pre>samba:*:guest:We1200-1201</pre>
<p>O usuário <strong>guest</strong> só vai poder acessar o serviço PAM <strong>samba</strong> na quarta-feira das 12:00 as 12:01! Boa sorte pra ele!</p>
<p>Lembre-se, a partir do momento que você salva o arquivo de configuração <strong>time.conf</strong> as configurações já estarão funcionando.</p>
<h2>4. Limitando recursos</h2>
<p>Agora é a vez do pam_limits. O arquivo de configuração do pam_limits é o <strong>/etc/security/limits.conf</strong>. Dentro dele, as linhas serão configuradas da seguinte forma:</p>
<pre>usuario/grupo      tipo de limite      recurso      valor do limite</pre>
<p>Em <em>usuário/grupo</em>, podemos colocar um <strong>*</strong> para especificar todos os usuários, colocar um nome de usuário qualquer ou um nome de grupo, começando com <strong>@</strong>.</p>
<p>No tipo de limite, existem dois tipos possíveis: <em>soft</em> e <em>hard</em>. Quando o limite do tipo <em>soft</em> é chegado, o sistema avisa que chegou no limite mas não restringe nada. Se o limite for do tipo <em>hard</em>, o sistema simplesmente restringe o recurso e não deixa passar dalí. O soft então serve apenas para um “aviso” amigável, então na dúvida o <em>hard</em> é quem manda!</p>
<p>O recurso e o valor do limite são os importantes aqui. Alguns dos recursos:</p>
<ul>
<li><strong>core</strong> – Limite do tamanho do arquivo coredump (em KB). É a mesma configuração que obtemos com o comando “ulimit -c” da shell.</li>
<li><strong>data</strong> – Tamanho máximo de segmento de dados que um programa pode usar. Também como: ulimit -d no bash.</li>
<li><strong>fsize</strong> – Tamanho máximo de algum arquivo que o usuário possa criar. Também: ulimit -f.</li>
<li><strong>memlock</strong> – Tamanho de memória alocada que os programas podem usar (em KB). Também: ulimit -l.</li>
<li><strong>nofiles</strong> – Número máximo de arquivos abertos ao mesmo tempo. Também: ulimit -n.</li>
<li><strong>rss</strong> – Tamanho máximo de memória compatilhada (em KB). Também: ulimit -m.</li>
<li><strong>stack</strong> – Valor máximo de um processo executado (em KB). Também: ulimit -s.</li>
<li><strong>cpu</strong> – Tempo máximo em minutos de uso da CPU. Também: ulimit -t.</li>
<li><strong>nproc</strong> – Número máximo de processos executados ao mesmo tempo. Também: ulimit -u.</li>
<li><strong>as</strong> – Limite em KB de espaço de endereçamento.</li>
<li><strong>maxlogins</strong> – Número máximo de logins para esse usuário</li>
<li><strong>maxsyslogins</strong> – Número máximo de logins no sistema</li>
<li><strong>priority</strong> – Em qual prioridade padrão os processos desse usuário devem rodar.</li>
<li><strong>locks</strong> – Número máximo de arquivos de locks que podem ser gerados pelo usuário. Também: ulimit -x.</li>
<li><strong>nice</strong> – Número máximo de prioridade que o usuário pode setar, entre -20 (máxima prioridade) e 19 (mínima prioridade). Também: ulimit -e.</li>
</ul>
<p>Agora vamos entender melhor com os exemplos:</p>
<pre>teste      hard     fsize    100</pre>
<p>O usuário <strong>teste</strong> não pode criar arquivos maiores que 100KB (<strong>fsize 100</strong>). Testando:</p>
<pre>$ dd if=/dev/zero of=arquivo bs=1024 count=100
100+0 records in
100+0 records out
102400 bytes (102 kB) copied, 0.0011873 s, 86.2 MB/s</pre>
<p>Ele deixou criar um arquivo de 100KB. Agora vou criar um de 105!</p>
<pre>$ dd if=/dev/zero of=arquivo bs=1024 count=105
File size limit exceeded</pre>
<p>Outro exemplo:</p>
<pre>teste     hard    nproc  5</pre>
<p>O usuário <strong>teste</strong> só poderá executar 5 processos. Tenha em mente que os processos do bash por exemplo também contam. Então colocar 1 não é uma boa idéia assim se seu usuário tiver executando uma shell interativa.</p>
<pre>@teste     hard     maxlogins     1</pre>
<p>Todo mundo do <strong>grupo teste</strong> só pode se logar uma vez no sistema.</p>
<pre>dumau           hard    memlock          20000</pre>
<p>O usuário <strong>dumau</strong> só pode usar 20MB de memória no sistema.</p>
<pre>@users    hard    priority    19</pre>
<p>Todos os usuários do <strong>grupo users</strong> vão executar seus processos automaticamente com prioridade mais baixa do sistema.</p>
<h3>4.1. Boas práticas de limites de recursos</h3>
<p>Para ter um sistema um pouco mais seguro se você tiver muitos acessos externos, imponha limites tais como:</p>
<ul>
<li>memlock: Coloque um número legal para os programas de shell funcionarem bem, mas não um número tão alto, assim seus usuários não vão conseguir acabar com toda a memória do seu sistema.</li>
<li>nproc: Coloque um número mediano, para que seus usuários possam executar todas suas ferramentas shell mas não consigam, por exemplo, fazer um fork bomb e explodir sua máquina abrindo processos infinitamente.</li>
<li>fsize: Coloque um número consideravelmente inferior ao tamanho do seu HD/sistema de arquivos.</li>
</ul>
<h2>5. Conclusão</h2>
<p>Com o PAM podemos ter um controle maior sobre o que os usuários fazem dentro de um sistema. Em servidores, por exemplo, isso é mais do que essencial!</p>
<p>Fonte: <a title="www.devin.com.br" href="www.devin.com.br">www.devin.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2009/10/29/limitando-usuarios-com-o-pam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Processos no Linux</title>
		<link>http://www.tutoriall.com.br/2009/10/29/processos-no-linux/</link>
		<comments>http://www.tutoriall.com.br/2009/10/29/processos-no-linux/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 22:52:11 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/?p=98</guid>
		<description><![CDATA[Saber o que está sendo executado na máquina é essencial para entender o funcionamento. Este tutorial traz uma introdução sobre os processos e threads no Linux: como listá-los, finalizá-los, interpretá-los. Cada programa executado, desde a inicialização do sistema, é definido com o que chamamos de processo. Cada um desses processos recebe um número de identificação [...]]]></description>
			<content:encoded><![CDATA[<p>Saber o que está sendo executado na máquina é essencial para entender o funcionamento. Este tutorial traz uma introdução sobre os processos e threads no Linux: como listá-los, finalizá-los, interpretá-los.</p>
<p><span id="more-593"> </span></p>
<p>Cada programa executado, desde a inicialização do sistema, é definido com o que chamamos de processo. Cada um desses processos recebe um número de identificação próprio, chamado PID (Process ID). Além do PID, cada processo tem um conjunto de informações como: nome do comando, uso da memória, usuário e grupo que o executou, entre outros.</p>
<p>As informações de todos os processos do sistema ficam armazenadas no pseudo-diretório /proc. Dentro deste diretório, cada sub-diretório numérico contém as informações do processo com o número PID correspondente. É deste lugar que os comandos relacionados aos processos retiram suas informações.<br />
<a name="ps"></a></p>
<h2>ps – Listar processos</h2>
<pre>Sintaxe: $ ps [opções]</pre>
<p>Lista os processos em execução, apresentando o PID e outras informações sobre o processo, como o comando executado (CMD) e estado atual do processo (STAT).</p>
<p>Exemplo:</p>
<pre>$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   1932   704 ?        Ss   Aug29   0:02 init [2]
root         2  0.0  0.0      0     0 ?        S&lt;   Aug29   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S&lt;   Aug29   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S&lt;   Aug29   0:06 [ksoftirqd/0]
...corte...
daemon    2998  0.0  0.0   1868   432 ?        Ss   Aug29   0:00 /usr/sbin/atd
root      3017  0.0  0.0   3272   928 ?        Ss   Aug29   0:00 /usr/sbin/cron
root      3074  0.0  0.0   2972   644 ?        Ss   Aug29   0:00 /usr/bin/kdm
root      3077  1.7 18.5 390652 384220 tty7    SLs+ Aug29  39:30 /usr/bin/X -br
...corte...
root      3092  0.0  0.0   1608   508 tty1     Ss+  Aug29   0:00 /sbin/getty
root      3093  0.0  0.0   1608   508 tty2     Ss+  Aug29   0:00 /sbin/getty
root      3094  0.0  0.0   1608   504 tty3     Ss+  Aug29   0:00 /sbin/getty
root      3095  0.0  0.0   1608   504 tty4     Ss+  Aug29   0:00 /sbin/getty
root      3096  0.0  0.0   1608   504 tty5     Ss+  Aug29   0:00 /sbin/getty
root      3097  0.0  0.0   1608   508 tty6     Ss+  Aug29   0:00 /sbin/getty
eitch  9403  4.5  0.1   5900  3364 tty1     S    23:50   0:00 -bash
eitch  9416  2.0  0.1   5304  2388 tty1     S+   23:50   0:00 vi testando</pre>
<p>O parâmetro aux faz com que o comando ps mostre todos os processos do sistema, associado aos seus respectivos usuários e de forma detalhada. Nesta forma detalhada, podemos ver vários “campos” especificados na primeira linha. Eles são:  <span id="more-98"></span></p>
<table border="1" align="center">
<tbody>
<tr>
<td>USER</td>
<td>Usuário que iniciou o processo (dono).</td>
</tr>
<tr>
<td>PID</td>
<td>Número único do processo.</td>
</tr>
<tr>
<td>%CPU</td>
<td>Utilização da CPU em porcentagem.</td>
</tr>
<tr>
<td>%MEM</td>
<td>Utilização da memória física do sistema em porcentagem.</td>
</tr>
<tr>
<td>VSZ</td>
<td>Memória virtual utilizada pelo processo, inclui a memória física e utilizada por bibliotecas compartilhadas.</td>
</tr>
<tr>
<td>RSS</td>
<td>Memória física utilizada pelo processo. Inclui memória utilizada por bibliotecas compartilhadas.</td>
</tr>
<tr>
<td>TTY</td>
<td>Terminal ao qual o processo pertence. Quando não há um terminal controlando (como no caso dos processos do sistema, kernel e processos do servidor gráfico) aparecerá o sinal de interrogação.</td>
</tr>
<tr>
<td>STAT</td>
<td>Estado atual do processo (mais detalhes depois).</td>
</tr>
<tr>
<td>START</td>
<td>A hora em que o processo foi iniciado. Caso a hora seja do dia anterior, é representado pelo dia e mês.</td>
</tr>
<tr>
<td>TIME</td>
<td>Tempo cumulativo de CPU, ou seja, por quanto tempo o processo utilizou a CPU.</td>
</tr>
<tr>
<td>COMMAND</td>
<td>O comando executado e todos seus argumentos. Caso o tamanho do comando seja maior do que a linha do terminal, ele ignora o resto (não passa para a próxima linha). Para mostrar todo o argumento, utilize o parâmetro w para ajustar o comprimento.</td>
</tr>
</tbody>
</table>
<p>Em relação ao estado do processo, uma letra estará representando um destes estados:</p>
<table border="1" align="center">
<tbody>
<tr>
<td>D</td>
<td>Descansando enquanto espera por outra ação (geralmente E/S), sem possibilidade de interrupção.</td>
</tr>
<tr>
<td>R</td>
<td>Executando (Running).</td>
</tr>
<tr>
<td>S</td>
<td>Descansando enquanto espera por outra ação (esperando algum evento ser completado), com possibilidade de interrupção.</td>
</tr>
<tr>
<td>T</td>
<td>Parado, suspendido. Talvez pelo gerenciamento de tarefas da shell (CTRL+Z).</td>
</tr>
<tr>
<td>Z</td>
<td>Zumbi. SINISTRO! O processo foi terminado mas não foi removido por quem o chamou.</td>
</tr>
</tbody>
</table>
<p>Uma outra forma de ver os processos, agora organizados por árvore:</p>
<pre>$ ps axjf</pre>
<p><a name="top"></a></p>
<h2>top – Lista processos em tempo real</h2>
<pre>Sintaxe: $ top [opções]</pre>
<p>Mostra ao usuário os processos ativos no sistema da mesma forma que o ps, mas em tempo real e em uma certa ordem. Por padrão, o top mostra nas primeiras linhas os processos que mais gastam processamento (em porcentagem).</p>
<p>Ao executar o top sem argumentos, sua taxa de atualização na tela é de 3 em 3 segundos. Para mudar para, por exemplo, 1 segundo:</p>
<pre>$ top -d 1</pre>
<p>Uma vez dentro do programa, a tecla h mostra a ajuda. Uma das opções úteis é a tecla f que permite especificar a ordem das linhas de acordo com os campos (mais utilização de cpu, memória, maior número UID de usuário, entre outros).<br />
<a name="pstree"></a></p>
<h2>pstree – Mostra processos em forma de árvore hierárquica</h2>
<pre>Sintaxe: $ pstree [opções]</pre>
<p>Mostra de forma simples e utilizando caracteres ASCII uma árvore hierarquica dos processos do sistema.</p>
<h2>Sinais de Processos</h2>
<p>Todo processo, além da entrada padrão que pode ser controlada dentro do programa, também pode receber o que chamamos de “sinal”. Este sinal é o modo que o sistema operacional tem para lidar com o processo. Um sinal pode dizer ao programa para terminar, ou outro sinal pode simplesmente terminar o programa sem dizer nada. Apertar um CTRL+C (Interrupção) no terminal é um sinal que o sistema manda para o programa atual.</p>
<p>Para saber a lista de sinais, digite:</p>
<pre>$ man 7 signal</pre>
<p>Quem faz uma aplicação pode programar para que quando um sinal for recebido pelo processo, o programa se comporte de uma certa maneira. O sinal SIGTERM (15) por exemplo, é chamado quando o programa é finalizado normalmente. Já o sinal SIGINT (2) é chamado quando o usuário aperta o CTRL+C e o programa tem que lidar com essa interrupção.</p>
<p>Os únicos sinais que são forçados pelo kernel são os sinais SIGKILL (9) e SIGSTOP (19). Neste caso, não importa o que o programador tentou fazer, vai ser executada as funções dos sinais nos processos.</p>
<p>Os sinais mais importantes são: SIGHUP (1), SIGINT (2), SIGKILL (9), SIGSEGV (11), SIGTERM (15) e SIGSTOP (19).</p>
<p>O SIGHUP (1) é geralmente utilizado pelos programas para recarregar seus arquivos de configuração. Um exemplo de programa que utiliza o SIGHUP para este fim é o inetd/xinetd.</p>
<p>O SIGINT (2) é recebido quando o usuário aperta a combinação de teclas CTRL+C. A grande maioria dos programas utiliza esse sinal para indicar uma interrupção do programa, para parar o que estiver fazendo e continuar com outra ação (ou finalizar o programa).</p>
<p>O SIGKILL (9) é o sinal que mata o processo. Não importa o que o processo esteja fazendo ou se ele é importante, o kernel irá forçar a sua finalização imediatamente. Este sinal não pode ser bloqueado ou rejeitado pelo programa.</p>
<p>O SIGSEGV (11) é um sinal recebido quando há alguma falha na alocação de memória. Também conhecido como “Segmentation Fault”, ele geralmente indica um problema no programa ou na pior das hipóteses problemas na memória física do computador.</p>
<p>O SIGTERM (15) é recebido pelos programas dizendo-os para finalizar de forma normal. É equivalente a fechar uma janela em um ambiente gráfico.</p>
<p>O SIGSTOP (19) é o sinal que suspende os programas, ou “os deixam imóveis” para poder manipulá-los como no uso do CTRL+Z na shell, ou então quando se está executando um trace em um programa.<br />
<a name="kill-killall"></a></p>
<h2>kill, killall – Envia um sinal ao processo</h2>
<pre>Sintaxe: $ kill [-SINAL] &lt;PID&gt;
Sintaxe: $ killall [-SINAL] &lt;nome do processo&gt;</pre>
<p>Apesar do nome, o comando kill não mata um processo e sim apenas manda um sinal para ele. Mas como já sabemos, há um sinal onde o kernel literalmente mata o processo. Para obter uma lista dos sinais suportados pelo sistema através do comando kill, digite:</p>
<pre>$ kill -l</pre>
<p>Para o comando kill, precisamos primeiro identificar o seu número PID, para depois mandar o sinal.</p>
<p>Por exemplo, temos um processo executando (vim) e queremos que ele seja morto (SIGKILL) sem aviso prévio:</p>
<pre>$ ps aux
 USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
...corte...
eitch    2315  0.1  0.6   9364  3544 pts/1    S+   12:46   0:02 vim arquivo</pre>
<p>Uma vez obtido o PID do processo:</p>
<pre>$ kill -9 2315</pre>
<p>Então o processo 2315 será morto sem piedade através do sinal SIGKILL.</p>
<p>Neste exemplo anterior, tivemos que obter o PID do processo para enviar um sinal. Com o comando killall, podemos mandar um sinal para todos os programas que têm um certo nome no comando. Utilizando desta forma, não é preciso saber o PID, mas por outro lado se houver dois processos com o mesmo nome, o sinal será mandado para os dois.</p>
<p>Matando o mesmo processo do exemplo anterior, agora utilizando o comando killall:</p>
<pre>$ killall vim</pre>
<p><a name="prioridades-processos"></a></p>
<h2>Prioridades de Processos</h2>
<p>Muita gente não sabe, mas nos sistemas Linux mais modernos, podemos ter um controle de prioridade de processos utilizando a CPU. Estas prioridades funcionam para favorecer melhor um comando à outro. Por exemplo:</p>
<ul>
<li>Programa 1 tem prioridade “alta”</li>
<li>Programa 2 tem prioridade “normal”</li>
</ul>
<p>Se o Programa 2 resolve gastar quase todo o processamento no sistema (como por exemplo: compactação de arquivos em bzip2), os programas que estão em prioridade alta não serão completamente afetados.</p>
<p>Se o Programa 1 estivesse em prioridade “normal”, ele teria que dividir o processamento com o Programa 2, mesmo que ele usasse pouquinho. Mas como ele está em “alta” prioridade, ele sempre vai ter a preferência no sistema, ao invés do Programa 2.</p>
<p>A faixa de prioridades é:</p>
<ul>
<li>-20 (Prioridade Máxima)</li>
<li>-19</li>
<li>…</li>
<li>-1</li>
<li>0 (Prioridade Padrão)</li>
<li>1</li>
<li>…</li>
<li>18</li>
<li>19 (Prioridade Mínima)</li>
</ul>
<p>Sendo assim, por padrão, todo comando executado “normalmente” recebe a prioridade 0 (Zero). E quanto menor for esse número, maior a prioridade do processo na CPU (Sim, é o contrário! Quanto menor, maior; quanto maior, menor! <img src='http://www.tutoriall.com.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>Por padrão, os comandos ligados ao kernel e o sistema operacional em si têm prioridade inferior a 0 (aqui no meu sistema, vejo vários processos com prioridade -5). Isso nos faz lembrar que <strong>você precisa ser root para configurar um processo com prioridade menor que 0</strong>. Isso faz sentido, já que em um sistema multi-usuário, os usuários normais compartilham o padrão 0, e podem escolher apenas se o processo pode ter uma prioridade mais baixa, assim não interferindo com os processos do sistema, que teoricamente são mais importantes.</p>
<p>Para listar as prioridades dos processos, podemos utilizar o ps:</p>
<pre>$ ps axo user,ni,command
USER      NI COMMAND
root       0 init [2]
root      -5 [kthreadd]
root       - [migration/0]
root      -5 [ksoftirqd/0]
root       - [watchdog/0]
root       - [migration/1]
[...]
root       0 /usr/sbin/cron
root       0 /usr/bin/kdm -config /var/run/kdm/kdmrc
root       0 /usr/bin/X -br -nolisten tcp :0 vt7 -auth /var/run/xauth/A:0-QPhClu
root       0 /sbin/getty 38400 tty1
[...]
hugo       0 kdeinit Running...
hugo       0 dcopserver [kdeinit] --nosid
hugo       0 klauncher [kdeinit] --new-startup
hugo       0 kded [kdeinit] --new-startup
hugo       0 kwrapper ksmserver
[..]
root      -2 dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/lib/dhcp3/dhclient.eth0.leases eth0
hugo       0 keepassx
hugo       0 /bin/bash
hugo      19 tail -f teste.txt
hugo       0 ps axo user,ni,command</pre>
<p>Neste comando, a primeira coluna é o usuário que está executando o processo; a segunda é a prioridade de execução; e a terceira é o comando em si. Dá pra perceber bem que a maioria dos comandos recebe 0 como prioridade, com algumas excessões.</p>
<p><a name="nice-renice"></a></p>
<h2>nice, renice – Configura prioridades de CPU de um comando ou processo</h2>
<pre>Sintaxe: $ nice [-n PRIORIDADE] [comando ...]
Sintaxe: $ renice &lt;PRIORIDADE&gt; [-p PID]</pre>
<p>Uma vez que já sabemos como funciona a prioridade de processos no Linux, podemos controlar estas prioridades com os comandos <em>nice</em> e <em>renice</em>.</p>
<p>Por exemplo, supomos que eu esteja trabalhando em um servidor Web bastante movimentado. O Apache (servidor HTTP) está sendo executado com prioridade 0 (normal), e está muito ocupado servindo todas as páginas dinâmicas para os vários usuários ao mesmo tempo. Então, toca o telefone e me pedem para fazer um backup de todas as páginas do servidor, algo em torno de uns 10gb, tudo localizado no diretório /var/www.</p>
<p>Para fazer o backup, eu utilizei o seguinte comando:</p>
<pre>tar -zcf /var/lib/backup/backup-htdocs-20090520.tar.gz /var/www</pre>
<p>Ou seja, agrupar e compactar todo o diretório /var/www e seu conteúdo no arquivo backup-htdocs-20090520.tar.gz. Estaria certo eu fazer assim?</p>
<p>A resposta é sim e não. Com o comando acima, seria criado com sucesso o backup que precisava, mas o custo é muito alto… Enquanto o sistema compacta todos os 10gb e colocava no arquivo, o Apache tinha que <strong>dividir</strong> as tarefas dele com esse comando! Isso significa que os usuários Web teriam suas páginas entregues de forma mais lenta… Como a prioridade aqui é servidor as páginas, teríamos que usar o comando:</p>
<pre>nice -n 19 tar -zcf /var/lib/backup/backup-htdocs-20090520.tar.gz /var/www</pre>
<p>Neste caso, o backup seria feito do mesmo jeito, mas a prioridade dele seria a mínima! Toda vez que o Apache precisasse de muito processamento, o sistema ia dar prioridade total ao Apache, deixando um pouco de lado o backup. Resultado: os usuários do Apache não seriam de maneira alguma afetados e o sistema não iria ter uma carga maior do que o esperado. Ao invés disso, o backup iria demorar mais, pois tinha que esperar primeiro os outros processos usarem a CPU, mas seria feito da mesma forma.</p>
<p>Então é bem simples: primeiro escolhemos a prioridade antes de executar o comando, e fazemos o mesmo comando, colocando antes dele o “<em>nice -n</em>“. Mas e se o comando já está sendo executado, como no primeiro exemplo aqui? Neste caso, usamos o comando <em>renice</em> para redefinir a prioridade.</p>
<p>Para utilizar o comando renice, precisamos achar primeiro o PID do processo, depois executar o comando neste PID, exemplo:</p>
<pre>$ ps axo user,pid,ni,command | grep tar
hugo      4221   0 tar -zcf /var/lib/backup/backup-htdocs-20090520.tar.gz /var/www

$ renice 19 -p 4221
4221: old priority 0, new priority 19

$ ps axo user,pid,ni,command | grep tar
hugo      4221  19 tar -zcf /var/lib/backup/backup-htdocs-20090520.tar.gz /var/www</pre>
<p>Nos comandos acima, eu: achei o processo que estava executando o backup, e identifiquei que o PID dele era 4221. Note também que a prioridade do processo é 0 (normal). Como queremos colocar o comando em uma prioridade baixa, então utilizei o comando <strong>renice</strong> para redefinir essa prioridade: de 0 para 19. Depois utilizei novamente o comando <em>ps</em> para listar o processo e vi que a prioridade dele tinha mudado.</p>
<p>Como último exemplo, lembre-se que usuários comuns (aqui em nosso caso, o usuário hugo) não podem ultrapassar prioridades maiores que 0, ou seja, não podem colocar prioridades negativas. Veja o que acontece no mesmo exemplo anterior:</p>
<pre>$ nice -n -10 tar -zcf /var/lib/backup/backup-htdocs-20090520.tar.gz /var/www
nice: cannot set niceness: Permission denied</pre>
<p>Quando tentei utilizar a prioridade -10, o sistema não deixou e retornou a mensagem de permissão negada. Se fôssemos root, neste caso, iria funcionar.</p>
<p><a name="lsof"></a></p>
<h2>lsof – Listar arquivos abertos</h2>
<pre>Sintaxe: $ lsof [opções] [arquivo]</pre>
<p>O comando lsof é um dos mais importantes comandos para quem administra sistemas Linux, principalmente na área de segurança. Este comando lista <strong>todos</strong> os arquivos abertos por todos os processos. Aqui, quando eu falo arquivo, não são apenas arquivos comuns, mas sim recursos que funcionam como arquivos (podem ser abertos, mapeados na memória, entre outros). Isso inclui bibliotecas, sockets, arquivos comuns, diretórios e por aí vai.</p>
<p>Em outras palavras, este comando nos fornece um mapeamento completo do que o programa está usando no sistema. Lembre-se que usando apenas o comando lsof, esta lista fica muito grande, pois mostra todos os arquivos de todos os processos. Por exemplo:</p>
<pre>$ lsof -n
[...]
bash      4409          hugo  cwd       DIR      254,1     4096 2752514 /home/hugo
bash      4409          hugo  rtd       DIR      254,1     4096       2 /
bash      4409          hugo  txt       REG      254,1   700492 5849112 /bin/bash
bash      4409          hugo  mem       REG      254,1    42504 5652815 /lib/i686/cmov/libnss_files-2.7.so
bash      4409          hugo  mem       REG      254,1    38444 5652817 /lib/i686/cmov/libnss_nis-2.7.so
bash      4409          hugo  mem       REG      254,1    87800 5652810 /lib/i686/cmov/libnsl-2.7.so
bash      4409          hugo  mem       REG      254,1    30436 5652811 /lib/i686/cmov/libnss_compat-2.7.so
bash      4409          hugo  mem       REG      254,1  1282816 5213150 /usr/lib/locale/locale-archive
bash      4409          hugo  mem       REG      254,1  1413540 5652651 /lib/i686/cmov/libc-2.7.so
bash      4409          hugo  mem       REG      254,1     9680 5652657 /lib/i686/cmov/libdl-2.7.so
bash      4409          hugo  mem       REG      254,1   202188 7406484 /lib/libncurses.so.5.6
bash      4409          hugo  mem       REG      254,1    25700 3178882 /usr/lib/gconv/gconv-modules.cache
bash      4409          hugo  mem       REG      254,1   113248 5653602 /lib/ld-2.7.so
bash      4409          hugo    0u      CHR      136,3                5 /dev/pts/3
bash      4409          hugo    1u      CHR      136,3                5 /dev/pts/3
bash      4409          hugo    2u      CHR      136,3                5 /dev/pts/3
bash      4409          hugo  255u      CHR      136,3                5 /dev/pts/3
[...]</pre>
<p>No exemplo acima, eu peguei apenas um fragmento do comando, indicando o que o comando <em>bash</em> está fazendo. Dá pra ver que bibliotecas ele está usando, onde ele está atuando, entre outros. O parâmetro “-n”, que usei no exemplo acima, serve para que se o comando retornar algum endereço de rede (IP, por exemplo), ele não tente resolver com DNS, assim o retorno do comando fica mais rápido.</p>
<p>Alguns dos usos mais comuns incluem:</p>
<ul>
<li>Ver se algum processo está escutando uma porta na rede suspeita, ou conectado em algum lugar suspeito. Por exemplo, vários scripts de invasão ficam escondidos no sistema (com nomes de outros processos), conectados a servidores de IRC desconhecidos. Com o lsof, dá pra saber que estes comando estão fazendo algo que não é bem o que deveriam fazer <img src='http://www.tutoriall.com.br/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ;</li>
<li>Ver que processo está usando um certo arquivo (lsof );</li>
<li>Ver exatamente que tipos de conexão estão sendo feitas no sistema;</li>
<li>Medir as memórias utilizadas pelos processos.</li>
</ul>
<p>Por exemplo, quero ver todos os processos que utilizam o arquivo /dev/null:</p>
<pre>$ lsof /dev/null
COMMAND    PID USER   FD   TYPE DEVICE SIZE NODE NAME
x-session 3193 hugo    0r   CHR    1,3       617 /dev/null
dbus-laun 3228 hugo    0r   CHR    1,3       617 /dev/null
dbus-laun 3228 hugo    1u   CHR    1,3       617 /dev/null
dbus-laun 3228 hugo    2u   CHR    1,3       617 /dev/null
dbus-laun 3228 hugo    4u   CHR    1,3       617 /dev/null
dbus-daem 3229 hugo    0u   CHR    1,3       617 /dev/null
dbus-daem 3229 hugo    1u   CHR    1,3       617 /dev/null
dbus-daem 3229 hugo    2u   CHR    1,3       617 /dev/null
dbus-daem 3229 hugo    4u   CHR    1,3       617 /dev/null
kwrapper  3275 hugo    0r   CHR    1,3       617 /dev/null
gconfd-2  3393 hugo    0u   CHR    1,3       617 /dev/null
gconfd-2  3393 hugo    1u   CHR    1,3       617 /dev/null
gconfd-2  3393 hugo    2u   CHR    1,3       617 /dev/null
gconfd-2  3393 hugo    3u   CHR    1,3       617 /dev/null</pre>
<p>Este comando é bem parecido com o comando “fuser /dev/null”, que também mostra que processos estão utilizando o arquivo /dev/null, mas o lsof nos dá mais detalhes.</p>
<p>Quero ver agora que processos estão utilizando conexões TCP no meu sistema:</p>
<pre>$ lsof -n | grep TCP
firefox-b 3327          hugo   12u     IPv4      41100              TCP 192.168.1.100:58945-&gt;66.102.1.100:www (ESTABLISHED)
firefox-b 3327          hugo   39u     IPv4      41951              TCP 192.168.1.100:45640-&gt;72.14.247.18:https (ESTABLISHED)
firefox-b 3327          hugo   42u     IPv4      39570              TCP 192.168.1.100:47900-&gt;72.14.247.19:https (ESTABLISHED)
wish8.5   3535          hugo    7u     IPv4       9331              TCP 127.0.0.1:65182 (LISTEN)
wish8.5   3535          hugo    8u     IPv4       9578              TCP 192.168.1.100:46238-&gt;207.46.106.108:msnp (ESTABLISHED)</pre>
<p>Repare que na penúltima linha do comando anterior, o processo “wish8.5″ está escutando (LISTEN) uma conexão TCP na porta 65182. Que tal a gente saber todos os processos que estão escutando portas de rede?</p>
<pre># lsof -n | grep LISTEN
rpcbind    1264       rpc    8u     IPv4       4159                  TCP *:sunrpc (LISTEN)
snmpd      1341      root    8u     IPv4       4561                  TCP 127.0.0.1:smux (LISTEN)
sshd       1351      root    3u     IPv4       4451                  TCP *:domain (LISTEN)
postmaste  1553  postgres    3u     IPv6       4895                  TCP *:postgres (LISTEN)
postmaste  1553  postgres    4u     IPv4       4896                  TCP *:postgres (LISTEN)
proftpd    1601       ftp    0u     IPv6       4858                  TCP *:ftp (LISTEN)
mysqld     7882     mysql   10u     IPv4    3835186                  TCP *:mysql (LISTEN)
named     31990     named   21u     IPv4  107763358                  TCP 127.0.0.1:domain (LISTEN)
named     31990     named   60u     IPv4  107763397                  TCP 127.0.0.1:rndc (LISTEN)</pre>
<p>Repare que para o comando acima, eu utilizei o <strong>root</strong> (por isso o # antes do comando). Isto é necessário pois quando utilizamos o lsof como usuário normal, não temos todas as permissões necessárias para verificar todos os processos, então a saída do comando vai ficar bem restrita. Executando como root, podemos ter todas as informações possíveis.</p>
<p>Fonte: <a href="http://www.devin.com.br">www.devin.com.br</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2009/10/29/processos-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux: Criando imagens ISO personalizada</title>
		<link>http://www.tutoriall.com.br/2008/04/20/linux-criando-imagens-iso-personalizada/</link>
		<comments>http://www.tutoriall.com.br/2008/04/20/linux-criando-imagens-iso-personalizada/#comments</comments>
		<pubDate>Sun, 20 Apr 2008 03:44:36 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[DVD]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[aptitude]]></category>
		<category><![CDATA[iso]]></category>
		<category><![CDATA[kiso]]></category>
		<category><![CDATA[nero]]></category>
		<category><![CDATA[nrg]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/20/linux-criando-imagens-iso-personalizada/</guid>
		<description><![CDATA[Caso você deseje criar um arquivo ISO personalizado no Ubuntu, ou queira modificar uma imagem ISO já existente, a solução é o KIso. Para instalá-lo, digite em um terminal: sudo aptitude install kiso Para criar um arquivo ISO, abra o KIso (ALT + F2 e digite “kiso” sem as aspas), clique no botão “Nova imagem” [...]]]></description>
			<content:encoded><![CDATA[<p class="entry-content">
<p class="snap_preview">Caso você deseje criar um arquivo ISO personalizado no Ubuntu, ou queira modificar uma imagem ISO já existente, a solução é o <a href="http://kiso.sourceforge.net/" linkindex="30" target="_blank">KIso</a>. Para instalá-lo, digite em um terminal:</p>
<pre>sudo aptitude install kiso</pre>
<p>Para criar um arquivo ISO, abra o KIso (ALT + F2 e digite “kiso” sem as aspas), clique no botão “Nova imagem” e aperte em “Não” para começar um arquivo vazio. Agora, basta ir adicionando os arquivos desejados.</p>
<p align="center"><a href="http://joaoolavo.files.wordpress.com/2008/03/kiso1.jpg" set="yes" linkindex="31" title="KIso com arquivos pessoais" rel="thumbnail"><img src="http://joaoolavo.files.wordpress.com/2008/03/kiso1.jpg?w=386&amp;h=229" alt="KIso com arquivos pessoais" height="229" width="386" /></a></p>
<p><span id="more-82"></span></p>
<p>Ao terminar, clique em “Salvar imagem” e escolha o nome do arquivo e o local onde irá salvá-lo.</p>
<p>Caso queira, você pode modificar um arquivo ISO, como o de uma distribuição Linux, ou de um DVD. Para isso, abra o KIso, clique em “Abrir imagem” e escolha uma imagem para modificá-la. Então, adicione ou remova os arquivos desejados.</p>
<p>Outra característica interessante do KIso é que ele trabalha também com arquivos NRG, do Nero. Portanto, caso esbarre com uma imagem NRG algum dia, o KIso pode ser usado para convertê-la para ISO.</p>
<p>Fonte: <a href="http://joaoolavo.wordpress.com" target="_blank">joaoolavo.wordpress.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/20/linux-criando-imagens-iso-personalizada/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mudando o MAC da placa de Rede no Linux</title>
		<link>http://www.tutoriall.com.br/2008/04/08/mudando-o-mac-da-placa-de-rede-no-linux/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/mudando-o-mac-da-placa-de-rede-no-linux/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:10:13 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[rede]]></category>
		<category><![CDATA[eth0]]></category>
		<category><![CDATA[MAC]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/mudando-o-mac-da-placa-de-rede-no-linux/</guid>
		<description><![CDATA[Desativar a placa de rede: # ifconfig eth0 down ou # ifdown eth0 Depois é só mudar o MAC: # ifconfig eth0 hw ether BO:TE:LH:OO:11:22 E agora ativamos a placa: # ifconfig eth0 up ou # ifup eth0]]></description>
			<content:encoded><![CDATA[<p>Desativar a placa de rede:<br />
<strong># ifconfig eth0 down</strong> ou <strong># ifdown eth0</strong></p>
<p>Depois é só mudar o MAC:<br />
<strong># ifconfig eth0 hw ether BO:TE:LH:OO:11:22 </strong></p>
<p>E agora ativamos a placa:<br />
#<strong> ifconfig eth0 up</strong> ou <strong># ifup eth0</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/mudando-o-mac-da-placa-de-rede-no-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>windows update no cache do squid.</title>
		<link>http://www.tutoriall.com.br/2008/04/08/windows-update-no-cache-do-squid/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/windows-update-no-cache-do-squid/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:09:04 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[squid]]></category>
		<category><![CDATA[windows update]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/windows-update-no-cache-do-squid/</guid>
		<description><![CDATA[Adicione as seguintes linhas no: /etc/squid/squid.conf refresh_pattern windowsupdate.com/.*\.(cab&#124;exe&#124;dll&#124;msi) 10080 100% 43200 reload-into-ims refresh_pattern download.microsoft.com/.*\.(cab&#124;exe&#124;dll&#124;msi) 10080 100% 43200 reload-into-ims refresh_pattern www.microsoft.com/.*\.(cab&#124;exe&#124;dll&#124;msi) 10080 100% 43200 reload-into-ims refresh_pattern au.download.windowsupdate.com/.*\.(cab&#124;exe&#124;dll&#124;msi) 4320 100% 43200 reload-into-ims depois basta dar um reload no squid com o comando: /etc/init.d/squid reload]]></description>
			<content:encoded><![CDATA[<p>Adicione as seguintes linhas no: /etc/squid/squid.conf</p>
<blockquote><p><code>refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims<br />
refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims<br />
refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi) 10080 100% 43200 reload-into-ims<br />
refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi) 4320 100% 43200 reload-into-ims</code></p></blockquote>
<p>depois basta dar um reload no squid com o comando: /etc/init.d/squid reload</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/windows-update-no-cache-do-squid/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lista de LiveCDs</title>
		<link>http://www.tutoriall.com.br/2008/04/08/lista-de-livecds/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/lista-de-livecds/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 15:05:09 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[CDs]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[livecds]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/lista-de-livecds/</guid>
		<description><![CDATA[Uma dica interessante, para quem sempre esta precisando de um Live CD é o site: http://www.livecdlist.com/ Nele você encontra quase todos os livesCDs disponíveis, com diversas informações sobre eles. Vale a visita!]]></description>
			<content:encoded><![CDATA[<p>Uma dica interessante, para quem sempre esta precisando de um Live CD é o site: <a href="http://www.livecdlist.com/" title="LiveCDs" target="_blank">http://www.livecdlist.com/</a></p>
<p>Nele você encontra quase todos os livesCDs disponíveis, com diversas informações sobre eles.</p>
<p>Vale a visita!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/lista-de-livecds/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando e configurando o samba em menos de 5min</title>
		<link>http://www.tutoriall.com.br/2008/04/08/instalando-e-configurando-o-samba-em-menos-de-5min/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/instalando-e-configurando-o-samba-em-menos-de-5min/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 14:47:54 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[samba]]></category>
		<category><![CDATA[servidor]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/instalando-e-configurando-o-samba-em-menos-de-5min/</guid>
		<description><![CDATA[Passo 1: Instalando o samba $ sudo apt-get update $ sudo apt-get install samba Passo 2: Configurando o Samba: $ sudo cd /etc/samba/ $ sudo mv smb.conf smb.conf2 $ vi smb.conf Passo 3: Colar o seguinte texto: Pressione [INSERT] para poder inserir o texto [global] workgroup = GRUPO server string = %h server (Samba, Ubuntu) [...]]]></description>
			<content:encoded><![CDATA[<p><strong>Passo 1:</strong> Instalando o samba</p>
<blockquote><p>$ sudo apt-get update<br />
$ sudo apt-get install samba</p></blockquote>
<p><strong>Passo 2:</strong> Configurando o Samba:</p>
<blockquote><p>$ sudo cd /etc/samba/<br />
$ sudo mv smb.conf smb.conf2<br />
$ vi smb.conf</p></blockquote>
<p><span id="more-51"></span><br />
<strong>Passo 3:</strong> Colar o seguinte texto:</p>
<p>Pressione <em>[INSERT]</em>  para poder inserir o texto</p>
<blockquote><p>[global]<br />
workgroup = GRUPO<br />
server string = %h server (Samba, Ubuntu)<br />
dns proxy = no<br />
interfaces = lo eth0 eth1<br />
bind interfaces only = true<br />
log file = /var/log/samba/log.%m<br />
max log size = 1000<br />
syslog = 0<br />
panic action = /usr/share/samba/panic-action %d<br />
security = share<br />
encrypt passwords = true<br />
passdb backend = tdbsam<br />
obey pam restrictions = yes<br />
guest account = nobody<br />
invalid users = root<br />
passwd program = /usr/bin/passwd %u</p>
<p>[Servidor]<br />
comment = Servidor de Arquivos<br />
path = /home/arquivos<br />
browseable = yes<br />
read only = yes<br />
guest ok = yes</p></blockquote>
<p>Pressione: <em>[ESC] <img src="http://jpbotelho.info/blog/wp-includes/images/smilies/icon_mad.gif" alt=":x" class="wp-smiley" /> </em> (para salvar e sair)</p>
<p><strong>Passo 4:</strong> Configurando diretório de arquivos</p>
<blockquote><p>$ sudo mkdir /home/arquivos<br />
$ sudo cd /home/<br />
$ sudo chmod 777 servidor/</p></blockquote>
<p><strong>Passo 5:</strong> Reinicializando o samba</p>
<blockquote><p>$ sudo /etc/init.d/samba restart</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/instalando-e-configurando-o-samba-em-menos-de-5min/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Instalando o A2Billing no Ubuntu</title>
		<link>http://www.tutoriall.com.br/2008/04/08/instalando-o-a2billing-no-ubuntu/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/instalando-o-a2billing-no-ubuntu/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 14:45:19 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[asterisk]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[a2billing]]></category>
		<category><![CDATA[apache2]]></category>
		<category><![CDATA[drupal]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[zaptel]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/instalando-o-a2billing-no-ubuntu/</guid>
		<description><![CDATA[Atualizando o sistema do Ubuntu Após a instalação PADRÃO do UBUNTU, atualize o kernel e o sistema Ubuntu com o comando: $ su [entre com a sua senha de root] # apt-get update # apt-get upgrade Responda S ou Y (de acordo com a linguagem escolhida na instalação) e tecle Enter. O sistema será atualizado. [...]]]></description>
			<content:encoded><![CDATA[<p>Atualizando o sistema do Ubuntu<br />
Após a instalação PADRÃO do UBUNTU, atualize o kernel e o sistema Ubuntu com o comando:</p>
<blockquote><p>$ su [entre com a sua senha de root]<br />
# apt-get update<br />
# apt-get upgrade</p></blockquote>
<p>Responda S ou Y (de acordo com a linguagem escolhida na instalação) e tecle Enter.</p>
<p>O sistema será atualizado. Banda larga demora cerca de 10 minutos.</p>
<p>Instale os pacotes necessários para executar o A2Billing e o Asterisk:</p>
<blockquote><p># apt-get install libnewt-dev libssl0.9.7 libssl-dev zlib1g-dev libncurses5-dev libeditline0 libeditline-dev libedit2 libedit-dev linux-image-2.6.20-16-generic linux-headers-2.6.20-16-generic mpg123 libmysqlclient15-dev apache2 libapache2-mod-php5 php5 php5-cgi mysql-server libapache2-mod-auth-mysql php5-mysql doxygen libtiff4 libtiff4-dev libxml2 libxml2-dev build-essential automake fakeroot debhelper autotools-dev cdbs pkg-config gcc g++ cpp</p></blockquote>
<p>Execute o comando abaixo para criar um link para o kernel do Linux:</p>
<blockquote><p># ln -s /usr/src/linux-headers-2.6.20-16-generic/ /usr/src/linux</p></blockquote>
<p><span id="more-51"></span><br />
Agora vamos para o próximo passo.</p>
<p>Configurando o sistema em geral para funcionamento do A2Billing<br />
<span id="more-50"></span><br />
Execute os comandos abaixo:</p>
<blockquote><p># a2enmod rewrite<br />
# vi /etc/apache2/apache2.conf</p></blockquote>
<p>Adicione o texto abaixo:</p>
<blockquote><p>AddType application/x-httpd-php5-source .phps<br />
AddType application/x-httpd-php5 .php .phtml</p></blockquote>
<p>Saia e salve com “CTRL+X + Y ou S e “Enter”.</p>
<p>Execute o comando abaixo:</p>
<blockquote><p># vi /etc/php5/apache2/php.ini</p></blockquote>
<p>Insira o texto abaixo:</p>
<blockquote><p>extension=mysql.so<br />
extension=gd.so</p></blockquote>
<p>Saia e salve com “CTRL+X + Y ou S e “Enter”.</p>
<blockquote><p># mysqladmin -u root password (senha do root do Linux)<br />
# mysqladmin -u root -p create drupal<br />
# mysql &lt;enter&gt;</p></blockquote>
<p>E digite o texto abaixo:</p>
<blockquote><p>CREATE USER (seu usuário do Linux) IDENTIFIED BY ’sua senha’;<br />
GRANT ALL PRIVILEGES ON drupal*.* TO ‘usuário’@&#8217;host’ IDENTIFIED BY ’senha’;<br />
GRANT ALL PRIVILEGES ON drupal51.* TO ‘usuário’@&#8217;host’ IDENTIFIED BY ’senha’;<br />
FLUSH PRIVILEGES;<br />
quit;</p></blockquote>
<blockquote><p># apt-get install drupal-5.1</p></blockquote>
<p>Configure a base com mysql.</p>
<blockquote><p># vi /etc/drupal/5.1/conf.php</p></blockquote>
<p>Insira o texto abaixo:</p>
<blockquote><p>&lt;?php<br />
$db_url = “mysql://usuário:senha@host/drupal”;<br />
$base_url = “http://seu-ip-publico/drupal”;<br />
?&gt;</p></blockquote>
<p>Saia e salve com “CTRL+X + Y ou S e “Enter”.</p>
<blockquote><p># vi /etc/asterisk/res_mysql.conf</p></blockquote>
<p>Mudar o BIND_ADDRESS para o seu IP público.</p>
<p>Saia e salve com “CTRL+X + Y ou S e “Enter”.</p>
<p>Instalação e configuração do Asterisk e seus pacotes fundamentais</p>
<p>Baixando e compilando os pacotes:</p>
<blockquote><p># cd /home<br />
# mkdir cti (diretório de sua escolha, no meu caso, CTI)<br />
# cd cti (diretório que você criou)<br />
# wget</p>
<p>http://ftp.digium.com/pub/libpri/releases/libpri-1.4.1.tar.gz</p>
<p>http://ftp.digium.com/pub/zaptel/releases/zaptel-1.4.4.tar.gz</p>
<p>http://ftp.digium.com/pub/asterisk/releases/asterisk-1.4.8.tar.gz</p>
<p>http://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.4.2.tar.gz</p>
<p>http://ftp.digium.com/pub/asterisk/releases/asterisk-sounds-1.2.1.tar.gz</p>
<p># tar -xvzf libpri-1.4.1.tar.gz<br />
# tar -xvzf zaptel-1.4.4.tar.gz<br />
# tar -xvzf asterisk-1.4.8.tar.gz<br />
# tar -xvzf asterisk-addons-1.4.2.tar.gz<br />
# tar -xvzf asterisk-sounds-1.2.1.tar.gz<br />
# rm -r *.gz<br />
# cd libpri-1.4.1<br />
# make<br />
# make install<br />
# cd ..<br />
# cd zaptel-1.4.4<br />
# ./configure<br />
# make<br />
# make install<br />
# cd ..<br />
# cd asterisk-1.4.8<br />
# ./configure<br />
# make<br />
# make install<br />
# make samples<br />
# cd ..<br />
# cd asterisk-addons-1.4.2<br />
# ./configure<br />
# make<br />
# make install<br />
# make samples<br />
# cd ..<br />
# cd asterisk-sounds-1.2.1<br />
# make<br />
# make install<br />
# cd ..<br />
# cp /home/cti/asterisk/contrib/init.d/rc.debian.asterisk /etc/init.d/asterisk<br />
# update-rc.d -f asterisk defaults 98<br />
# echo “zaptel” &gt;&gt; /etc/modules<br />
# echo “ztdummy” &gt;&gt; /etc/modules<br />
# vi /etc/asterisk/res_mysql.conf</p></blockquote>
<p>Verifique o usuário e o dbsock, que deve ser:</p>
<blockquote><p>/var/run/mysqld/mysqld.sock</p></blockquote>
<p>Salve e encerre com “CTRL + X, seguido de Y ou S e tecle “Enter”.</p>
<p>Carregando manualmente os módulos necessários para o uso do Asterisk com o ZTDUMMY</p>
<p>Carregando o módulo zaptel:</p>
<blockquote><p># modprobe zaptel<br />
# modprobe ztdummy<br />
# ztcfg -vvvvvvvv</p></blockquote>
<p>Após ter sido executado o “ztcfg -vvvvvvvv”, se o retorno for:</p>
<blockquote><p>Zaptel Version: 1.4.0<br />
Echo Canceller: MG2<br />
Configuration<br />
Channel map:<br />
Channel 01: ***********************</p></blockquote>
<p>Então deu tudo certo! Caso o retorno seja algo diferente, verifique se digitou todos os comandos corretos ou se não houve erro em algum dos passos anteriores!</p>
<p>Testando o funcionamento do Asterisk</p>
<p>Execute o comando:</p>
<blockquote><p># /etc/init.d/asterisk start</p></blockquote>
<p>ou apenas:</p>
<blockquote><p># safe_asterisk<br />
# asterisk -r</p></blockquote>
<p>Se você estiver acessando o console de comandos do Asterisk, então tudo deu certo! Sai do console com o comando:</p>
<blockquote><p>asterisk*CLI&gt; stop now</p></blockquote>
<p>Agora vamos verificar o acesso via IP. Certifique-se de que o MYSQL está rodando. Execute o comando:</p>
<blockquote><p># lsmod</p></blockquote>
<p>Verifique se há o MYSQL iniciado no sistema. Caso não esteja, instale com o comando abaixo. Em caso contrário, siga para o passo seguinte.</p>
<blockquote><p># apt-get install mysql-server</p></blockquote>
<p>Reinicie o serviço da acesso da WEB:</p>
<blockquote><p># /etc/init.d/apache2 restart</p></blockquote>
<p>Depois abra o navegador de outro PC e faça o teste de navegação teclando o seguinte endereço:</p>
<blockquote><p>http://localhost/drupal</p></blockquote>
<p>E veja se abre o LINK.<br />
Se abriu o LINK, basta agora FINALIZAR o processo instalando o A2Billing.<br />
instale o A2Billing perfeitamente</p>
<p>Faça o download do A2Billing com os comandos abaixo:</p>
<blockquote><p># cd /usr/src<br />
# mkdir a2billing<br />
# cd a2billing<br />
# wget http://a2billing.net/downloads/A2Billing_1.3.0.tar.gz<br />
# tar -xzvf a2billing.tar.gz</p></blockquote>
<p>Crie o atalho para o site virtual do A2Billing:</p>
<blockquote><p># ln -s /usr/src/a2billing/A2Billing_UI /var/www/a2billing</p></blockquote>
<p>Alterando o A2billing:</p>
<p>Execute os comandos abaixo:</p>
<blockquote><p># mysql</p></blockquote>
<blockquote><p>GRANT ALL PRIVILEGES ON *.* TO ‘a2billinguser’@&#8217;%’ IDENTIFIED BY ‘a2billing’ WITH GRANT OPTION;<br />
GRANT ALL PRIVILEGES ON *.* TO ‘a2billinguser’@&#8217;localhost’ IDENTIFIED BY ‘a2billing’ WITH GRANT OPTION;<br />
GRANT ALL PRIVILEGES ON *.* TO ‘a2billinguser’@&#8217;localhost.localdomain’ IDENTIFIED BY ‘a2billing’ WITH GRANT OPTION;<br />
quit;</p></blockquote>
<blockquote><p># mysqladmin create mya2billing -u a2billinguser -p<br />
# mysql mya2billing -u a2billinguser -p &lt; /usr/src/a2billing/DataBase/mysql/Mysql-5.x/<br />
a2billing-mysql-schema-MYSQL.5.X-v1.3.0.sql<br />
# mysql mya2billing -u a2billinguser -p (password a2billing)<br />
mysql&gt; use mya2billing;<br />
mysql&gt; select * FROM cc_ui_authen;</p>
<p># vi /usr/src/a2billing/a2billing.conf</p></blockquote>
<p>Insira o texto abaixo:</p>
<blockquote><p>[database]<br />
hostname=localhost<br />
port=5432<br />
user=a2billinguser<br />
password=a2billing<br />
dbname=mya2billing<br />
dbtype=mysql</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<blockquote><p># cp /usr/src/a2billing/a2billing.conf /etc/asterisk/<br />
# ln -s /usr/src/a2billing/A2Billing_UI /var/www/a2billing<br />
# ln -s /usr/src/a2billing/ACustomer_UI /var/www/a2billingcustom<br />
# vi /etc/asterisk/a2billing.conf</p></blockquote>
<p>e</p>
<blockquote><p># vi /usr/src/a2billing/a2billing.conf</p></blockquote>
<p>Na sessão [webui]</p>
<blockquote><p>;configuration for the Web interface<br />
[webui]</p>
<p>; Path to store the asterisk configuration files<br />
buddyfilepath = /etc/asterisk/</p>
<p>; Email of the admin (not used yet)<br />
email_admin = info@areski.net</p>
<p>; Card lenght<br />
len_cardnumber = 10</p>
<p>; Voucher lenght<br />
len_voucher = 15</p>
<p>; amount of MOH class you have created in musiconhold.conf :<br />
acc_1, acc_2… acc_10 class etc…<br />
num_musiconhold_class = 10</p>
<p>;MANAGER CONNECTION PARAMETERS<br />
manager_host = localhost<br />
manager_username = myasterisk<br />
manager_secret = mycode</p>
<p>; Allow to display the help section inside the admin interface<br />
(YES &#8211; NO)<br />
show_help=”YES”</p>
<p>; Parameter of the upload<br />
my_max_file_size_import = 512000<br />
my_max_file_size = 512000 ; in bytes</p>
<p>; Not used yet, goal is to upload files and use them directly in<br />
the IVR<br />
dir_store_audio = /var/lib/asterisk/sounds/a2billing</p>
<p>; Parameter of the upload<br />
my_max_file_size_audio=3072000 ; in bytes</p>
<p>; the file type extensions allowed to be uploaded such as “gsm,<br />
mp3, wav” (separate by ,)<br />
file_ext_allow = gsm, mp3, wav</p>
<p>; the file type extensions allowed to be uploaded for the<br />
musiconhold such as “gsm, mp3, wav” (separate by ,)<br />
file_ext_allow_musiconhold = mp3</p>
<p>; ENABLE THE CDR VIEWER TO LINK ON THE MONITOR FILES (YES &#8211; NO)<br />
link_audio_file = “NO”</p>
<p>; PATH TO LINK ON THE RECORDED MONITOR FILES<br />
monitor_path = /var/spool/asterisk/monitor<br />
// grant access to apache user on read mode for the directory :&gt;<br />
chmod 755 /var/spool/asterisk/monitor/</p>
<p>; FORMAT OF THE RECORDED MONITOR FILE<br />
monitor_formatfile = gsm</p>
<p>; Display the icon in the invoice<br />
show_icon_invoice = “YES”</p>
<p>; Display the top frame (useful if you want to save space on your<br />
little tiny screen )<br />
show_top_frame = “NO”</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<blockquote><p># chmod 777 /etc/asterisk<br />
# chmod 777 /usr/src/a2billing<br />
# mkdir /var/lib/asterisk/moh/mp3<br />
# for X in `seq 1 10`; do mkdir /var/lib/asterisk/moh/mp3/acc_$X; done<br />
# chmod 777 /var/lib/asterisk/moh/mp3/acc_*<br />
# mkdir /var/lib/asterisk/sounds/a2billing<br />
# chmod 777 /var/lib/asterisk/sounds/a2billing</p></blockquote>
<p>No sip.conf, adicione a seguinte linha no fim do texto:</p>
<blockquote><p>#include additional_a2billing_sip.conf</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<p>No iax.conf, adicione a seguinte linha no fim do texto:</p>
<blockquote><p>#include additional_a2billing_iax.conf</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<p>Execute os comandos abaixo:</p>
<blockquote><p># vi /etc/asterisk/manager.conf</p></blockquote>
<p>Verifique o enabled=yes:</p>
<blockquote><p>[general]<br />
enabled = yes<br />
port = 5038<br />
bindaddr = 0.0.0.0<br />
;displayconnects = yes</p></blockquote>
<p>Adicione a linha abaixo:</p>
<blockquote><p>[myasterisk]<br />
secret = mycode<br />
read = system,call,log,verbose,command,agent,user<br />
write = system,call,log,verbose,command,agent,user</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<p>Edite o musichold.conf conforme segue abaixo:</p>
<blockquote><p># vi /etc/asterisk/musiconhold.conf</p></blockquote>
<blockquote><p>; class definitions For A2Billing<br />
acc_1 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_1<br />
acc_2 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_2<br />
acc_3 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_3<br />
acc_4 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_4<br />
acc_5 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_5<br />
acc_6 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_6<br />
acc_7 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_7<br />
acc_8 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_8<br />
acc_9 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_9<br />
acc_10 =&gt; mp3:/var/lib/asterisk/mohmp3/acc_10</p></blockquote>
<p>Saia e salve com “Ctrl + X seguido de Y ou S e tecle “Enter”.</p>
<p>Reinicie o banco de dados MYSQL:</p>
<blockquote><p># /etc/init.d/mysql restart</p></blockquote>
<p>Inicie o ASTERISK com o comando:</p>
<blockquote><p># asterisk -vvvvgc</p></blockquote>
<p>Abra o seu navegador da Internet e digite o IP do servidor. Se o navegador abrir uma página do FTP com o endereço A2Billing, clique 2x e pronto. Faça login com user=root &amp; pass=myroot e bom trabalho.</p>
<p>Por: FÁBIO GARCIA</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/instalando-o-a2billing-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Configurando proxy de rede e apt no Ubuntu</title>
		<link>http://www.tutoriall.com.br/2008/04/08/configurando-proxy-de-rede-e-apt-no-ubuntu/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/configurando-proxy-de-rede-e-apt-no-ubuntu/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 14:41:19 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[apt]]></category>
		<category><![CDATA[proxy]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[wget]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/configurando-proxy-de-rede-e-apt-no-ubuntu/</guid>
		<description><![CDATA[1) Para configurar o terminal para usar proxy : Voce pode escolher acrescentar essas linhas no arquivo /etc/profile (para todas as contas em seu sistema) ou /home/usuario/.bash_profile (somente para a conta do usuario): http_proxy=”http://usuario:senha@ip.do.servidor.proxy:porta” ftp_proxy=”http://usuario:senha@ip.do.servidor.proxy:porta” export http_proxy ftp_proxy Em geral a porta do proxy é 3128 ou 8080, o ip.do.servidor.proxy também pode ser um nome [...]]]></description>
			<content:encoded><![CDATA[<p>1) Para configurar o terminal para usar proxy :</p>
<p>Voce pode escolher acrescentar essas linhas no arquivo /etc/profile (para todas as contas em seu sistema) ou /home/usuario/.bash_profile (somente para a conta do usuario):</p>
<blockquote><p> http_proxy=”http://usuario:senha@ip.do.servidor.proxy:porta”<br />
ftp_proxy=”http://usuario:senha@ip.do.servidor.proxy:porta”<br />
export http_proxy ftp_proxy</p></blockquote>
<p>Em geral a porta do proxy é 3128 ou 8080, o ip.do.servidor.proxy também pode ser um nome dns como intranet.minhaempresa.com.br. Se voce quiser poderá suprimir usuario:senha e deixar que os aplicativos de linha de comando requisitem-no quando necessário, o wget por exemplo possui parametros de usuario/senha, o lynx questiona a senha no momento da conexão, e assim por diante.</p>
<p>2) Para configurar o apt (apt-get) :</p>
<p>Vamos criar o arquivo /etc/apt/apt.conf.d/02proxy com o seguinte conteúdo :</p>
<blockquote><p>Acquire {<br />
HTTP::PROXY=usuario:senha@ip.do.servidor.proxy:porta;<br />
FTP::PROXY=usuario:senha@ip.do.servidor.proxy:porta;<br />
}</p></blockquote>
<p><span id="more-49"></span><br />
Os arquivos de configuração do APT que aparecem em “/etc/apt/apt.conf.d/” juntos formam uma única configuração, o numero na frente do nome do arquivo como “02proxy” é a tentativa de ordena-los, nós queremos que a configuração de usar proxy fique topo dessa configuração. Algo importante que voce poderia fazer é criar uma conta de proxy específica para uso com o apt-get, dessa forma voce poderia aproveitar pular o passo 1 e 3 se sua necessidade resume-se apenas a instalar/atualizar programas com o apt/synaptic.</p>
<p>3) Para configurar o wget :</p>
<p>Vamos utilizar o conceito de alias, isto é, criar um comando-apelido no terminal que replique outro comando. Voce novamente poderá escolher acrescentar essas linhas no arquivo /etc/profile (para todas as contas em seu sistema) ou /home/usuario/.bash_profile (somente para a conta do usuario) :</p>
<blockquote><p>    alias wget =”wget –proxy-user=usuario –proxy-passwd=senha”  (os dois traços são juntos)</p></blockquote>
<p>Não é preciso se preocupar com o endereço do servidor de PROXY porque as váriaveis http_proxy e ftp_proxy do seu sistema irão supri-los.</p>
<p>ATENÇÃO: a senha em plain-text poderá ser observada por outras contas em seu sistema, com excessão de arquivos configurados em /home/usuario/.bash_profile que naturalmente cada usuário está restrito a ver somente o seu. Se pretente usar senhas configuradas nos arquivos em /etc/ é melhor dar permissão de leitura/escrita somente ao root e ainda por cima usar nome de contas de usuários cuja senha não sejam o mesmo de outros serviços deste computador ou de outros na rede.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/configurando-proxy-de-rede-e-apt-no-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Conexão SSH sempre ativa</title>
		<link>http://www.tutoriall.com.br/2008/04/08/conexao-ssh-sempre-ativa/</link>
		<comments>http://www.tutoriall.com.br/2008/04/08/conexao-ssh-sempre-ativa/#comments</comments>
		<pubDate>Tue, 08 Apr 2008 14:37:58 +0000</pubDate>
		<dc:creator>João Paulo</dc:creator>
				<category><![CDATA[linux]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.tutoriall.com.br/2008/04/08/conexao-ssh-sempre-ativa/</guid>
		<description><![CDATA[Adicionando a linha abaixo no final do arquivo /etc/ssh/sshd_config, ela irá mandar um ping a cada 2 minutos para manter sua conexão ssh ativa. ServerAliveInterval 120 obs.: o 120 é a quantidade de segundos do intervalo do ping, podendo ser mudada de acordo com a sua necessidade.]]></description>
			<content:encoded><![CDATA[<p>Adicionando a linha abaixo no final do arquivo /etc/ssh/sshd_config, ela irá mandar um ping a cada 2 minutos para manter sua conexão ssh ativa.</p>
<p><em>ServerAliveInterval 120</em></p>
<p>obs.: o 120 é a quantidade de segundos do intervalo do ping, podendo ser mudada de acordo com a sua necessidade.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tutoriall.com.br/2008/04/08/conexao-ssh-sempre-ativa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

