<?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>Hack Network &#187; Linux</title>
	<atom:link href="http://www.hack.net.br/blog/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hack.net.br/blog</link>
	<description></description>
	<lastBuildDate>Tue, 08 Nov 2011 10:39:24 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Protocolos SSH1 e SSH2</title>
		<link>http://www.hack.net.br/blog/linux/protocolos-ssh1-e-ssh2/</link>
		<comments>http://www.hack.net.br/blog/linux/protocolos-ssh1-e-ssh2/#comments</comments>
		<pubDate>Mon, 07 Nov 2011 17:30:46 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[putty]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[ssh1]]></category>
		<category><![CDATA[ssh2]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=327</guid>
		<description><![CDATA[Este post estou criando com um apanhado de informações buscadas na internet com o intuito de sanar algumas duvidas que tive durante a criação de uma chave no PuTTygen que estarei explicando em um outro post.  Nesse não estarei falando de todas as funcionalidades. O SSH (Secure SHell) é ao mesmo tempo um protocolo e [...]]]></description>
			<content:encoded><![CDATA[<p>Este post estou criando com um apanhado de informações buscadas na internet com o intuito de sanar algumas duvidas que tive durante a criação de uma chave no PuTTygen que estarei explicando em um outro post.  Nesse não estarei falando de todas as funcionalidades.</p>
<p><span id="more-327"></span></p>
<p>O SSH (Secure SHell) é ao mesmo tempo um protocolo e uma aplicação para acesso remoto. Os protocolos foram desenvolvidos em 1995 por Tatu Ylonen, fundador da empresa SSH Communications Security. O conjunto permaneceu livre até a sua versão 1.2.12, quando se tornou um produto proprietário desta empresa. Foi desta versão que se originou o aplicativo OpenSSH (uma implementação destes protocolos e várias ferramentas auxiliares), em 1999. Existem também várias outras opções comerciais de implementação do SSH porém, por ser livre, o OpenSSH é a mais popular.</p>
<p>O SSH tem como objetivo principal fazer a autenticação cliente -&gt; servidor de modo seguro através de troca de chave ou senha. Criando entre os dois um tunel de conexão segura. Existem muitas diferenças entre esses dois protocolos, uma vez que o SSH2 não foi apenas uma atualização do SSH1, ele foi reescrito aumentando sua segurança, suas formas de autenticação e funcionalidades que foram criadas a fim de possibilitar um maior grau de segurança.</p>
<p>A primeira versão, conhecida como SSH1, foi desenvolvida principalmente com a intenção de substituir os “comandos r”: rlogin (permite que o usuário logue no sistema remoto utilizando a porta 513/TCP), rsh (que permite executar comandos no shell remoto como outro usuário. Na ponta onde o usuário irá se conectar é necessário que o daemon rshd esteja sendo executado) e rcp (permite fazer uma cópia de arquivos entre sistemas remotos através da Internet). A segunda versão (SSH2, incompativel com a versão SSH1) tem o intuito de resolver falhas de segurança sérias encontradas na primeira versão e melhora o método de transferência de arquivos entre os hosts (através do SFTP).</p>
<p>O protocolo SSH1, já é considerado por muitos como ultrapassado e inseguro, está cada vez mais caindo em desuso, de forma que os novos aplicativos utilizem apenas o SSH2.</p>
<p>O SSH2 tem como principal vantagem, quando comparado ao SSH1, uma maior segurança. As principais mudanças foi a retirada dos algoritmos de criptografia DES e IDEA e a adição do método de autenticação DSA.</p>
<p>Com essas mudanças obtivemos melhora no uso de aplicativos para transferência de arquivos tanto em Linux (SFTP e SCP) e em Windows.</p>
<p>Existem duas falhas mais conhecidas do SSH1. A primeira mais conhecida, permite que a chave de sessão seja recuperada por aquele que está atacando, de modo que deixa vulnerável as próximas conexões. O que acontece, de fato, é que é feita uma escuta de todas as informações que estão sendo transmitidas, e se observa problemas de design ou implementação no cliente ou no servidor que permitam obter a chave de sessão. Apartir daí o texto pode ser decifrado.</p>
<p>A outra falha já documentada é relacionada a um overflow de inteiros no código, que foi criada para detectar ataques contra uma outra falha já detectada no SSH1, envolvendo o CRC checksum dos pacotes de dados. O problema é que esse overflow pode resultar em uma inscrição de dados sobre uma área de memória já utilizada para outros fins. O ataque é feito colocando pacotes maliciosos entre as informações trocadas, permitindo a execução de comandos arbitrários tanto no servidor quanto no cliente. Essa questão se torna ainda mais complexa quando quem está rodando o arquivo é o root, o que pode gerar um dano ainda maior.</p>
<p>Basicamente, ambos os protocolos tem por princípio fazer a autenticação do usuário, e, em seguida, trocar a chave de sessão. Assim, é possível transmitir todas as informações totalmente encriptadas.</p>
<p>Site em inglês para um conhecimento mais aprofundado: <em><a title="Secure Shell (SSH)" href="http://en.wikipedia.org/wiki/Secure_Shell" target="_blank">SecureShell</a></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/protocolos-ssh1-e-ssh2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Couldn&#8217;t load plugin /usr/lib/pptpd/pptpd-logwtmp.so</title>
		<link>http://www.hack.net.br/blog/linux/couldnt-load-plugin-usrlibpptpdpptpd-logwtmp-so/</link>
		<comments>http://www.hack.net.br/blog/linux/couldnt-load-plugin-usrlibpptpdpptpd-logwtmp-so/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 19:51:28 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[logwtmp]]></category>
		<category><![CDATA[pptp]]></category>
		<category><![CDATA[pptpd]]></category>
		<category><![CDATA[vpn]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=339</guid>
		<description><![CDATA[Um problema chato porém simples de se resolver. Me deparei com esse problema após instalar o pacote pptpd-1.3.4-2.rhel5.i386.rpm  para configurar um servidor de vpn pptp. Segundo alguns artigos que li pela internet, o problema se trata de um plugin não mais suportado pelo pptpd então a solução é desabilitar esse plugin do arquivo de configuração. [...]]]></description>
			<content:encoded><![CDATA[<p>Um problema chato porém simples de se resolver. Me deparei com esse problema após instalar o pacote pptpd-1.3.4-2.rhel5.i386.rpm  para configurar um servidor de vpn pptp.<span id="more-339"></span><br />
Segundo alguns artigos que li pela internet, o problema se trata de um plugin não mais suportado pelo pptpd então a solução é desabilitar esse plugin do arquivo de configuração. Editar o arquivo com o editor de sua preferencia.</p>
<pre><em>/etc/pptpd.conf</em></pre>
<p>procurar as linhas:</p>
<pre><em># TAG: logwtmp</em>
 <em>#       Use wtmp(5) to record client connections and disconnections.</em>
 <em>#</em>
 <em>logwtmp</em></pre>
<p>E comentar a linha do <em>logwtmp</em>, salvar o arquivo e reiniciar ou iniciar o pptpd.</p>
<pre><em># TAG: logwtmp</em>
<em>#       Use wtmp(5) to record client connections and disconnections.</em>
<em>#</em>
<em>#logwtmp [root@VPN01 ~]# service pptpd restart </em></pre>
<p>Essa foi a solução que encontrei procurando pela internet e simplificando aqui para vocês.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/couldnt-load-plugin-usrlibpptpdpptpd-logwtmp-so/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Can&#8217;t create pid lock file /var/run/file.pid (Permission denied), exiting</title>
		<link>http://www.hack.net.br/blog/linux/cant-create-pid-lock-file-varrunfile-pid-permission-denied-exiting/</link>
		<comments>http://www.hack.net.br/blog/linux/cant-create-pid-lock-file-varrunfile-pid-permission-denied-exiting/#comments</comments>
		<pubDate>Wed, 25 May 2011 16:06:23 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[erro]]></category>
		<category><![CDATA[ospfd]]></category>
		<category><![CDATA[pid]]></category>
		<category><![CDATA[quagga]]></category>
		<category><![CDATA[zebra]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=310</guid>
		<description><![CDATA[Após terminar de compilar aquele programa que vai solucionar nossos problemas, corremos para a hora mais esperada, a execução, eis que recebemos de cara a mensagem &#8220;Permission denied&#8220;. A própria frase já diz qual é o problema: permissão. A solução mais óbvia, é claro, colocar permissão pra o usuário executor do programa na pasta para [...]]]></description>
			<content:encoded><![CDATA[<p>Após terminar de compilar aquele programa que vai solucionar nossos problemas, corremos para a hora mais esperada, a execução, eis que recebemos de cara a mensagem &#8220;<em>Permission denied</em>&#8220;. A própria frase já diz qual é o problema: permissão.<span id="more-310"></span></p>
<p>A solução mais óbvia, é claro, colocar permissão pra o usuário executor do programa na pasta para escrita ou arquivo para leitura, porém, dependendo da pasta não podemos adicionar o usuário ao grupo dono da pasta, então podemos ter alguma soluções de contorno.</p>
<p>O problema citado no título aconteceu quando instalava o <span style="color: #888888;"><em>Quagga</em></span> (<a href="http://www.quagga.net/" target="_blank">http://www.quagga.net/</a>).</p>
<p>Após terminar a instalação, na hora de executar ele não devolveu resposta alguma, fui olhar no log e lá estava a mensagem:</p>
<pre>ZEBRA: Can't create pid lock file /var/run/zebra.pid (Permission denied), exiting</pre>
<p>Assim que tentei carregar o <em>Zebra </em>ele disse que não tinha permissão para criar o .pid, como ele utiliza o usuário e o grupo <em>quagga </em>eu não colocaria permissão para esse usuário escrever direto no <em>/var/run</em> então a minha solução foi:</p>
<p>Criar uma pasta dentro do <em>/var/run</em> com nome <em>quagga</em>:</p>
<pre>mkdir /var/run/quagga</pre>
<p>Depois adicionar permissão para o usuário e o grupo <em>quagga </em>de escrita e leitura:</p>
<pre>chown quagga:quagga /var/run/quagga</pre>
<p>Depois de criada a pasta e dada a permissão, teremos que recompilar o Quagga e definir a pasta onde ficaram os arquivos .pid do Quagga. Dentro da pasta do source digitaremos:</p>
<pre>./configure --localstatedir=/var/run/quagga</pre>
<p>Pronto! Agora assim que executo o <em>Zebra </em>ele já consegue criar o<em> zebra.pid</em> dentro do <em>/var/run/quagga/</em> sem problema algum.</p>
<p>Como sempre digo, essa foi a solução mais rápida que encontrei, caso alguém tenha uma sugestão melhor, só comentar o post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/cant-create-pid-lock-file-varrunfile-pid-permission-denied-exiting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GPG key retrieval failed: [Errno 14] HTTP Error 404: Not Found</title>
		<link>http://www.hack.net.br/blog/linux/gpg-key-retrieval-failed-errno-14-http-error-404-not-found/</link>
		<comments>http://www.hack.net.br/blog/linux/gpg-key-retrieval-failed-errno-14-http-error-404-not-found/#comments</comments>
		<pubDate>Mon, 02 May 2011 20:19:49 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[CentOS]]></category>
		<category><![CDATA[Errno 14]]></category>
		<category><![CDATA[erro]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[GPG]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=306</guid>
		<description><![CDATA[Estava fazendo uma atualização no meu CentOS, quando após ele fazer o download de 240mb ele me retorna o seguinte erro &#8220;GPG key retrieval failed: [Errno 14] HTTP Error 404: Not Found&#8221;. Eu precisava fazer a atualização urgente então, procurando na internet encontrei a seguinte solução: &#60;comando&#62; –nogpgcheck Não parece ser a melhor solução mas [...]]]></description>
			<content:encoded><![CDATA[<p>Estava fazendo uma atualização no meu CentOS, quando após ele fazer o download de 240mb ele me retorna o seguinte erro &#8220;GPG key retrieval failed: [Errno 14] HTTP Error 404: Not Found&#8221;.<span id="more-306"></span></p>
<p>Eu precisava fazer a atualização urgente então, procurando na internet encontrei a seguinte solução:</p>
<pre><span style="color: #888888;"><em>&lt;comando&gt; –nogpgcheck</em></span></pre>
<p><span style="color: #888888;"><span style="color: #000000;">Não parece ser a melhor solução mas como era urgente não pensei duas vezes.<br />
Ainda não investiguei para corrigir o problema, caso alguem saiba só colocar um post!</span></span><em><span style="color: #888888;"><br />
</span></em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/gpg-key-retrieval-failed-errno-14-http-error-404-not-found/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Asterisk ended with exit status 1</title>
		<link>http://www.hack.net.br/blog/linux/asterisk-ended-with-exit-status-1/</link>
		<comments>http://www.hack.net.br/blog/linux/asterisk-ended-with-exit-status-1/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 22:53:15 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[elastix]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[safe_asterisk]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=302</guid>
		<description><![CDATA[Novamente instalando o Elastix para instalar minha IVR, me deparei com um outro problema. Após a instalação e configuração da rede, fui começar a configurar os ramais, logo de primeira retornou erro então, resolvi procurar o motivo. Descobri! O problema era que o Asterisk não havia subido, então começou a peregrinação para descobrir o porque.  [...]]]></description>
			<content:encoded><![CDATA[<p>Novamente instalando o Elastix para instalar minha IVR, me deparei com um outro problema. Após a instalação e configuração da rede, fui começar a configurar os ramais, logo de primeira retornou erro então, resolvi procurar o <span id="more-302"></span>motivo. Descobri! O problema era que o Asterisk não havia subido, então começou a peregrinação para descobrir o porque.  A primeira coisa que tentei foi inicializa-lo através do &#8220;service&#8221; porém, como nada é simples, tive a seguinte resposta:</p>
<pre><span style="color: #888888;"><em>[root@elastix ~]# service asterisk restart Stopping safe_asterisk:                                    [FAILED] Shutting down asterisk:                                    [FAILED] Starting asterisk:                                         [  OK  ]</em> </span><span style="color: #888888;"><em>Asterisk ended with exit status 1 Asterisk died with code 1. Automatically restarting Asterisk.</em> </span></pre>
<p>E ficava dando essa mensagem em um loop constante até você parar o serviço novamente.  Procurando pela internet encontrei um bocado de &#8220;dica&#8221; mas nenhuma funcionou comigo, talvez por causa da versão (que já atualizei e não lembro da antiga depois posto aqui), a primeira foi dizendo o seguinte, &#8220;o serviço já está rodando e você está tentando inicializa-lo novamente&#8221;, a solução para essa seria:</p>
<pre><em><span style="color: #888888;">killall -9 asterisk safe_asterisk</span></em></pre>
<p>E depois iniciar o serviço:</p>
<pre><span style="color: #888888;"><em>service asterisk start</em></span></pre>
<p>Mas ele não matou nenhuma instância com o kill e continuou repetindo o mesmo erro. Ainda no site do FreePBX descobri outro tópico com o mesmo erro que talvez me ajudasse, mas como já disse, nada é fácil. Ele dizia para digitar o seguinte:</p>
<pre><em><span style="color: #888888;">amportal start</span></em></pre>
<p>Então ele retornou a mesma mensagem</p>
<p>Tentei conectar no console através do (<em><span style="color: #888888;">asterisk -r</span></em>) então veio uma mensagem que não tinha visto aindo.</p>
<pre><span style="color: #888888;"><em>Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)</em></span></pre>
<p>Quando acessei a pasta, os arquivos estavam lá (lembrando que o asterisk continuava não rodando) então achei que pudesse ser permissão, coloquei a máxima e continou com o problema. Foi então que na ultima tentativa eu digitei direto no console:</p>
<pre><span style="color: #888888;"><em><em>[root@elastix ~]# safe_asterisk</em></em></span></pre>
<p>Ele rodou normal e ficou funcionando, consegui criar meus ramais, configurar meu tronco, tudo!</p>
<p>Depois disso atualizei meu Elastix, como ele é baseado em CentOS bastou um &#8220;<em><span style="color: #888888;">yum update</span></em>&#8221; para deixar a versão atualizada.</p>
<p>Agora posso rodar o serviço através do <em><span style="color: #888888;">service asterisk start/restart </span></em>que ele funciona normalmente.</p>
<p>Sinceramente não descobri o problema, porém, consegui uma solução!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/asterisk-ended-with-exit-status-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Manager &#8216;admin&#8217; logged on from 127.0.0.1 Asterisk CLI</title>
		<link>http://www.hack.net.br/blog/linux/manager-admin-logged-on-from-127-0-0-1-asterisk-cli/</link>
		<comments>http://www.hack.net.br/blog/linux/manager-admin-logged-on-from-127-0-0-1-asterisk-cli/#comments</comments>
		<pubDate>Fri, 29 Apr 2011 22:12:39 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[VoIP]]></category>
		<category><![CDATA[asterisk]]></category>
		<category><![CDATA[cli]]></category>
		<category><![CDATA[freepbx]]></category>
		<category><![CDATA[voip]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=298</guid>
		<description><![CDATA[Estava configurando uma IVR utilizando Elastix (Asterisk/FreePBX) e para visualizar as ligações acessei o CLI do Asterisk. Lá além das ligações e dos comandos executados, havia também a seguinte mensagem: == Manager 'admin' logged on from 127.0.0.1 Ela acontece quando utilizamos alguma interface web (Elastix no meu caso) para configurar o Asterisk. Então procurando por [...]]]></description>
			<content:encoded><![CDATA[<p>Estava configurando uma IVR utilizando Elastix (Asterisk/FreePBX) e para visualizar as ligações acessei o CLI do <span id="more-298"></span>Asterisk. Lá além das ligações e dos comandos executados, havia também a seguinte mensagem:</p>
<pre><em><span style="color: #888888;">== Manager 'admin' logged on from 127.0.0.1 </span></em></pre>
<p>Ela acontece quando utilizamos alguma interface web (Elastix no meu caso) para configurar o Asterisk.</p>
<p>Então procurando por alguns foruns, encontrei no forum do FreePBX (<a href="http://www.freepbx.org/">http://www.freepbx.org</a>) a solução. Ela é bem simples, apenas adicionando uma linha nós acabamos com essa mensagem.</p>
<p>A linha é:</p>
<pre><em><span style="color: #808080;">displayconnects=no</span></em></pre>
<p>No campo:</p>
<pre><em><span style="color: #808080;"> [general] </span></em></pre>
<p>No arquivo:</p>
<pre><em><span style="color: #808080;">/etc/asterisk/manager.conf</span></em></pre>
<p>Depois só recarregar as configurações ou reiniciar o serviço do Asterisk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/manager-admin-logged-on-from-127-0-0-1-asterisk-cli/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Entendendo o básico de CHMOD</title>
		<link>http://www.hack.net.br/blog/linux/entendendo-o-basico-de-chmod/</link>
		<comments>http://www.hack.net.br/blog/linux/entendendo-o-basico-de-chmod/#comments</comments>
		<pubDate>Wed, 01 Dec 2010 14:51:30 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=278</guid>
		<description><![CDATA[Uma breve explicação sobre adicionar permissões aos arquivos e/ou as pastas usando os &#8220;números&#8221; que ninguém entende. Primeiro vamos ententer o que cada número faz: 0 = nenhuma operação permitida 1 = permite execução de um arquivo ou acesso a uma pasta 2 = permite escrever/alterar um arquivo/pasta 4 = permite apenas leitura Todo arquivo [...]]]></description>
			<content:encoded><![CDATA[<p>Uma breve explicação sobre adicionar permissões aos arquivos e/ou as pastas usando os &#8220;números&#8221; que ninguém entende.<span id="more-278"></span> Primeiro vamos ententer o que cada número faz:</p>
<pre><em><span style="color: #888888;">0 = nenhuma operação permitida</span><span style="color: #888888;">
1 = permite execução de um arquivo ou acesso a uma pasta </span><span style="color: #888888;">
2 = permite escrever/alterar um arquivo/pasta
4 = permite apenas leitura</span></em></pre>
<p>Todo arquivo tem permissão para o dono(owner), para o grupo(group) e para outros[world(<span style="color: #888888;"><em>são aqueles que não são o dono(claro) e não estão no grupo</em></span>)].</p>
<p>Para definir as permissões que você quer para o arquivo/pasta, devemos somar os  <em>bits </em>que você quer para cada classe.</p>
<p>Exemplos:</p>
<p>#1  Seu diretório &#8220;home&#8221; terá por padrão a permissão 711.</p>
<pre><em><span style="color: #888888;">7 = 4 + 2 + 1 - você (o dono) pode ler/escrever/executar
1 = 1 - o grupo pode executar/acessar diretorio, mas nao podem ler nem escrever.
1 = 1 - outros podem executar/acessar diretorio, mas nao podem ler nem escrever.</span></em></pre>
<p>#2 Seu diretório da web terá permissões 755:</p>
<pre><em><span style="color: #888888;">7 = 4 + 2 + 1 - você (o dono) pode ler/escrever/executar
5 = 4 + 1 - o grupo pode executar/acessar diretorio/ler, mas nao pode escrever.
5 = 4 + 1 -<em> outros podem executar/acessar diretorio/ler, mas nao pode escrever.</em></span></em></pre>
<p>Tudo muito simples, você só precisa somar os números conforme a permissão necessária.</p>
<p>Há também uma outra maneira de se dar permissão usando o chmod, que algumas pessoas dizem ser mais simples e só fazem uso da mesma. Vejo as duas como simples.</p>
<p>É o seguinte,  ao invés dos números usaremos &#8220;letras&#8221;.</p>
<p>Para definir qual o tipo de pessoa que irá ter permissão, utilizaremos as seguintes:</p>
<pre><em><span style="color: #888888;">"u" - para dono (owner)
"g" - para groupo (group)
"o" - para outros (others)
"a" - para todos (all) </span></em></pre>
<p>Os operadores serão:</p>
<pre style="text-align: justify;"><em><span style="color: #888888;">"+" - para adicionar </span><span style="color: #888888;">
"-" - para remover
"=" - define para todos, todas as permissões que o arquivo/pasta terão.
Caso não seja definido nenhum valor, ele apagará todas as permissões.
obs: Mesmo que coloque =rwx(sem definir usuario)ele nunca dará permissão
de escrita para grupo e outros, só para o dono.</span></em></pre>
<p>As permissões são:</p>
<pre><em><span style="color: #888888;">"r" - para leitura(read)
"w" - para escrita(write)
"x" - para execução(execute)</span></em></pre>
<p>Seguem alguns exemplos:</p>
<pre style="text-align: justify;"><em><span style="color: #888888;">chmod u=rx arquivo - Da permissão de leitura e execução para o dono
chmod go-r arquivo - Retira permissão de leitura do groupo e dos outros
chmod g+w arquivo - Adiciona permissão de escrita para o grupo
chmod a+x arquivo1 arquivo2 - Adiciona permissão de execução para todos
chmod g+rx,o+x arquivo - Adiciona permissão para o grupo de leitura e
execução e para outros apenas execução</span></em></pre>
<p>Bem, estão ai as duas maneiras possíveis, cabe agora a vocês escolherem a melhor! Lembrando sempre que isso é apenas o &#8220;básico&#8221; caso queria entender melhor o chmod use o man.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/entendendo-o-basico-de-chmod/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8220;cannot find name for user ID xxx&#8221;</title>
		<link>http://www.hack.net.br/blog/linux/cannot-find-name-for-user-id-xxx/</link>
		<comments>http://www.hack.net.br/blog/linux/cannot-find-name-for-user-id-xxx/#comments</comments>
		<pubDate>Wed, 24 Nov 2010 19:28:21 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Knowledge]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[chmod]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[usuarios]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=261</guid>
		<description><![CDATA[Me deparei com essa mensagem, quando crirei um usuário e loguei através dele. Essas mensagens: "cannot find name for user ID xxx" ou "cannot find name for group ID xxx" Pode ter dois motivos: #1 &#8211; Ser devido a um problema de permissão no /etc/passwd ou /etc/group files.  Para solucionar, usaremos os seguintes comandos: chmod [...]]]></description>
			<content:encoded><![CDATA[<p>Me deparei com essa mensagem, quando crirei um usuário e loguei através dele. <span id="more-261"></span>Essas mensagens:</p>
<pre><em><span style="color: #888888;">"cannot find name for user ID xxx"</span></em>
ou<span style="color: #888888;"><em>
"cannot find name for group ID xxx"</em></span></pre>
<p>Pode ter dois motivos:<br />
#1 &#8211; Ser devido a um problema de permissão no <span style="color: #888888;"><em>/etc/passwd</em></span> ou  <span style="color: #888888;"><em>/etc/group</em></span> files.  Para solucionar, usaremos os seguintes comandos:</p>
<pre><em><span style="color: #888888;">chmod 644 /etc/passwd
chmod 644 /etc/group</span></em></pre>
<p>#2 &#8211; A pasta <em><span style="color: #888888;">/usr/sbin</span></em> não está no seu &#8220;path&#8221;. A solução nesse caso e a mais recomendada é usar o caminho completo:</p>
<pre>Como root deletamos o usuário já criado:<em><span style="color: #888888;">
userdel &lt;usuário&gt;</span></em>

Então criamos o usuário novamente utilizando o caminho completo:
<em><span style="color: #888888;">/usr/sbin/useradd &lt;usuário&gt;
</span></em><em></em></pre>
<p>Estão ai duas soluções simples, para esse problema chato.  Lembrando que a segunda opção é a ideal para manter a segurança do seu ambiente.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/cannot-find-name-for-user-id-xxx/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Acabando com as mensagens do Martian Source</title>
		<link>http://www.hack.net.br/blog/linux/acabando-com-as-mensagens-do-martian-source/</link>
		<comments>http://www.hack.net.br/blog/linux/acabando-com-as-mensagens-do-martian-source/#comments</comments>
		<pubDate>Wed, 18 Aug 2010 21:13:49 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[martian]]></category>
		<category><![CDATA[martian source]]></category>
		<category><![CDATA[source]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=256</guid>
		<description><![CDATA[Quem nunca abriu sua console e recebeu uma chuva de mensagens &#8220;martian source&#8221;? Pois bem há uma solução bem simples para isso. Uma explicação breve do que seria Martian Source.  Pacotes Marcianos no português  são pacotes que o Linux não está esperando que cheguem pela interface que estão chegando, exemplo, pacotes da rede interna chegando [...]]]></description>
			<content:encoded><![CDATA[<p>Quem nunca abriu sua console e recebeu uma chuva de mensagens &#8220;martian source&#8221;? Pois bem há uma solução bem simples para isso.</p>
<p><span id="more-256"></span>Uma explicação breve do que seria Martian Source.  Pacotes Marcianos no português  são pacotes que o Linux não está esperando que cheguem pela interface que estão chegando, exemplo, pacotes da rede interna chegando pela interface externa. A causa pode ser um servidor mal configurado ou uma VLAN.</p>
<pre><span style="color: #888888;"><em>martian source 72.14.204.101 from 192.168.1.15, on dev eth0
ll header: 45:00:00:28</em></span></pre>
<p>Podemos desabilitar o Log, para evitar que fique cheio só de mensagens dele.</p>
<pre><em><span style="color: #888888;">cd /proc/sys/net/ipv4/conf/
echo 0 &gt; ethx/log_martians</span></em><em><span style="color: #888888;">
<span style="color: #000000;">(onde x é o numero da interface)</span></span></em></pre>
<p>Fiz isso no CentOS 5.4, ainda não testei reiniciar o servidor, mas aparentemente essa solução é &#8220;temporaria&#8221; até o proximo boot.<br />
Pesquisando pela a internet a solução definitiva seria como vou citar  abaixo, porém, fiz aqui e não funcionou de imediato. No meu caso, onde  não posso reiniciar o servidor quando bem entender então, não foi a  solução. De qualquer forma adicionei a linha pois não existia.</p>
<pre><em>edite o arquivo:
<span style="color: #888888;">/etc/sysctl.conf</span>
adicione/altere
<span style="color: #888888;">net.ipv4.conf.all.log_martians = 0</span></em>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/acabando-com-as-mensagens-do-martian-source/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Descobrindo a versão do Kernel e da distribuição Linux</title>
		<link>http://www.hack.net.br/blog/linux/descobrindo-a-versao-do-kernel-e-da-distribuicao-linux/</link>
		<comments>http://www.hack.net.br/blog/linux/descobrindo-a-versao-do-kernel-e-da-distribuicao-linux/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 15:58:04 +0000</pubDate>
		<dc:creator>Walter Cunha</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Português-Brasil]]></category>
		<category><![CDATA[distro]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[versão]]></category>

		<guid isPermaLink="false">http://www.hack.net.br/?p=238</guid>
		<description><![CDATA[As vezes nos deparamos com um pacote que precisa de versão X do Kernel ou então com um computador com um Linux que desconhecemos e ai como descobrimos isso? Bem simples, vamos lá&#8230; Para descobrir a versão do Kernel, é padrão em todas as distribuições então é só digitar no console: # uname -a Teremos [...]]]></description>
			<content:encoded><![CDATA[<p>As vezes nos deparamos com um pacote que precisa de versão X do Kernel ou então com um computador com um Linux que desconhecemos e ai como descobrimos isso? Bem simples, vamos lá&#8230;</p>
<p><span id="more-238"></span>Para descobrir a versão do Kernel, é padrão em todas as distribuições então é só digitar no console:</p>
<pre><em><span style="color: #888888;"># uname -a</span></em>
</pre>
<p>Teremos como resultado algo do tipo:</p>
<pre><em><span style="color: #888888;">Linux 2.6.18-164.10.1.el5 #1 SMP Thu Jan 7 20:00:41 EST 2010 i686 athlon i386 GNU/Linux</span></em></pre>
<p>O resultado vai variar conforme a versão instalada e o hardware.</p>
<p>Para descobrir a versão do Linux instalada, para cada distribuição teremos uma particularidade. Vejamos:</p>
<p>Para baseadas em RedHat e Debian:</p>
<pre><em><span style="color: #888888;"># cat /etc/issue</span></em></pre>
<p>Para Slackware:</p>
<pre><em><span style="color: #888888;"># cat /etc/slackware-version</span></em>
</pre>
<pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.hack.net.br/blog/linux/descobrindo-a-versao-do-kernel-e-da-distribuicao-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

