<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-33287478</id><updated>2011-10-18T04:20:24.681-07:00</updated><title type='text'>Roberto's Blog</title><subtitle type='html'>Este blog contém notícias, artigos e dicas sobre FreeBSD, Linux, segurança da informação e Rede de Computadores.

E tudo mais que se encaixar !</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-33287478.post-116070799302098688</id><published>2006-10-12T19:51:00.000-07:00</published><updated>2006-10-12T19:54:36.943-07:00</updated><title type='text'>Linux - Links simbólicos e hardlinks</title><content type='html'>Um link é um mecanismo que faz referência a outro arquivo ou diretório em outra localização.&lt;br /&gt;Os links são arquivos especiais, e podem ser identificados com o "l" quando executado o comando: ls -la&lt;br /&gt;Exemplo: lrwxr-xr--  1 roberto    roberto     5 2006-10-12 22:40 link -&gt; teste&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Conteúdo:&lt;br /&gt;1 - Tipos de links existentes no Linux&lt;br /&gt;2 - Criando links&lt;br /&gt;3 - Exemplos&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros documentos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Tipos de links existentes no Linux:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tipo simbólico:&lt;br /&gt;&lt;br /&gt;No link tipo simbólico, o link é um arquivo especial de disco do tipo link que tem como conteúdo o caminho para chegar até o arquivo alvo.&lt;br /&gt;&lt;br /&gt;Características:&lt;br /&gt; - Pode-se fazer links simbólicos em arquivos e diretórios.&lt;br /&gt; - O link simbólico e o arquivo alvo não precisam estar na mesma partição de disco.&lt;br /&gt; - Se o link simbólico for apagado/movido. Somente o link será apagado/movido.&lt;br /&gt; - Qualquer usuário pode criar/desfazer um link simbólico ( respeitando as permissões ).&lt;br /&gt;&lt;br /&gt;Tipo hardlink:&lt;br /&gt;&lt;br /&gt;No link tipo hardlink, o link é apontado para o mesmo inode do arquivo alvo, sendo assim, os dois arquivos serão o mesmo.&lt;br /&gt;&lt;br /&gt;Características: &lt;br /&gt; - Não é possível fazer um hardlink para um diretório. &lt;br /&gt; - Somente é possível fazer hardlink em arquivos que estejam em uma mesma partição de disco.&lt;br /&gt; - Se o hardlink for apagado/movido, você estará apagando/movendo o arquivo alvo.&lt;br /&gt; - Somente o usuário root pode criar/desfazer hardlinks.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Criando links: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O comando ln é utilizado para criar links entre dois arquivos, ou para um diretório.&lt;br /&gt;&lt;br /&gt;Sintaxe:&lt;br /&gt;&lt;br /&gt;ln [OPCOES]... [-T] ALVO NOME_LINK   (1a forma)&lt;br /&gt;ln [OPCOES]... ALVO                  (2a forma)&lt;br /&gt;ln [OPCOES]... ALVO... DIRETORIO     (3a forma)&lt;br /&gt;ln [OPCOES]... -t DIRETORIO ALVO...  (4a forma)&lt;br /&gt;&lt;br /&gt;Explicando:&lt;br /&gt;&lt;br /&gt;ALVO&lt;br /&gt;    Diretório ou arquivo de onde será feito o link. &lt;br /&gt;NOME_LINK&lt;br /&gt;    Nome do link que será criado. &lt;br /&gt;OPCOES&lt;br /&gt;-s&lt;br /&gt;    Cria um link simbólico. &lt;br /&gt;-v&lt;br /&gt;    Modo verbose.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Exemplos:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt; - Criando um link simbólico chamado "emulador" para o diretório /home/roberto/download/emulador_n64/&lt;br /&gt;&lt;br /&gt;$ ln -s /home/roberto/download/emulador_n64/ emulador &lt;br /&gt;&lt;br /&gt;Note que o link simbólico é identificado com o "l" no inicio.&lt;br /&gt;  &lt;br /&gt;$ ls -lah | grep emulador&lt;br /&gt;lrwxrwx--x  1 roberto    roberto      36 2006-10-12 22:42 emulador -&gt; /home/roberto/download/emulador_n64/&lt;br /&gt;&lt;br /&gt; - Criando um hardlink chamado "texto.txt" apontando para o arquivo "alvo_hardlink.txt":&lt;br /&gt;&lt;br /&gt;$ ln alvo_hardlink.txt texto.txt&lt;br /&gt;&lt;br /&gt;Note que o arquivo "alvo_hardlink.txt" e o arquivo texto.txt possuiem o mesmo Inode e o mesmo Device.&lt;br /&gt;&lt;br /&gt;$ stat alvo_hardlink.txt | grep Inode&lt;br /&gt;Device: 304h/772d       Inode: 3057948     Links: 2&lt;br /&gt;$ stat texto.txt | grep Inode&lt;br /&gt;Device: 304h/772d       Inode: 3057948     Links: 2&lt;br /&gt;&lt;br /&gt;FIM&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/iniciante/ch-cmdv.htm"&gt;Guia Foca Linux - Comandos&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://man.he.net/?topic=ln&amp;section=all"&gt;Manual do comando ln&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-116070799302098688?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/116070799302098688/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=116070799302098688' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/116070799302098688'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/116070799302098688'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/10/linux-links-simblicos-e-hardlinks.html' title='Linux - Links simbólicos e hardlinks'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-116033542686812409</id><published>2006-10-08T12:22:00.000-07:00</published><updated>2006-10-08T13:19:15.223-07:00</updated><title type='text'>Linux - Modo de acesso para novos arquivos e diretórios</title><content type='html'>Quando um novo arquivo ou diretório é criado, o processo de criação especifica a permissão que o novo arquivo ou diretório deverá ter.&lt;br /&gt;As permissões padrões para novos arquivos ou diretórios criados são aplicadas nas configurações da conta de cada usuário individalmente.&lt;br /&gt;&lt;br /&gt;O modo de acesso aplicado por padrão é 0666 para arquivos, e 0777 para diretórios.&lt;br /&gt;O qual permite que o arquivo seja lido e escrito por qualquer usuário do sistema.&lt;br /&gt;&lt;br /&gt;Mas na maioria das distribuições Linux, esse valor de permissão de acesso é alterados para que o sistema não fique inseguro.&lt;br /&gt;Normalmente utilizam o valor 0022, mas podemos alterar este valor e especificar um valor personalizado.&lt;br /&gt;Esta permissão padrão é visualizada e alterada através do comando umask.&lt;br /&gt;&lt;br /&gt;Conteúdo:&lt;br /&gt;&lt;br /&gt;1 - Visualizando o valor atual&lt;br /&gt;2 - Alterando valores do umask&lt;br /&gt;3 - Cálculo feito para aplicar o valor 0077 (u=rwx,g=,o=) no umask para novos arquivos e diretórios&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Visualizando o valor atual:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Execute o comando umask sem nenhum valor como parâmetro, e ele irá retornar o valor atual do umask.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umask &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;0022&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Execute o comando umask com a opção -S, e ele irá retornar o valor simbólico da permissão atual.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umask -S&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;u=rwx,g=rx,o=rx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Alterando valores do umask: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para alterar os valores do umask, é necessário executar o comando umask com a permissão de usuário, grupo e outros usuários que queremos "retirar" para novos arquivos ou diretórios criados.&lt;br /&gt;Estes valores indicam a permissão que queremos subtrair (retirar) do valor padrão. E devem ser passados como parâmetro para o comando umask.&lt;br /&gt;Lembrando que o valor padrão para arquivos é 666, e para diretórios é 777.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;Se você gostaria de manter seus novos arquivos e diretórios com mais privacidade, desabilitando acesso para grupo ou outros usuários, você deve utilizar o comando umask com o valor octal: 0077 ou com o valor simbólico: u=rwx,g=,o=&lt;br /&gt;Escolha o modo que você mais gosta, os dois fazem a mesma coisa.&lt;br /&gt;&lt;br /&gt;- Usando valor modo octal:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umask 0077&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ touch novo_arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ mkdir novo_diretorio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ ls -la&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwx------  2 root    root      48 Oct  8 15:21 .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-xr-x 28 roberto roberto 1.6K Oct  8 15:21 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rw-------  1 root    root          0 Oct  8 15:21 novo_arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwx------  2 root    root         48 Oct  8 15:21 novo_diretorio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Usando valor modo simbólico:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ umask u=rwx,g=,o=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ touch novo_arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ mkdir novo_diretorio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ ls -la&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwx------  2 root    root      48 Oct  8 15:21 .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-xr-x 28 roberto roberto 1.6K Oct  8 15:21 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rw-------  1 root    root          0 Oct  8 15:21 novo_arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwx------  2 root    root         48 Oct  8 15:21 novo_diretorio&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Cálculo feito para aplicar o valor 0077 (u=rwx,g=,o=) no umask para novos arquivos e diretórios: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Arquivos:&lt;br /&gt;&lt;br /&gt;Permissão PADRÃO dos arquivos:       0666 ou u=rw,g=rw,o=rw   &lt;br /&gt;Valor que queremos retirar:          0077 ou u=,g=rw,o=rw&lt;br /&gt;Resultado, arquivos terão permissão: 0600 ou u=rw,g=,o=&lt;br /&gt;&lt;br /&gt;- Diretórios:&lt;br /&gt;&lt;br /&gt;Permissão PADRÃO dos diretórios:       0777 ou u=rwx,g=rwx,o=rwx&lt;br /&gt;Valor que queremos retirar:            0077 ou u=,g=rwx,o=rwx&lt;br /&gt;Resultado, diretórios terão permissão: 0700 ou u=rwx,g=,o=&lt;br /&gt;&lt;br /&gt;Agora quando você quiser alterar a permissão padrão dos novos arquivos ou diretórios é só fazer o cálculo de subtração do valor padrão e do valor a ser passado para o umask, para obter a permissão que o novo arquivo ou diretório vai ter.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://www.oreilly.com/catalog/lpicertnut/"&gt;LPI Linux Certification in a Nutshell&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/"&gt;IBM DeveloperWorks - Linux LPI - Tópico 104.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://man.he.net/?topic=umask&amp;amp;section=all"&gt;Manual do comando umask&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-116033542686812409?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/116033542686812409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=116033542686812409' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/116033542686812409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/116033542686812409'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/10/linux-modo-de-acesso-para-novos.html' title='Linux - Modo de acesso para novos arquivos e diretórios'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115964044159525157</id><published>2006-09-30T11:11:00.000-07:00</published><updated>2006-09-30T11:55:00.726-07:00</updated><title type='text'>Linux - Permissões de Acesso Especiais</title><content type='html'>O controle de acesso em arquivos e diretórios é a segurança fundamental para qualquer sistema multi-usuário.&lt;br /&gt;&lt;br /&gt;Os sistemas de arquivos nativos do Linux implementam controle de acesso utilizando algumas propriedades dos arquivos/diretórios.&lt;br /&gt;&lt;br /&gt;Conteúdo:&lt;br /&gt;&lt;br /&gt;1 - Lembrando como as permissões básicas funcionam:&lt;br /&gt;2 - Permissões de Acesso Especiais:&lt;br /&gt;3 - SUID ( Set User ID):&lt;br /&gt;3.1 - Exemplo&lt;br /&gt;3.2 - Comandos&lt;br /&gt;4 - SGID ( Set Group ID ):&lt;br /&gt;4.1 - Exemplo&lt;br /&gt;4.2 - Comandos&lt;br /&gt;5 - Sticky ( Sticky bit):&lt;br /&gt;5.1 - Exemplo&lt;br /&gt;5.2 - Comandos&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 1 - Lembrando como as permissões básicas funcionam: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No Linux há três modelos de controle de acesso básicos: Read, Write e Execution.&lt;br /&gt;&lt;br /&gt;Veja um exemplo de permissão básica na figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/862/3613/1600/perm.png"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/862/3613/320/perm.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;O Tipo do Objeto significa: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;d =&gt; diretório&lt;br /&gt;b =&gt; arquivo de bloco&lt;br /&gt;c =&gt; arquivo especial de caractere&lt;br /&gt;p =&gt; canal&lt;br /&gt;s =&gt; socket&lt;br /&gt;- =&gt; arquivo normal&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Já os outros caracteres significam: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;r =&gt; significa permissão de leitura (read);&lt;br /&gt;w =&gt; significa permissão de gravação (write);&lt;br /&gt;x =&gt; significa permissão de execução (execution);&lt;br /&gt;- =&gt; significa permissão desabilitada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Explicando um pouco mais: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Leitura (r):&lt;br /&gt;Em arquivos, permite examinar o conteúdo do arquivo. &lt;br /&gt;Em diretórios permite listar conteúdo do diretório.&lt;br /&gt;&lt;br /&gt;Escrita (w):&lt;br /&gt;Em arquivos, permite escrever, remover e alterar o arquivo.&lt;br /&gt;Em diretórios, permite criar e remover arquivos dentro do diretório.&lt;br /&gt;&lt;br /&gt;Execução (x):&lt;br /&gt;Em arquivos, permite executar um arquivo como um programa.&lt;br /&gt;Em diretório, permite ler e escrever em arquivos dentro do diretório.&lt;br /&gt;&lt;br /&gt;Sendo que os três primeiros rwx primeiros pertencem ao Dono do arquivo, e os outros três rwx pertencem ao Grupo e por fim os últimos três rwx pertencem há outros usuários que não fazem parte do grupo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2 - Permissões de Acesso Especiais:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mas somente as três permissões básicas (rwx), não dão toda flexibilidade para controlar acesso aos arquivos e diretórios.&lt;br /&gt;Por isso o Linux tem mais três modelos especiais para controle de acesso, chamados suid (set user id), sgid (set group id) e Sticky (Sticky bit).&lt;br /&gt;&lt;br /&gt;Veja um exemplo de permissão especial na figura abaixo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/862/3613/1600/perm_especial.png"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/862/3613/320/perm_especial.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3 - SUID ( Set User ID):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A propriedade SUID é somente para arquivos executáveis e não tem efeito em diretórios.&lt;br /&gt;&lt;br /&gt;Nas permissões básicas, o usuário que executou o programa é dono do processo.&lt;br /&gt;Mas, em arquivo executável com a propriedade SUID aplicada, o programa rodará com o ID do dono do arquivo, não com o ID do usuário que executou o programa.&lt;br /&gt;Normalmente o usuário dono do programa executável é também dono do processo sendo executado.&lt;br /&gt;Ou seja, quando um arquivo/programa executável tem o controle de acesso SUID, ele é executado como se ele estivesse iniciado pelo dono do arquivo/programa.&lt;br /&gt;&lt;br /&gt;A permissão de acesso especial SUID pode aparecer somente no campo Dono.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3.1 - Exemplo: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Um exemplo para arquivo executável com a propriedade SUID é o arquivo /usr/bin/passwd.&lt;br /&gt;Ou seja, quando executamos o comando passwd com qualquer usuário normal, o processo é executado com ID do usuário root ( como se o usuário root tivesse executado o comando passwd), pois somente o usuário root tem permissão para alterar o arquivo /etc/passwd.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /usr/bin/passwd &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rwsr-xr-x 1 root root 27K 2006-04-03 10:37 /usr/bin/passwd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3.2 - Comandos: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Aplicando SUID:&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade SUID em um arquivo executável utilizando formato simbólico (s):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod u+s programa.sh &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah programa.sh &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rwsr-xr-x 1 root roberto 0 2006-09-26 22:57 programa.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade SUID em um arquivo executável utilizando formato octal (4):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod 4750 programa.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah programa.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rwsr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Retirando SUID:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod u-s programa.sh &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah programa.sh &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rwxr-x--- 1 root roberto 0 2006-09-26 22:57 programa.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Procurando SUID:&lt;br /&gt;&lt;br /&gt;Procurando a propriedade SUID em um arquivo executável utilizando formato simbólico (s):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home/roberto -perm u=s &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/roberto/programa.sh &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procurando a propriedade SUID em um arquivo executável utilizando formato octal (4):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home/roberto -perm -4000 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/roberto/programa.sh &lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4 - SGID ( Set Group ID ): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A propriedade SGID tem a mesma função que o SUID para arquivos executáveis.&lt;br /&gt;Mas, a propriedade SGID tem um efeito especial para os diretórios.&lt;br /&gt;&lt;br /&gt;Quando SGID é aplicado em um diretório, os novos arquivos que são criados dentro do diretório assumem o mesmo ID de Grupo do diretório com a propriedade SGID aplicado.&lt;br /&gt;&lt;br /&gt;A permissão de acesso especial SGID pode aparecer somente no campo Grupo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4.1 - Exemplo: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se no diretório /home/roberto tem o grupo casa e tem o SGID habilitado, então todos os arquivos dentro do diretório /home/roberto serão criados com o grupo casa.&lt;br /&gt;Esta é um importante atributo para um equipe, assumindo que todos os arquivos compartinhados devem ter o mesmo grupo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4.2 - Comandos: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Aplicando SGID:&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade SGID em um diretório executável utilizando formato simbólico (s):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod g+s /home/equipe &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /home/equipe &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-sr-x 2 roberto equipe  48 2006-09-26 23:21 .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade SGID em um diretório executável utilizando formato octal (2):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod 2750 /home/equipe &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /home/equipe &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-s--- 2 roberto equipe  48 2006-09-26 23:21 . &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Retirando SGID:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod g-s /home/equipe  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /home/equipe  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 0 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-xr-x 2 roberto equipe  48 2006-09-26 23:21 .  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Procurando SGID:&lt;br /&gt;&lt;br /&gt;Procurando a propriedade SGID em um diretório executável utilizando formato simbólico (s):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home -perm /g=s  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/equipe &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Procurando a propriedade SUID em um diretório executável utilizando formato octal (2):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home -perm -2000  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/equipe  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 5 - Sticky ( Sticky bit): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Em arquivos executáveis, a propriedade Sticky faz com que o sistema mantenha uma imagem do programa em memória depois que o programa finalizar.&lt;br /&gt;Esta capacidade aumenta o desempenho, pois será feito um cache do programa para a memória, e da próxima vez que ele for executado, será carregado mais rápido.&lt;br /&gt;&lt;br /&gt;Em diretórios, a propriedade Sticky impede que outros usuários deletem ou renomeam arquivos dos quais não são donos.&lt;br /&gt;Isso normalmente é utilizado para aumentar a segurança, pois o diretório estará em modo append-only ( somente incremente )&lt;br /&gt;Sendo assim, somente o usuário que é Dono do arquivo, poderá deletar ou renomear os arquivos dentro de um diretório com a propriedade Sticky aplicada.&lt;br /&gt;&lt;br /&gt;A permissão especial Sticky, pode ser especificada somente no campo outros usuários das permissões de acesso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 5.1 - Exemplo: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No diretório /tmp, todos os usuários devem ter acesso para que seus programas possam criar os arquivos temporários, mas nenhum pode apagar arquivos dos outros.&lt;br /&gt;Então é interessante aplicar a propriedade Sticky no diretório /tmp.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 5.2 - Comandos: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Aplicando Sticky:&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um arquivo executável utilizando formato octal (1)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod 1750 programa_pesado.sh  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah programa_pesado.sh  &lt;/span&gt;&lt;br /&gt;-&lt;span style="font-style: italic;"&gt;rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa_pesado.sh &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um arquivo executável utilizando formato simbólico (t):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod o+t programa_pesado.sh  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah programa_pesado.sh  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rwxr-x--T 1 root root 2,9M 2006-09-26 23:51 programa_pesado.sh  &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um diretório utilizando formato simbólico (t):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod o+t /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 5,0K  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxrwxrwt  8 root    root    264 2006-09-26 23:22 .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um diretório utilizando formato octal (1):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod 1777 /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 5,0K  &lt;/span&gt; &lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxrwxrwt  8 root    root    264 2006-09-26 23:22 .&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Retirando Sticky:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# chmod o-t /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah /tmp  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 5,0K  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxrwxrwx  8 root    root    264 2006-09-26 23:22 . &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Procurando Sticky:&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um diretório utilizando simbólico (t):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home/roberto/ -perm /o=t  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/roberto/programa_pesado.sh &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aplicando a propriedade Sticky em um diretório utilizando formato octal (1):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# find /home/roberto/ -perm -1000 &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home/roberto/programa_pesado.sh &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/inic_interm/ch-perm.htm#s-perm-especiais"&gt;Guia Foca Linux - Permissões especiais&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oreilly.com/catalog/lpicertnut/"&gt;LPI Linux Certification in a Nutshell&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/"&gt;IBM DeveloperWorks - Linux LPI - Tópico 104.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://man.he.net/?topic=chmod&amp;amp;section=all"&gt;Manual do comando chmod&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115964044159525157?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115964044159525157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115964044159525157' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115964044159525157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115964044159525157'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/09/linux-permisses-de-acesso-especiais.html' title='Linux - Permissões de Acesso Especiais'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115860231017784034</id><published>2006-09-18T10:57:00.000-07:00</published><updated>2006-09-30T11:26:35.436-07:00</updated><title type='text'>Linux - Quota de Disco</title><content type='html'>Quotas de Disco permitem controlar o uso do disco por usuário ou grupo, ou por ambos ( usuário e grupo ). &lt;br /&gt;São normalmente utilizadas em sistemas multi-usuários e não em sistemas mono-usuário ( Desktop )&lt;br /&gt;E é gerenciada somente pelo usuário root.&lt;br /&gt;&lt;br /&gt;Atualmente temos 3 tipos de Quotas de Disco: vfsold (versão 1), vfsv0 (versão 2 ) e xfs (quota de disco para o sistema de arquivos XFS).&lt;br /&gt;Neste artigos iremos cobrir a versão mais utilizada: vfsv0 ( versão 2 ).&lt;br /&gt;&lt;br /&gt; Conteúdo&lt;br /&gt;&lt;br /&gt;1 - Habilitar Quotas de Disco&lt;br /&gt;2 - Editar limites de Quotas de Disco&lt;br /&gt;3 - Checar Quotas de Disco&lt;br /&gt;4 - Gerenciar Quotas Ultrapassadas&lt;br /&gt;5 - Aviso de limite de quota ultrapassado &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Habilitar Quotas de Disco&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para habilitar Quota de Disco é necessário que seu kernel tenha suporte.&lt;br /&gt;Os kernel 2.4 e 2.6 tem total suporte necessário. Já versões anteriores do kernel tem suporte incompleto a Quota de disco, e será necessário recompilar o kernel para ter suporte a Quota de Disco.&lt;br /&gt;&lt;br /&gt;Neste artigo estou utilizando o kernel 2.6.15-23-386.&lt;br /&gt;&lt;br /&gt;Após isso é necessário instalar as ferramentas para manipular as quotas.&lt;br /&gt;&lt;br /&gt;Utilizando a ferramenta APT-GET:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# apt-get install quota&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos habilitar quota de disco para a partição de disco que queremos utilizar quotas.&lt;br /&gt;Para isso, é necessário editar o arquivo de configuração das tabelas de sistemas de arquivos: /etc/fstab&lt;br /&gt;E incluir as opções "usrquota" (para quota por usuários), e/ou "grpquota" (para quota por grupos).&lt;br /&gt;&lt;br /&gt;No exemplo abaixo estamos habilitando quota de disco para usuários e grupos na partição /dev/hda4 montado em /share:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# /etc/fstab: static file system information.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# &lt;file system&gt; &lt;mount point&gt;   &lt;type&gt;           &lt;options&gt;                            &lt;dump&gt;  &lt;pass&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;proc            /proc           proc             defaults                               0       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2       /               reiserfs         notail                                 0       1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4       /share          ext3             defaults,usrquota,grpquota             0       2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3       /mnt/win98      vfat             defaults,utf8,umask=007,gid=46         0       1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1       none            swap             sw                                     0       0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hdd        /media/cdrom0   udf,iso9660      user,noauto                            0       0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Somente sistemas de arquivos ext2, ext3 e xfs possuem suporte a quota de disco no Linux.&lt;br /&gt;&lt;br /&gt;Após editar o arquivo /etc/fstab e habilitar a quota de disco no ponto de montagem /share, será necessário remontar para aplicar as alterações feitas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mount -o remount,rw /share&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Se você incluir quota de disco para o diretório raiz do sistema "/", será necessário reiniciar o sistema.&lt;br /&gt;&lt;br /&gt;Execute o comando mount para verificar se as opções de quotas estão habilitadas.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mount | grep share&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4 on /share type ext3 (rw,usrquota,grpquota)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Utilizando os comandos quotachek, quotaon e quotaoff:&lt;br /&gt;&lt;br /&gt;O comando quotacheck é utilizado para checar quotas de disco em todos os sistemas de arquivos em /etc/fstab.&lt;br /&gt;E também é utilizado para criar os arquivos com informações sobre as quotas: aquota.user e aquota.group&lt;br /&gt;&lt;br /&gt;O comando quotaon é utilizado para habilitar a checagem de quota de disco.&lt;br /&gt;Já o comando quotaoff desabilita quotas de disco no sistema.&lt;br /&gt;&lt;br /&gt;Ambos os comandos quotacheck e quotaon são normalmente incluídos nos scripts de inicialização do sistema, para checar e habilitar a quota de disco após você reiniciar seu computador.&lt;br /&gt;&lt;br /&gt;Agora iremos criar os arquivos com informações sobre as quotas dos usuários e grupos.&lt;br /&gt;&lt;br /&gt;No exemplo abaixo as seguintes opções serão passada para os comandos quotacheck e quotaon:&lt;br /&gt;&lt;br /&gt;-a Checa todos os sistemas de arquivos em /etc/fstab que estão habilitados como "automount".&lt;br /&gt;-u Checa quotas de usuários ( opção padrão )&lt;br /&gt;-g Checa quotas de grupos&lt;br /&gt;-v Mostra mais detalhes na saída do comando ( modo verbose )&lt;br /&gt;&lt;br /&gt;Então vamos aos comandos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quotacheck -augv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;quotacheck: Quota for users is enabled on mountpoint /share so quotacheck might damage the file.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Please turn quotas off or use -f to force checking.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quotaon -augv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;quotaon: using /share/aquota.group on /dev/hda4 [/share]: Device or resource busy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;quotaon: using /share/aquota.user on /dev/hda4 [/share]: Device or resource busy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos verificar se os arquivos aquota.user e aquota.group foram criados em /share:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# cd /share&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# ls -lah&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;total 37K&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-xr-x  3 root root 4,0K 2006-09-16 17:10 .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwxr-xr-x 23 root root  616 2006-09-16 14:16 ..&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rw-------  1 root root 6,0K 2006-09-16 17:10 aquota.group&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;-rw-------  1 root root 6,0K 2006-09-16 17:10 aquota.user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;drwx------  2 root root  16K 2006-09-16 14:13 lost+found&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Perceba que os arquivos aquota.user e aquota.group tem permissão de leitura e escrita somente para o usuário root, já que somente o usuário root pode gerenciar quotas no sistema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Editar limites de Quotas de Disco&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Os arquivos aquota.user e aquota.group são arquivos binários, e não podem ser editados diretamente por um editor de textos.&lt;br /&gt;Para editar o limite de quotas de disco, utilizamos o comando: edquota    ( de editar quota )&lt;br /&gt;O comando edquota extrai as informações dos arquivos aquota.user e aquota.group, em todos os pontos de montagem que as quotas estão habilitadas, e cria um arquivo temporário, e abre um editor para para que você possa ajustar as quotas.&lt;br /&gt;Consulte o manual para mais informações sobre o comando edquota.&lt;br /&gt;Sintaxe:&lt;br /&gt; edquota [ -u | -g ] [ -F format-name ] [ -f filesystem ] -t&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# edquota roberto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  GNU nano 1.3.10                               Arquivo: /tmp//EdP.ac3bZ0u&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disk quotas for user roberto (uid 1000):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  Filesystem                   blocks       soft       hard     inodes     soft     hard&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  /dev/hda4                     10020      12000      13000          3        5        6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Explicando para que serve cada coluna:&lt;br /&gt;&lt;br /&gt; Filesystem - Partição que terá a quota do usuário/grupo editada. No exemplo /dev/hda4.&lt;br /&gt; blocks - Número máximo de blocos (especificado em Kbytes) que o usuário possui atualmente. No exemplo 10020 Kbytes.&lt;br /&gt; soft - Restrição mínima de espaço em disco usado. No exemplo 12000 Kbytes.&lt;br /&gt; hard - Limite máximo aceitável de uso em disco para o usuário/grupo sendo editado. O sistema de quotas nunca deixará este limite ser ultrapassado. No exemplo 13000 Kbytes.&lt;br /&gt; inodes - Número máximo de arquivos ( inodes ) que o usuário possui atualmente na partição especificada. No exemplo 3 inodes.&lt;br /&gt; soft - Restrição mínima de número de arquivos que o usuário/grupo possui no disco. No exemplo 5 inodes.&lt;br /&gt; hard - Restrição máxima de número de arquivos que o usuário/grupo possui no disco. No exemplo 6 inodes.&lt;br /&gt;&lt;br /&gt;Ou seja, temos:&lt;br /&gt;&lt;br /&gt; - O sistema de arquivos onde a quota está habilitada. ( Filesystem )&lt;br /&gt; - Limite soft e hard para o número máximo de blocos.&lt;br /&gt; - Limite soft e hard para o número máximo de inodes.&lt;br /&gt;&lt;br /&gt;Quando o limite soft é atingido, o usuário é alertado por ter ultrapassado sua quota com a mensagem "hda4: warning, user file quota exceeded." (quota do usuário excedida).&lt;br /&gt;Quando o limite hard é atingido, o usuário é alertado com a mensagem "hda4: write failed, user file limit reached." e posteriormente com a mensagem "mkdir: não é possível criar o diretório `novo_dir': Disk quota exceeded". E o usuário será bloqueado para criar novos arquivos ou diretórios. O limite hard nunca será ultrapassado.&lt;br /&gt;&lt;br /&gt;Para desativar as restrições de quota coloque "0" no campo soft ou hard.&lt;br /&gt;&lt;br /&gt;O limite soft, é válido somente por um determinado tempo, após expirar este tempo, o valor do limite soft é utilizado como limite hard. Lembrando que o hard nunca poderá ser ultrapassado.&lt;br /&gt;&lt;br /&gt;Para alterar o tempo que o limite soft é expirado, utilizamos o comando edquota -t para modificar estes valores na partição especificada:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# edquota -t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GNU nano 1.3.10                               Arquivo: /tmp//EdP.aE3dnlb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Grace period before enforcing soft limits for users:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Time units may be: days, hours, minutes, or seconds&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  Filesystem             Block grace period     Inode grace period&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  /dev/hda4                     3days                  7days&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Explicando as colunas:&lt;br /&gt;&lt;br /&gt; Filesystem - Sistema de arquivos que terá o período de tolerância modificado.&lt;br /&gt; Block grace period - Tempo máximo de tolerância para usuários/grupos que ultrapassaram sua quota soft de espaço em disco antes de passar a valer como hard. No exemplo, o usuário tem 3 dias para excluir possíveis arquivos ou contactar o administrador para redimensionar o tamanho de quota. O valor padrão é 7 dias.&lt;br /&gt; Inode grace period - Tempo máximo de tolerância para usuários/grupos que ultrapassaram sua quota soft de número de arquivos gravados antes de passar a valer como hard. No exemplo, o usuário tem 7 dias para excluir possíveis arquivos ou contactar o administrador para analisar seu tamanho de quota. O valor padrão é 7 dias.&lt;br /&gt;&lt;br /&gt;Ou seja, temos:&lt;br /&gt;&lt;br /&gt; - O sistema de arquivos onde a tolerância está habilitada. ( Filesystem )&lt;br /&gt; - O número de dias para o limite soft para o número máximo de blocos.&lt;br /&gt; - O número de dias para o limite soft para o número máximo de inodes.&lt;br /&gt;&lt;br /&gt;Observações:&lt;br /&gt; - O comando quotacheck deverá ser executado na partição sempre que novas restrições/limites forem editados com o edquota. Isto atualiza os arquivos aquota.user e aquota.group.&lt;br /&gt;&lt;br /&gt;Primeiro desative o sistema de quotas, com o comando: &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quotaoff -augv&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Execute o comando para checar as quotas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quotacheck -augv&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Após isso é necessário ativar as quotas com o comando:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quotaon -augv&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por este motivo é recomendável fazer isso em modo monousuário. Se você possuir quotas de disco na partição raiz "/" será necessário reiniciar o sistema.&lt;br /&gt;&lt;br /&gt; - Para dar tempo de eliminar arquivos e não ser pego desprevenido com o bloqueio de gravação do limite hard. O sistema lhe mostrará mensagens alertando que o limite soft foi ultrapassado e que está próximo de atingir o limite hard.&lt;br /&gt;Lembrando que o limite hard nunca poderá ser ultrapassado.&lt;br /&gt;&lt;br /&gt; - Quando o usuário exclui seus arquivos e volta a ficar abaixo dos limites soft da quota, o tempo de tolerância é resetado aos valores padrões especificados por edquota -t.&lt;br /&gt;&lt;br /&gt; - As quotas de espaço em disco podem ser definidas automaticamente para os novos usuários adicionados ao sistema colocando o espaço em disco na variável QUOTAUSER=numero do arquivo /etc/adduser.conf. Isto será equivalente a digitar o comando edquota -q QUOTA novo_usuário. &lt;br /&gt;&lt;br /&gt;Copiando quotas&lt;br /&gt;&lt;br /&gt;Agora imagine você editando quotas de disco para cada usuário. Seria uma tarefa trabalhosa se você tiver muitos usuários.&lt;br /&gt;Para resolver este problema utilizamos o parâmetro -p do comando edquota.&lt;br /&gt;Ele duplica a quota do usuário especificado para cada um dos outros usuáros especificados.&lt;br /&gt;Este é o mecanismo normalmente utilizado para clonar quotas de um usuário para um grupos de usuários.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# edquota -p roberto mario andre jsilva&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Limites para Grupo&lt;br /&gt;&lt;br /&gt;Você pode também usar o comando edquota para retringir o espaço em disco para o grupo dono dos arquivos.&lt;br /&gt;Por exemplo: Podemos limitar o total de arquivos criados ou espaço em disco para todos os membros do grupo devel para 50 MB e 5000 arquivos, como mostra o exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# edquota -g devel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3 - Checar Quotas de Disco&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;O comando quota -v é utilizado para exibir a quota para o usuário passado como parâmetro, e o sistema de arquivos ao qual o usuário esta associado.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quota -v roberto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disk quotas for user roberto (uid 1000):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      /dev/hda4   10028   12000   13000              4      5       6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quando o usuário ultrapassar o limite da quota, será exibida um "*" ( asterisco ) ao lado do limite ultrapassado.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# quota -v roberto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disk quotas for user roberto (uid 1000):&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;      /dev/hda4   10028   12000   13000               6*      5       6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Note na coluna "files" o asterisco "*" ao lado do número 6, indicando que a quota foi ultrapassada.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4 - Gerenciar Quotas Ultrapassadas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Quando precisamos gerenciar e verificar o uso de quotas de todos os usuários/grupos do sistema o comando quota se torna trabalhoso. &lt;br /&gt;Para facilitar podemos utilizar o comando repquota. Que faz uma listagem organizada por partições, listando dados como grace time, limites soft e hard para blocos e inodes, podendo mostrar as quotas de todos os usuários e grupos do sistema.&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# repquota -augv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;*** Report for user quotas on device /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Block grace time: 7days; Inode grace time: 7days&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        Block limits                File limits&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;User            used    soft    hard  grace    used  soft  hard  grace&lt;/span&gt;&lt;br /&gt;----------------------------------------------------------------------&lt;br /&gt;&lt;span style="font-style: italic;"&gt;root      --  141244       0       0              4     0     0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;roberto   -+   10028   12000   13000              6     5     6  6days&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Statistics:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Total blocks: 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Data blocks: 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Entries: 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Used average: 2,000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;*** Report for group quotas on device /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Block grace time: 7days; Inode grace time: 7days&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;                        Block limits                File limits&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Group           used    soft    hard  grace    used  soft  hard  grace&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;----------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;root      --  141244       0       0              4     0     0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;roberto   --   10028       0       0              6     0     0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Statistics:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Total blocks: 7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Data blocks: 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Entries: 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Used average: 2,000000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5 - Aviso de limite de quota ultrapassado&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O comando warnquota checa a quota de disco para cada sistema de arquivos com quota ativada e envia e-mails com uma mensagem de aviso para os usuários que ultrapassaram o limite soft estabelecido.&lt;br /&gt;Quando um grupo ultrapassa o limite soft estabelecido, um e-mail é enviado para o usuário especificado em /etc/quotagrpadmins.&lt;br /&gt;Normalmente o comando warnquota é rodado periodicamente como um serviço no utilitário cron.&lt;br /&gt;Consulte o manual do comando warnquota para mais informações.&lt;br /&gt;&lt;br /&gt;Sintaxe:&lt;br /&gt;       warnquota [ -ugsid ] [ -F quotaformat ] [ -q quotatab ] [ -c configfile ] [ -a adminsfile ]&lt;br /&gt;&lt;br /&gt;Fim.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/"&gt;IBM DeveloperWorks - Linux LPI - Tópico 104.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/avancado/ch-d-restr.htm#s-d-restr-quotas"&gt; Guia Foca Linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://www.tldp.org/HOWTO/Quota.html"&gt; Quota HOWTO&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115860231017784034?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115860231017784034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115860231017784034' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115860231017784034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115860231017784034'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/09/linux-quota-de-disco.html' title='Linux - Quota de Disco'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115774374569840047</id><published>2006-09-08T12:27:00.000-07:00</published><updated>2006-09-10T12:57:14.100-07:00</updated><title type='text'>Linux - Sistema de Arquivos</title><content type='html'>O Linux suporta diferentes sistemas de arquivos.&lt;br /&gt;Cada um com suas vantagens, desvantagens e características.&lt;br /&gt;&lt;br /&gt;Atualmente uma importante característica dos atuais sistemas de arquivos, são os sistemas de arquivos com "journaling", o qual leva a preferência, sobre os outros sistemas de arquivos que não tem "journaling".&lt;br /&gt;Neste artigo irei descrever como manipular os principais sistemas de arquivos disponíveis para Linux.&lt;br /&gt;&lt;br /&gt;- Conteúdo:&lt;br /&gt;&lt;br /&gt;1 - Sistemas de arquivos suportados pelo Linux:&lt;br /&gt;1.0 - O sistema de arquivos ext2:&lt;br /&gt;1.1 - O sistema de arquivos ext3:&lt;br /&gt;1.2 - O sistema de arquivos ReiserFS:&lt;br /&gt;1.3 - O sistema de arquivos XFS:&lt;br /&gt;1.4 - O sistema de arquivos SWAP:&lt;br /&gt;1.5 - O sistema de arquivos VFAT:&lt;br /&gt;2 - Criando Sistemas de Arquivos:&lt;br /&gt;2.0 - Criando um sistema de arquivos Ext3 na partição /dev/hda4:&lt;br /&gt;2.1 - Vamos agora criar um sistema de arquivos ReiserFS na partição /dev/hda3:&lt;br /&gt;2.2 - Vamos agora criar um sistema de arquivos VFS na partição /dev/hda5:&lt;br /&gt;2.3 - Criando um espaço para troca de dados com a memória RAM (SWAP):&lt;br /&gt;3 - Criando sistema de arquivos em um arquivo:&lt;br /&gt;3.0 - Usando o comando dd:&lt;br /&gt;3.1 - Formatando o arquivo através do comando: mkfs&lt;br /&gt;3.2 - Mountanto/acessando através do comando: mount&lt;br /&gt;4 - Visualizando sistemas de arquivos criados: &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Journaling é um recurso que permite recuperar um sistema após um desastre no disco ( quando um disco está sujo ), em uma velocidade muito maior que nos sistemas de arquivos anteriores ( sem journaling ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1 - Sistemas de arquivos suportados pelo Linux:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A lista de sistemas de arquivos suportados pelo Linux é muito grande, mas pode ser vista uma referência aqui.&lt;br /&gt;Mas, neste artigo irei discutir somente os sistemas de arquivos mais comuns.&lt;br /&gt;Segue abaixo uma breve descrição sobre os sistemas de arquivos mais comuns disponíveis para o Linux:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.0 - O sistema de arquivos ext2:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sistema de arquivos ext2 é conhecido como "Second Extended FileSystem" foi desenvolvido para ser mais "eficiênte" que o sistema de arquivos "Minix", seu antecessor.&lt;br /&gt;O Minix era muito utilizado nas primeiras versões do Linux, e foi utilizado por muitos anos.&lt;br /&gt;O sistema de arquivos ext2 não possui journaling e foi substituido pelo sistema de arquivos ext3.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.1 - O sistema de arquivos ext3:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sistema de arquivos ext3 é uma versão do ext2 com suporte a journaling.&lt;br /&gt;Portando o ext3 tem as mesmas características do ext2, mas com suporte journaling.&lt;br /&gt;Essa característica foi uma evolução e tornou o ext3 um sistema de arquivos muito estável e robusto.&lt;br /&gt;Como no ext3 só foi adicionado o suporte a journaling, podemos converter um sistema de arquivos ext2 para ext3, adicionado suporte a journaling, e também podemos converter um sistema de arquivos ext3 para ext2, removendo o suporte a journaling.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.2 - O sistema de arquivos ReiserFS:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sistema de arquivos ReiserFS foi criado recentemente. Mas atualmente quase todas as distribuições Linux o suportão.&lt;br /&gt;Sua performace é muito boa, principalmente para um número muito grande de arquivos pequenos.&lt;br /&gt;ReiserFS também possui suporte a journaling.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.3 - O sistema de arquivos XFS:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sistema de arquivos XFS também possui suporte a journaling.&lt;br /&gt;Foi desenvolvido originalmente pela Silicon Graphics e posteriormente disponibilizado o código fonte. O XFS é considerado um dos melhores sistemas de arquivos para banco de dados, pois é muito rápido na gravação.&lt;br /&gt;XFS utiliza muitos recursos de cache com memória RAM, e para utilizar XFS é recomendado utilizar sistemas que possuem redundância de energia.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.4 - O sistema de arquivos SWAP:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;SWAP é um espaço reservado para troca de dados com a memória RAM.&lt;br /&gt;Em alguns lugares ele não é mensionado como um Sistema de arquivos.&lt;br /&gt;Mas resolvi descrever aqui pois faz parte deste artigo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.5 - O sistema de arquivos VFAT:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O sistema de arquivos VFAT é também conhecido como FAT32 ( M$ Windows ).&lt;br /&gt;O sistema de arquivos VFAT não possui suporte a journaling.&lt;br /&gt;E é utilizado normalmente para transferir dados entre sistemas M$ Windows e o Linux instalados no mesmo disco, pois pode ser lido e escrito por ambos os sistemas operacionais.&lt;br /&gt;O sistema de arquivos VFAT está longe de ser um sistema de arquivos utilizado para Sistemas Linux, exeto para compartinhamento/compatibilidade entre o M$ Windows e Linux.&lt;br /&gt;Se você utilizar VFAT no Linux, esteja certo de perder alguns atributos, tal como: Permissão de execução, links simbólicos entre outras coisas.&lt;br /&gt;&lt;br /&gt;Ambos os sistemas de arquivos ext3 e ReiserFS são maduros o bastante para serem utilizados como padrão no Linux.&lt;br /&gt;Esses dois são os mais utilizados pelas distribuições Linux.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2 - Criando Sistemas de Arquivos:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para criar sistemas de arquivos utilizamos o comando: mkfs ( de "fazer sistema de arquivos" )&lt;br /&gt;E o comando: mkswap para fazer espaços para troca de dados com a memória RAM.&lt;br /&gt;&lt;br /&gt;O comando mkfs é um "front-end" para vários outros comandos para criação dos mais diversos e comuns sistemas de arquivos.&lt;br /&gt;Para saber quais sistemas de arquivos é atualmente suportado pelo seu Linux, digite comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ ls /sbin/mk*&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/sbin/mkdosfs      /sbin/mkfs.ext2   /sbin/mkfs.msdos     /sbin/mkfs.xfs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/sbin/mke2fs       /sbin/mkfs.ext3   /sbin/mkfs.reiser4   /sbin/mkreiser4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/sbin/mkfs         /sbin/mkfs.jfs    /sbin/mkfs.reiserfs  /sbin/mkreiserfs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/sbin/mkfs.cramfs  /sbin/mkfs.minix  /sbin/mkfs.vfat      /sbin/mkswap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No exemplo acima estão os sistemas de arquivos suportados pelo meu sistema: Kubuntu 6.06 LTS Dapper Drake, Kernel: 2.6.15-23-38.&lt;br /&gt;&lt;br /&gt;Existem mais de um forma/comando para criar um sistema de arquivos.&lt;br /&gt;Por exemplo, para criar um sistema de arquivos ext3, na partição /dev/hda4, podemos utilizar um dos seguintes comandos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs.ext3 /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs -t ext3 /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ou&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mke2fs -j /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A sintaxe para o comando mkfs é:&lt;br /&gt;&lt;br /&gt;   mkfs [opções] dispositivo [blocos]&lt;br /&gt;&lt;br /&gt;onde&lt;br /&gt; &lt;br /&gt;Opções:&lt;br /&gt;-t tipo : especifica o tipo de sistema de arquivos a ser criado. O padrão é ext2.&lt;br /&gt;-c : checa o dispositivo a procura de blocos defeituosos durante a criação do sistema de arquivos.&lt;br /&gt;&lt;br /&gt;* dispositivo : é o arquivo especial correspondente ao dispositivo.&lt;br /&gt;* blocos : é quantidade de blocos a ser utilizada pelo sistema de arquivos.&lt;br /&gt;&lt;br /&gt;Para mais informações, consulte o manual do comando mkfs.&lt;br /&gt;&lt;br /&gt;Agora vamos a prática !&lt;br /&gt;&lt;br /&gt;Primeiro lembre-se que quando você utiliza o comando mkfs e seus derivados, você esta "formatando" a partição passanda como parâmetro.&lt;br /&gt;Então não utilize o mkfs em partições que contenham dados importantes. Você estará apagando os dados da partição.&lt;br /&gt;Abaixo irei mostrar alguns exemplo, lembre-se de substituir o nome da partição.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2.0 - Criando um sistema de arquivos Ext3 na partição /dev/hda4: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs -t ext3 /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mke2fs 1.38 (30-Jun-2005)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Filesystem label=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OS type: Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Block size=4096 (log=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fragment size=4096 (log=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1026144 inodes, 2050295 blocks&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;102514 blocks (5.00%) reserved for the super user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;First data block=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;63 block groups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;32768 blocks per group, 32768 fragments per group&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;16288 inodes per group&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Superblock backups stored on blocks: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Writing inode tables: done&lt;/span&gt;                      &lt;br /&gt;&lt;span style="font-style: italic;"&gt;Creating journal (32768 blocks): done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Writing superblocks and filesystem accounting information: done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This filesystem will be automatically checked every 33 mounts or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;180 days, whichever comes first.  Use tune2fs -c or -i to override.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2.1 - Vamos agora criar um sistema de arquivos ReiserFS na partição /dev/hda3:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs -t reiserfs /dev/hda3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mkfs.reiserfs 3.6.19 (2003 www.namesys.com)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A pair of credits:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Many persons came to www.namesys.com/support.html,  and got a question answered&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;for $25, or just gave us a small donation there.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Oleg Drokin was the debugger for  V3 during most of the time that  V4 was under&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;development,  and was quite  skilled and fast at it.  He wrote  the large write&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;optimization of V3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Guessing about desired format.. Kernel 2.6.15-23-386 is running.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Format 3.6 with standard journal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Count of blocks on the device: 2050288&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Number of blocks consumed by mkreiserfs formatting process: 8274&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Blocksize: 4096&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Hash function used to sort names: "r5"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Journal Size 8193 blocks (first block 18)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Journal Max transaction length 1024&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;inode generation number: 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;UUID: da877e16-506d-4687-845a-0bf5eeed7862&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ATTENTION: YOU SHOULD REBOOT AFTER FDISK!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        ALL DATA WILL BE LOST ON '/dev/hda3'!&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Continue (y/n):y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Initializing journal - 0%....20%....40%....60%....80%....100%&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Syncing..ok&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Tell your friends to use a kernel based on 2.4.18 or later, and especially not a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;kernel based on 2.4.9, when you use reiserFS. Have fun.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ReiserFS is successfully created on /dev/hda3.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2.2 - Vamos agora criar um sistema de arquivos VFS na partição /dev/hda5: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs -t vfat /dev/hda5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mkfs.vfat 2.11 (12 Mar 2005)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Todas os sistemas de arquivos acima podem ser montados com a ferramenta "mount" e incluída no arquivo /etc/fstab.&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mount -t vfat /dev/hda5 /mnt/win &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2.3 - Criando um espaço para troca de dados com a memória RAM (SWAP):&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para criar um sistema de arquivos tipo SWAP iremos utilizar a ferramenta: mkswap&lt;br /&gt;É necessário a partição ser do tipo "swap", código 82.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkswap /dev/hda6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Configurando área de troca versão 1, tamanho = 8422617 kB&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;sem rótulo, UUID=3f8c0bcc-5409-4951-8939-cba0d1e8da71&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;É necessário ativar a partição de troca com o comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# swapon /dev/hda6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para desativar utilize o comando:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# swapoff /dev/hda6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Enfim, você pode criar vários outros sistemas de arquivos de forma similar.&lt;br /&gt;Mas verifique antes se o sistema de arquivos é suportado pelo seu kernel e verifique também o tipo da partição a qual você deseja formatar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3 - Criando sistema de arquivos em um arquivo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A criação de sistemas de arquivos não está limitada apenas a partições de disco.&lt;br /&gt;Também podemos criar um sistema de arquivos em arquivos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3.0 - Usando o comando dd:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vamos utilizar o comando dd para criar um arquivo vazio de 1 GB.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# dd if=/dev/zero of=/tmp/arquivo-ext2 bs=1024 count=1000000&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1000000+0 records in&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1000000+0 records out&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3.1 - Formatando o arquivo através do comando: mkfs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mkfs -t ext3 /tmp/arquivo-ext3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mke2fs 1.38 (30-Jun-2005)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/tmp/arquivo-ext3 is not a block special device.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Proceed anyway? (y,n) y&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Filesystem label=&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OS type: Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Block size=4096 (log=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fragment size=4096 (log=2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;125184 inodes, 250000 blocks&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;12500 blocks (5.00%) reserved for the super user&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;First data block=0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;8 block groups&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;32768 blocks per group, 32768 fragments per group&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;15648 inodes per group&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Superblock backups stored on blocks:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;        32768, 98304, 163840, 229376&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Writing inode tables: done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Creating journal (4096 blocks): done&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Writing superblocks and filesystem accounting information: done&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This filesystem will be automatically checked every 23 mounts or&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;180 days, whichever comes first.  Use tune2fs -c or -i to override.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Ele primeiro dirá que o arquivo arquivo-ext2 não é um dispositivo de bloco especial (uma partição de disco) e perguntará se deve continuar, responda com y&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3.2 - Mountanto/acessando através do comando: mount&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# mount -t ext3 /tmp/arquivo-ext2 /mnt/arquivo-ext3/ -o loop=/dev/loop/0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Foi usado o parâmetro -o loop para dizer ao comando mount para usar os recursos de loop do kernel para montar o sistema de arquivos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 4 - Visualizando sistemas de arquivos criados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Há varias formas de visualizar os sistemas de arquivos existentes nas partições.&lt;br /&gt;Abaixo segue as formas mais utilizadas:&lt;br /&gt;&lt;br /&gt;Através do arquivo /proc/mounts:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# cat /proc/mounts&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;rootfs / rootfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;none /sys sysfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;none /proc proc rw,nodiratime 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;udev /dev tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2 / reiserfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2 /dev/.static/dev reiserfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /var/run tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /var/lock tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;usbfs /proc/bus/usb usbfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /lib/modules/2.6.15-23-386/volatile tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;devpts /dev/pts devpts rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /dev/shm tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /var/run tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;tmpfs /var/lock tmpfs rw 0 0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3 /mnt/win98 vfat rw,nodiratime,gid=46,fmask=0007,dmask=0007,codepage=cp437,iocharset=iso8859-1,utf8 0 0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Através do comando: df -T&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# df -T&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sist. Arq.    Tipo   1K-blocos      Usad Dispon.   Uso% Montado em&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2 reiserfs    10233024   2298764   7934260  23% /&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;varrun       tmpfs       75416        52     75364   1% /var/run&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;varlock      tmpfs       75416         4     75412   1% /var/lock&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;udev         tmpfs       75416        68     75348   1% /dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;devshm       tmpfs       75416         0     75416   0% /dev/shm&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;lrm          tmpfs       75416     18856     56560  26% /lib/modules/2.6.15-23-386/volatile&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3     vfat    10231424   1836824   8394600  18% /mnt/win98&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fim.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/"&gt;IBM DeveloperWorks - Linux LPI - Tópico 104.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://www.gentoo.org/doc/en/articles/afig-ct-ext3-intro.xml"&gt;Ext3 - Gentoo Linux&lt;br /&gt;&lt;/a&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.htm"&gt;Guia Foca GNU/Linux - Capítulo 5 - Discos e Partições&lt;/a&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/File_system"&gt;FileSystem na Wikipedia&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115774374569840047?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115774374569840047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115774374569840047' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115774374569840047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115774374569840047'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/09/linux-sistema-de-arquivos.html' title='Linux - Sistema de Arquivos'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115732065630889503</id><published>2006-09-03T14:52:00.000-07:00</published><updated>2006-09-03T16:23:47.180-07:00</updated><title type='text'>Linux - Manipulando partições de disco.</title><content type='html'>Neste artigo irei descrever como manipular partições de disco no Linux utilizando a ferramenta &lt;a href="http://www.die.net/doc/linux/man/man8/fdisk.8.html"&gt;fdisk&lt;/a&gt;.&lt;br /&gt;Veja abaixo a lista de conteúdo deste artigo:&lt;br /&gt;&lt;br /&gt;1 - Dispositivos de bloco e partições&lt;br /&gt; 1.0 - Dispositivo de Bloco&lt;br /&gt; 1.1 - Partições de Disco&lt;br /&gt;&lt;br /&gt;2 - Exibindo informações sobre partições&lt;br /&gt; 2.0 - Utilizando "fdisk" para exibir partições&lt;br /&gt;&lt;br /&gt;3 - Particionando disco com a ferramenta "fdisk"&lt;br /&gt; 3.0 - Criando uma nova partição primária&lt;br /&gt; 3.1 - Criando uma nova partição estendida&lt;br /&gt; 3.2 - Criando partições lógicas apartir da partição estendida&lt;br /&gt; 3.3 - Alterando o tipo da partição&lt;br /&gt;3.4 - Excluindo partições existentes&lt;br /&gt;3.5 - Alterando a flag de partição "bootável"&lt;br /&gt; 3.6 - Saindo do "fdisk" sem salvar as alterações feitas&lt;br /&gt;3.7 - Saindo do "fdisk" e salvando alterações feitas&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 1 - Dispositivos de bloco e partições&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 1.0 - Dispositivo de Bloco: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Um dispositivo de bloco é uma camada de abstração para algum dispositivo de armazenamento que pode ser formatado em blocos. Blocos individuais podem ser acessados independentemente de outros blocos. Tal acesso é frequentemente chamado de "random access" ou "acesso aleatório".&lt;br /&gt;&lt;br /&gt;Essa camada de abstração para acesso aos blocos de dispositivos de armazenamento, permitem programas acessarem estes dispositivos de bloco sem problemas, mesmo que o dispositivo abaixo dessa camada de abstração não parece ser o que realmente é.&lt;br /&gt;&lt;br /&gt;Exemplo: Dispositivos como disquete, disco rígido, CD, ou qualquer outro dispositivo virtual pode ser acessado por essa camada de abstração.&lt;br /&gt;&lt;br /&gt;No Linux, os dispositivos estão localizados no diretório /dev.&lt;br /&gt;Neste diretório podemos encontrar diversos dispositivos. Os dispositivos de bloco são identificados com o caractere "b" e os dispositivos de caractere são identificados com o caracterer "c".&lt;br /&gt;&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cd /dev&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ ls -l&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;brw-rw---- 1 root disk      8,   2 2006-08-30 10:40 sda2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;brw-rw---- 1 root disk      8,   5 2006-08-30 10:40 sda5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;brw-rw---- 1 root plugdev   8,  16 2006-08-30 10:41 sdb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;brw-rw---- 1 root plugdev   8,  17 2006-08-30 10:41 sdb1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;crw-rw---- 1 root audio    14,   1 2006-08-30 10:41 sequencer&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;crw-rw---- 1 root audio    14,   8 2006-08-30 10:41 sequencer2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;crw-rw---- 1 root root     21,   0 2006-08-30 10:41 sg0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Também podemos exibir somente os dispositivos de bloco com o comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;$ cd /dev/ ; ls -l | grep "^b"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Descrevendo o comando acima: Primeiro entra do diretório /dev/, depois executa o comando ls -l e a saída é redirecionada para o grep, que por sua vez exibe apenas os dispositivos iniciados com o caracterer "b" de "bloco".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.1 - Partições de Disco: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para alguns dispositivos de bloco, tal como disquetes e CD/DVD, é comum ter somente um único sistema de arquivos.&lt;br /&gt;No entanto, com disco rígido e alguns dispositivos de armazenamento USB ( Pen-drive ), é possível dividir um dispositivo em vários pedaços, ou seja, ter várias partições diferentes no mesmo dispositivo.&lt;br /&gt;&lt;br /&gt;Com isso concluimos que disquetes, Zip-disks e CD-ROMs/DVD não possuem tabela de partição. Tabelas de partição são exclusivos dos discos rígidos e de "pen-drive".&lt;br /&gt;&lt;br /&gt;Partições podem ter diferentes tamanhos e diferentes sistemas de arquivos.&lt;br /&gt;Com isso, um único disco pode ser usado para vários propósitos.&lt;br /&gt;Por exemplo: Podemos instalar em um único disco rígido, vários sistemas operacionais diferentes, incluindo FreeBSD, Solaris, Linux ou Microsoft Windows, entre outros. Todos compartilhando o mesmo disco rígido.&lt;br /&gt;&lt;br /&gt;Existem três tipos de partições: Primária, extendida e lógica.&lt;br /&gt;Um disco IDE pode ter no máximo 63 partições, já um SCSI são limitados a 15 partições.&lt;br /&gt;Sendo que em discos IDE temos no máximo: 4 primárias ou 3 primárias e somente uma extendida e até 59 lógicas por disco.&lt;br /&gt;&lt;br /&gt;O Linux enumera as partições primárias ou extendida de 1 até 4. Podemos ter apenas uma partição extendida por disco.&lt;br /&gt;Então, como exemplo um dispositivo hda pode ter as seguintes partições: /dev/hda1, /dev/hda2, /dev/hda3 e /dev/hda4. Ou apenas uma partição primária ( /dev/hda1 ) e uma outra partição extendida ( /dev/hda2 ).&lt;br /&gt;As partições lógicas se iniciam em /dev/hda5 e é necessário ter uma partição extendida para poder criar partições lógicas dentro.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 2 - Exibindo informações sobre partições:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As informações sobre partições são armazenadas na "tabela de partições", que é localizada na trilha "0" do disco rígido (MBR).&lt;br /&gt;Essa tabela, lista informações sobre o início e o fim de cada partição, informações sobre o tipo de sistema de arquivos e se alguma partição esta marcada como "bootável" ou não.&lt;br /&gt;&lt;br /&gt;Para criar ou deletar partições, é necessário editar essa tabela de partição usando um programa designado para este trabalho.&lt;br /&gt;Neste artigo iremos utilizar o programa em modo texto "fdisk", mas existe muitos outro programas que podem realizar esta tarefa, incluindo programas executados sobre janelas ( Gparted ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.0 - Utilizando "fdisk" para exibir partições:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para exibir a tabela de partição, utilizamos o comando "fdisk" com a opção -l.&lt;br /&gt;No exemplo abaixo, estou listando o disco /dev/sda:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# fdisk -l /dev/sda&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disk /dev/sda: 80.0 GB, 80026361856 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 heads, 63 sectors/track, 9729 cylinders&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Units = cylinders of 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   Device Boot      Start         End      Blocks   Id  System&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda1   *           1        9541    76638051   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda2            9542        9729     1510110    5  Extended&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda5            9542        9729     1510078+  82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos entender o que cada um dos campos acima diz:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disk /dev/sda: 80.0 GB, 80026361856 bytes&lt;/span&gt;          = Mostra o tamanho total do disco.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 heads, 63 sectors/track, 9729 cylinders &lt;/span&gt;       = Mostra a geometria do disco&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Units = cylinders of 16065 * 512 = 8225280 bytes &lt;/span&gt;  = mostra o resultado da multiplicação de cilindros por blocos de 512 bytes&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;  Device Boot       Start         End      Blocks    Id     System&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda1   *           1        9541    76638051   83     Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda2            9542        9729     1510110    5     Extended&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/sda5            9542        9729     1510078+  82     Linux swap/Solaris&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Primeira coluna: A coluna "Device" exibe o nome das partições existentes.&lt;br /&gt;Segunda colula: A coluna "Boot" exibe as partições ativas como bootável. No exemplo a partição /dev/sda1 esta ativada.&lt;br /&gt;Terceira coluna: A coluna "Start" exibe o cilindro inicial.&lt;br /&gt;Quarta coluna: A coluna "End" exibe o cilindro final.&lt;br /&gt;Quinta coluna: A coluna "Blocks" exibe numeros de blocos em 1k ( 1024 bytes ).&lt;br /&gt; Sexta coluna: A coluna "Id" exibe informação sobre o tipo da partição.&lt;br /&gt;Sétima coluna: A coluna "System" exibe o nome do tipo da partição.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; 3 - Particionando disco com a ferramenta fdisk:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Acima mostrei como exibir informações sobre sua partição com ferramenta "fdisk". E a ferramenta "fdisk" providencia um ambiente interativo para editar a tabela de partição, criar ou remover partições.&lt;br /&gt;&lt;br /&gt;Aviso: Antes de modificar sua tabela de partição, faça backup das informações que julgar importantes e não realize nenhuma mudança com partições importantes em uso.&lt;br /&gt;E tenha certeza que você saiba o que está fazendo antes de executar alguma ação. Pois o "fdisk" não irá fazer muitas confirmações, e suas alterações não podem ser desfeitas.&lt;br /&gt;&lt;br /&gt;Para iniciar o "fdisk" em modo interativo, passe como parâmentro para ele o nome do disco ao qual você deseja editar.&lt;br /&gt;Segue um exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# fdisk /dev/hda&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O número de cilindros para este disco está configurado para 4865.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Não existe nada de errado, mas isto é maior que 1024,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;e pode em certas configurações causar problemas com:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1) programas que executam em tempo de inicialização (versões velhas do LILO)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;2) inicialização e programas de particionamento de outros OSs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   (p.ex., DOS FDISK, OS/2 FDISK)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora você está em modo interativo. Você pode digitar "m" para exibir a ajuda do fdisk.&lt;br /&gt;Segue exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): m&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando - ação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   a   alterna a opção "inicializável"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   b   edita rótulo BSD no disco&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   c   alterna a opção "compatibilidade"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   d   exclui uma partição&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   l   lista os tipos de partição conhecidos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   m   mostra este menu&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   n   cria uma nova partição&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   o   cria uma nova tabela de partições DOS vazia&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   p   mostra a tabela de partições&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   q   sai sem salvar as alterações&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   s   cria um novo rótulo de disco Sun vazio&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   t   altera a identificação da partição para o sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   u   altera as unidades das entradas mostradas&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   v   verifica a tabela de partições&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   w   grava a tabela no disco e sai&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   x   funcionalidade adicional (somente para usuários avançados)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos verificar as partições existentes como o comando "p".&lt;br /&gt;Segue exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot     Início      Fim       Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como visto no exemplo acima, a capacidade do é 40 GB ( 40020664320 bytes ).&lt;br /&gt;Mas nosso disco possui 2 partições criadas: Linux swap/Solaris e Linux.&lt;br /&gt;Fazendo a soma dos blocos das 2 partições 257040 + 10233405 o total é de: 10490445 Kbytes ( 10 GB ).&lt;br /&gt;Agora sabemos que existe 30 GB livre para podermos criar mais partições ( bricar com o "fdisk" ).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.0 - Criando uma nova partição primária:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nós agora iremos criar uma nova partição primária através do comando "n" ( de new ).&lt;br /&gt;É necessário digitar "n" para criar a nova partição, "p" para criar uma partição primária e o informar um número entre 1 á 4 para informar o numero da partição.&lt;br /&gt;Obs.: Lembre-se que podemos ter apenas 4 partições primárias, para o nosso exemplo irei criar a nova partição primárias número 3.&lt;br /&gt;&lt;br /&gt;Segue o exemplo abaixo para criar uma partição primária de aproximadamente 8 GB (8201181 Kbytes):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando - ação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   e   estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   p   partição primária (1-4)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;p&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Número da partição (1-4): 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Primeiro cilindro (1-4865, padrão 1): 3606&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (3606-4865, padrão 4865): +8201181K&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos verificar quais partições estão criadas com o comando "p":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot Início Fim Blocos Id Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.1 - Criando uma nova partição estendida:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora iremos criar uma partição extendida com o resto do disco:&lt;br /&gt;Segue o exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando - ação&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   e   estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;   p   partição primária (1-4)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Partição selecionada 4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Primeiro cilindro (1-4865, padrão 1): 4628&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (4628-4865, padrão 4865): &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Usando valor padrão 4865&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Como visto, não foi necessário informar o último cilindro ou tamanho, pois se você não especificar nada, ele assume que o padrão é o resto do espaço livre do disco.&lt;br /&gt;&lt;br /&gt;Para exibir as partições criadas, utilize o comando "p":&lt;br /&gt;Segue o exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot     Início      Fim       Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4            4628        4865     1911735    5  Estendida&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.2 - Criando partições lógicas apartir da partição estendida:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A partição estendida não "ocupa espaço em disco", mas server somente para pordermos criar as partições lógicas sobre ela. Não é possível criar partições lógicas sem ter uma partição estendida.&lt;br /&gt;&lt;br /&gt;Agora vamos criar uma partição lógica sobre a partição extendida que acabamos de criar.&lt;br /&gt;Primeiro, iremos criar uma partição lógica de 1048576 Kbytes ( 1 GB ).&lt;br /&gt;Depois iremos criar a segunda partição lógica com o resto do espaço livre do disco.&lt;br /&gt;Segue o exemplo abaixo:&lt;br /&gt;&lt;br /&gt;Criando a primeira partição lógica:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Primeiro cilindro (4628-4865, padrão 4628): 4628&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (4628-4865, padrão 4865): +1048576K&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exibindo a partição criada com o comando "p":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot     Início      Fim       Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4            4628        4865     1911735    5  Estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda5            4628        4759     1060258+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Criando a segunda partição lógica com o resto do disco:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): n&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Primeiro cilindro (4760-4865, padrão 4760): 4760&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Último cilindro ou +tamanho ou +tamanho M ou  +tamanho K (4760-4865, padrão 4865): &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Usando valor padrão 4865&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exibindo a partição criada com o comando "p":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot   Início         Fim      Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4            4628        4865     1911735    5  Estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda5            4628        4759     1060258+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda6            4760        4865      851413+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora temos duas partições lógicas criadas sobre a partição estendida.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.3 - Alterando o tipo da partição:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para alterar o tipo da partição utilizamos o comando "t" ( de type ).&lt;br /&gt;Depois escolhemos qual partição queremos alterar, em seguida escolhemos o código e hexadecimal correspondente ao tipo de partição que queremos ter.&lt;br /&gt;Se você não sabe qual é o código hexadecimal relacionado a partição que você quer escolher, utilize opção "L", para exibir os tipos disponíveis.&lt;br /&gt;&lt;br /&gt;No exemplo abaixo iremos alterar o tipo da partição /dev/hda3, de "83 Linux" para "c W95 FAT32 (LBA)".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): t&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Número da partição (1-6): 3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Código hexadecimal (digite L para listar os códigos): L&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 0  Vazia           1e  FAT16 Win95 Esc 80  Minix antigo    be  Inicialização&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 1  FAT12           24  DOS NEC         81  Linux antigo/Mi bf  Solaris        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 2  root XENIX      39  Plan 9          82  Linux swap / So c1  DRDOS/sec (FAT1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 3  usr XENIX       3c  Recuperação d   83  Linux             c4  DRDOS/sec (FAT1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 4  FAT16          &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 5  Estendida       41  Boot PReP PPC   85  Estendida Linux c7  Syrinx         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 6  FAT16           42  SFS             86  Conjunto de vol da  Dados Não-FS  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 7  HPFS ou NTFS    4d  QNX4.x          87  Conjunto de vol db  CP/M / CTOS / .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 8  AIX             4e  QNX4.x 2ª part  88  Linux texto pla de  Utilitário Del&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; 9  AIX inicializá  4f  QNX4.x 3ª part  8e  Linux LVM       df  BootIt         &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; a  Gerenc. Inicial 50  DM OnTrack      93  Amoeba          e1  Acesso DOS     &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; b  W95 FAT32       51  DM6 OnTrack Aux 94  Amoeba BBT      e3  DOS R/O        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; c  W95 FAT32 (LBA) 52  CP/M            9f  BSD/OS          e4  SpeedStor      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; e  W95 FAT16 (LBA) 53  DM6 OnTrack Aux a0  Hibernação IB   eb  sist. arq. BeOS&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt; f  Win95 (LBA) Par 54  DM6 OnTrack     a5  FreeBSD         ee  EFI GPT        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;10  OPUS            55  EZ-Drive        a6  OpenBSD         ef  EFI (FAT-12/16/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;11  FAT12 Escondida 56  Golden Bow      a7  NeXTSTEP        f0  Inicialização&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;12  Diagnóstico Co  5c  Edisk Priam     a8  Darwin UFS      f1  SpeedStor      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;14  FAT16 Escondida 61  SpeedStor       a9  NetBSD          f4  SpeedStor      &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;16  FAT16 Escondida 63  GNU HURD ou Sys ab  Inicialização   f2  DOS secundário&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;17  HPFS ou NTFS Es 64  Novell Netware  b7  sist. arq. BSDI fd  Detecção auto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;18  AST SmartSleep  65  Novell Netware  b8  permuta BSDI    fe  LANstep        &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1b  Partição Esco   70  Multi-Boot Disk bb  Assistente de I ff  BBT            &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;1c  FAT32 Win95 Esc 75  PC/IX          &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Código hexadecimal (digite L para listar os códigos): c&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O tipo da partição 5 foi alterado para c (W95 FAT32 (LBA))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exibindo a partição alterada com o comando "p":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot   Início         Fim      Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215    c  W95 FAT32 (LBA)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4            4628        4865     1911735    5  Estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda5            4628        4759     1060258+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda6            4760        4865      851413+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note acima que a partição /dev/hda3 agora é do tipo: c  W95 FAT32 (LBA)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.4 - Excluindo partições existentes:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para excluir partições utilizamos a opção "d" ( de delete ).&lt;br /&gt;Em seguida escolhemos qual partição excluir.&lt;br /&gt;&lt;br /&gt;Aviso: Muito cuidado ao excluir as partições, pois uma vez excluída, será excluido todos os dados existentes na partição.&lt;br /&gt;Você ainda pode desfazer esta ação, saindo do "fdisk" sem salvar as alterações, utilizando a opção "q" de "quit".&lt;br /&gt;&lt;br /&gt;Para o nosso exemplo, iremos excluir a partição /dev/hda6:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): d&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Número da partição (1-6): 6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Exibindo a partição deletada com o comando "p":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): p&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Disco /dev/hda: 40.0 GB, 40020664320 bytes&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;255 cabeças, 63 setores/trilha, 4865 cilindros&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Unidades = cilindros de 16065 * 512 = 8225280 bytes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Dispositivo Boot   Início         Fim      Blocos   Id  Sistema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda1            2300        2331      257040   82  Linux swap / Solaris&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda2     *      2332        3605    10233405   83  Linux&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda3            3606        4627     8209215    c  W95 FAT32 (LBA)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda4            4628        4865     1911735    5  Estendida&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dev/hda5            4628        4759     1060258+  83  Linux&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Note acima que a partição /dev/hda6, não existe mais, pois foi excluida.&lt;br /&gt;Você agora tem espaço em disco para criar mais uma partição.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.5 - Alterando a flag de partição "bootável":&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A sinalização de "partição bootável" é necessária para dizer qual partição primária será iniciada pela BIOS no processo do "post".&lt;br /&gt;Partições estendidas não podem ser marcadas como "bootável".&lt;br /&gt;Tanto o LILO quanto o GRUB, ou qualquer outro gerenciador de discos necessita estar em uma partição bootável.&lt;br /&gt;Você pode notar que a partição atualmente bootável é a partição /dev/hda2 (Linux), que está sinalizada com * na coluna "Boot".&lt;br /&gt;Na partição /dev/hda2 temos o Linux com o LILO instalado, então não será necessário alterar a partição "bootável".&lt;br /&gt;Mas se a partição /dev/hda3 estivesse marcada como "bootável", e quisemos utilizar o Linux com o LILO como gerenciador de boot, deveriamos alterar a partição "bootável" para /dev/hda2.&lt;br /&gt;&lt;br /&gt;Para alterar a partição bootável utilize o comando: a&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.6 - Saindo do "fdisk" sem salvar as alterações feitas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As vezes é necessário, desfazer as alterações realizadas no "fdisk" estando ainda em modo interativo. Ou mesmo sair do "fdisk" sem salvar as alterações.&lt;br /&gt;Para isso utilize o comando "q" ( de quit ).&lt;br /&gt;Veja o exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): q&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.7 - Saindo do "fdisk" e salvando alterações feitas:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Todas as alterações que nós realizamos até agora com o "fdisk" foram feitas utilizando a memória RAM.&lt;br /&gt;Mas agora devemos gravar essas alterações no disco.&lt;br /&gt;Você deve ter certeza de que tudo está correto, pois essa ação não tem volta. Liste as partições com o comando "p" para certificar que está tudo correto.&lt;br /&gt;&lt;br /&gt;No exemplo abaixo, iremos salvar as alterações na tabela de partição (MBR)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Comando (m para ajuda): w&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A tabela de partições foi alterada!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Chamando ioctl() para reler tabela de partições.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;AVISO: Re-leitura da tabela de partição falhou com erro 16: Device or resource busy.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;O kernel ainda está usando a tabela antiga.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A nova tabela será usada no próximo reboot.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sincronizando discos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;root@roberto-desktop:~# &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Como visto acima, em alguns sistemas onde existem partições em uso, as alterações teram efeito somente após um reboot do micro.&lt;br /&gt;Após reiniciar seu computador, execute o comando: fdisk -l /dev/hda para listar suas partições.&lt;br /&gt;&lt;br /&gt;Fim.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://www-128.ibm.com/developerworks/"&gt;IBM DeveloperWorks - Linux LPI - Tópico 104.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/intermediario/ch-disc.htm"&gt;Guia Foca GNU/Linux - Capítulo 5 - Discos e Partições.&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.die.net/doc/linux/man/man8/fdisk.8.html"&gt;fdisk(8) - Linux man page.&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115732065630889503?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115732065630889503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115732065630889503' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115732065630889503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115732065630889503'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/09/linux-manipulando-parties-de-disco.html' title='Linux - Manipulando partições de disco.'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115686681047231526</id><published>2006-08-29T08:51:00.000-07:00</published><updated>2006-08-29T12:40:58.886-07:00</updated><title type='text'>Linux - Configurando Proxy no APT-GET</title><content type='html'>O "&lt;a href="http://pt.wikipedia.org/wiki/Apt-get"&gt;apt-get&lt;/a&gt;" é uma ferramenta de gerenciamento de pacotes para Sistemas Debian e sistemas baseados no Debian.&lt;br /&gt;&lt;br /&gt;Neste artigo irei demostrar como configurar um servidor Proxy Transparente ou com Autenticação para utilização dessa famosa ferramenta de manipulação de pacotes.&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Configurando "&lt;a href="http://pt.wikipedia.org/wiki/Apt-get"&gt;apt-get&lt;/a&gt;" com Proxy Transparente:&lt;br /&gt;&lt;br /&gt;Primeiro edite o arquivo de variáveis de ambiente com o comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# vi /etc/environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: No exemplo eu utilizei o editor vi, mas pode ser qualquer outro editor de texto simples.&lt;br /&gt;&lt;br /&gt;E inclua o seguinte conteúdo no arquivo "environment":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;http_proxy="http://192.168.1.254:3128"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ftp_proxy="http://192.168.1.254:3128"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Acquire {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;HTTP::Proxy 192.168.1.254:3128;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FTP::Proxy 192.168.1.254:3128;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias wget="wget -Y on"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: No exemplo acima eu configurei o proxy para o protocolo HTTP e FTP.&lt;br /&gt;Você também deve informar o endereço e a porta do seu Servidor Proxy (SQUID), no exemplo foi utilizado o IP: 192.168.1.254 e a Porta: 3128, altere para o IP e Porta do seu servidor de proxy e salve o arquivo.&lt;br /&gt;&lt;br /&gt;Agora vamos editar o arquivo de configuração do APT-GET:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# vi /etc/apt/apt.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E adicione as seguintes linhas:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Acquire{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;HTTP::proxy "http://192.168.1.254:3128";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FTP::proxy "http://192.168.1.254:3128";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Novamente altere as informações de IP e Porta para do seu servidor de proxy e salve o arquivo.&lt;br /&gt;&lt;br /&gt;Agora vamos alterar o arquivo: /etc/profile&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# echo "export http_proxy ftp_proxy" &gt;&gt; /etc/profile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pronto !&lt;br /&gt;&lt;br /&gt;- Configurando "&lt;a href="http://pt.wikipedia.org/wiki/Apt-get"&gt;apt-get&lt;/a&gt;" para Proxy com Autenticação:&lt;br /&gt;&lt;br /&gt;Para "&lt;a href="http://pt.wikipedia.org/wiki/Apt-get"&gt;apt-get&lt;/a&gt;" para Proxy com Autenticação é necessário incluir o usuário e senha, como EXEMPLO irei utilizar o usuario "roberto" e a senha "123mudar".&lt;br /&gt;&lt;br /&gt;Primeiro edite o arquivo de variáveis de ambiente com o comando abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;# vi /etc/environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E inclua o seguinte conteúdo no arquivo "environment":&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;http_proxy="http://roberto:123mudar@192.168.1.254:3128"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ftp_proxy="http://roberto:123mudar@192.168.1.254:3128"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Acquire {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;HTTP::Proxy roberto:123mudar@192.168.1.254:3128;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;FTP::Proxy roberto:123mudar@192.168.1.254:3128;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;alias wget="wget --proxy-user=roberto --proxy-passwd=senha"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Não esqueça de alterar o IP: 192.168.1.254, Porta: 3128, Usuario: roberto e Senha: 123mudar para as informações corretas do seu servidor de proxy e o salve o arquivo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://vivaolinux.com.br/dicas/verDica.php?codigo=2253"&gt;Viva o Linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;a href="http://www.google.com"&gt;&lt;br /&gt;Google&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pt.wikipedia.org/wiki/Apt-get"&gt;Apt-get&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115686681047231526?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115686681047231526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115686681047231526' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115686681047231526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115686681047231526'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/linux-configurando-proxy-no-apt-get.html' title='Linux - Configurando Proxy no APT-GET'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115658643471734477</id><published>2006-08-26T02:59:00.000-07:00</published><updated>2006-08-26T17:43:13.113-07:00</updated><title type='text'>Linux - Verificando e marcando BadBlocks</title><content type='html'>&lt;span style="font-style: italic;"&gt;&lt;/span&gt;Neste artigo mostrarei como identificar e "esconder" os BadBlocks do seu HD.&lt;br /&gt;É assumido que essa técnica não irá deixar seu disco em perfeito estado de uso, mas irá apenas amenizar o problema dos badblocks.&lt;br /&gt;Para um servidor em produção, realize a troca do HD danificado por um HD novo.&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Você pode identificar BadBlocks no seu HD através de algumas caracteríscas/ferramentas:&lt;br /&gt;&lt;br /&gt;1 - Se você notar que está aparecendo diversas mensagens no syslog, indicando falha de leitura ou escrita.&lt;br /&gt;2 - Se você notar que o led de atividade do seu disco, fica ligado constantemente e o desempenho do sistema começar a cair consideravelmente quando acessa o disco.&lt;br /&gt;3 - Quando o seu sistema iniciar os sistemas de arquivos em modo somente leitura.&lt;br /&gt;4 - Utilizando algum software para identificar BadBlocs.&lt;br /&gt;&lt;br /&gt;Obs.: Os problemas com BadBlocks em HD's são de ordem física e não podem ser corrigidos com software ( Podemos somente "esconder" o problema ).&lt;br /&gt;&lt;br /&gt;Podemos amenizar os problemas com BadBlocks dizendo para o disco não ler ou gravar nos blocos defeituosos. Ou seja, iremos fazer uma varredura no disco procurando por blocos danificados e os blocos danificados serão "marcados" como defeituosos.&lt;br /&gt;&lt;br /&gt;No Linux utilizamos a ferramenta: badblocks&lt;br /&gt;&lt;br /&gt;A ferramenta badblocks procura blocos danificados no dispositivo especificado como parâmetro.&lt;br /&gt;&lt;br /&gt;Vamos a prática:&lt;br /&gt;&lt;br /&gt;Para fazer uma checagem de BadBlocks em sistemas de arquivos ext2 ou ext3, siga os passos abaixo:&lt;br /&gt;&lt;br /&gt;1 - Para sua segurança, realize um backup de todos os dados que você julgar importante.&lt;br /&gt;&lt;br /&gt;2 - Inicie seu computador com outra mídia bootável. Algumas opções: kurumin live cd, ubuntu live cd.&lt;br /&gt;É importante não "bootar" o sistema apartir do HD defeituoso, pois o sistema pode perder a comunicação com o disco rígido e seu sistema ficar paralisado.&lt;br /&gt;&lt;br /&gt;3 - Executando o comando badblocks:&lt;br /&gt;&lt;br /&gt;Sintaxe: badblocks [opções] dispositivo contagem-bloco&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;badblocks -o badblocs_encontrados.dat -n -v /dev/hda4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Checking for bad blocks in non-destructive read-write mode&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;From block 0 to 8201182&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Testing with random pattern:&lt;br /&gt;Pass completed, 0 bad blocks found.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Descrevendo o comando acima:&lt;br /&gt;&lt;br /&gt;- A opção -o: Especifica o nome do arquivo que será uma "lista" com os badblocks encontrados.&lt;br /&gt;- A opção -n: Realiza um teste não-destrutivo, gravando em cada bloco e depois lendo-o, enquanto preserva os dados. Isso deve demorar um pouco.&lt;br /&gt;- A opção -v: Ativa modo verbose.&lt;br /&gt;- O dispositivo: Especifica o dispositivo que você quer verificar. /dev/hd??&lt;br /&gt;&lt;br /&gt;Aviso: Nunca utilize a opção -w em um dispositivo contendo dados importantes.&lt;br /&gt;Esta opção irá apagar (deletar) os dados.&lt;br /&gt;Para checagem não-destrutiva, utilize a opção -n. Essa opção demora um pouco mais.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://focalinux.cipsga.org.br/guia/inic_interm/ch-manut.htm#s-manut-recpart"&gt;Guia Foca Linux&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://linuxreviews.org/man/badblocks/index.html.en"&gt;Página manual do comando badblocks&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115658643471734477?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115658643471734477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115658643471734477' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115658643471734477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115658643471734477'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/linux-verificando-e-marcando-badblocks.html' title='Linux - Verificando e marcando BadBlocks'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115657315114685655</id><published>2006-08-25T22:14:00.000-07:00</published><updated>2006-08-26T14:43:57.793-07:00</updated><title type='text'>Linux - Brincando com o comando ifconfig</title><content type='html'>O comando ifconfig é utilizado para atribuir um endereço a uma interface de rede ou configurar parâmetros de inteface de rede.&lt;br /&gt;&lt;br /&gt;Aqui irei descrever somente algumas "curiosidades/brincadeiras" para quem ainda não sabe.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-style: italic;" class="fullpost"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;br /&gt;&lt;br /&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;br /&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;br /&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;br /&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;br /&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1 - Alterando o Mac Address:&lt;br /&gt;&lt;br /&gt;O Mac Address da placa de rede, teoricamente não pode ser alterado fisicamente, mas pode ser alterado virtualmente.&lt;br /&gt;Nos sistemas like-unix/Linux é utilizado o comando ifconfig, segue um exemplo:&lt;br /&gt;&lt;br /&gt;É necessário estar com a placa de rede desativada:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 down&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora altere o Mac Address:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 hw ether 00:D0:D0:67:2C:05&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora ative a placa de rede e configure o endereço IP/Mask:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.:  Altere o endereço de Mac Address,  IP e  NetMask para o seu.&lt;br /&gt;&lt;br /&gt;2 - Adicione um segundo endereço IP (apilido/alias):&lt;br /&gt;&lt;br /&gt;Essa opção é muito utilizada para você ter mais de um endereço IP na mesma interface de rede. O detalhe está na hora de especificar a interface, você pode ir colocando uma "interface:numero" para cada novo endereço.&lt;br /&gt;&lt;br /&gt;Segue abaixo o exemplo:&lt;br /&gt;&lt;br /&gt;Adicionando o primeiro endereço:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adicionando o segundo endereço:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0:1 10.0.0.5 netmask 255.255.255.0 up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Adicionando o terceiro endereço:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0:2 172.16.12.78 netmask 255.255.255.0 up&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora digite o comando ifconfig para exibir o resultado:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Você verá os alias/apilidos da interface eth0 e os seus endereços IP's.&lt;br /&gt;&lt;br /&gt;3 - Ativar/Desativar modo promíscuo:&lt;br /&gt;&lt;br /&gt;O modo promíscuo permite que a interface de rede receba todos os pacotes que passam por ela, mesmo os que não são destinados a ela.&lt;br /&gt;Técnica muito utilizada para monitorar o tráfego da rede ( sniffing ), tanto para o "bem" quanto para o "mal".&lt;br /&gt;&lt;br /&gt;Para ativar o modo promíscuo:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 promisc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para desativar o modo promíscuo:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 -promisc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para verificar se alguma interface está em modo promíscuo:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig | grep -i PROMISC&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A saída do comando acima deve ser equivalente há:   &lt;span style="font-style: italic;"&gt;UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dica de Seguraça: Se você notar que sua rede está sendo monitorada indevidamente ou que sua rede ficou muito lenta recentemente. Utilize o comando acima em seu gateway ou qualquer outro host suspeito, para verificar se a placa de rede está operando em modo promíscuo.&lt;br /&gt;Você pode estar sofrendo um ataque de algum sniffer em algum host da sua rede.&lt;br /&gt;&lt;br /&gt;4 - Alterando o tipo de Mídia:&lt;br /&gt;&lt;br /&gt;Alguns exemplos para configurar o tipo de mídia que sua interface está utilizando. Alguns tipos: auto, 10base2, 10baseT, 100baseT, 1000baseT entre outros tipos...&lt;br /&gt;&lt;br /&gt;Alterando o tipo da mídia:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; ifconfig eth0 media 10baseT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: Sua interface deve suportar o tipo de mídia que você quer configurar. Algumas interfaces de rede não suportam essa mudança e irá aparecer a seguinte mensagem de erro: &lt;span style="font-style: italic;"&gt;port: SIOCSIFMAP: Operation not supported&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Fim.&lt;br /&gt;&lt;br /&gt;Referência: Este artigo foi escrito com referência ao manual do comando ifconfig.&lt;br /&gt;&lt;br /&gt;Recursos: &lt;a href="http://snafu.freedom.org/linux2.2/docs/ifconfig.man.txt"&gt;Manual do ifconfig&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115657315114685655?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115657315114685655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115657315114685655' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115657315114685655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115657315114685655'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/linux-brincando-com-o-comando-ifconfig.html' title='Linux - Brincando com o comando ifconfig'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115645116413770076</id><published>2006-08-24T13:24:00.000-07:00</published><updated>2006-08-26T17:18:32.986-07:00</updated><title type='text'>Python - Brincando com arquivos</title><content type='html'>Manipulação de arquivos em Python:&lt;br /&gt;&lt;br /&gt;Para manipular arquivos em Python, utilizamos a função open.&lt;br /&gt;A função open é muito utilizada, e por isso resolvi documentar neste artigo.&lt;br /&gt;&lt;br /&gt;Irei descrever de maneira simples e objetiva, como utilizar essa excelente função do Python.&lt;br /&gt;&lt;span class="fullpost"&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;br /&gt;&lt;br /&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;br /&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;br /&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;br /&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;br /&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para trabalhar com arquivos em Python, é necessário primeiro "abrir" o arquivo, "ler" ou "escrever" nele e finalmente "fecha-lô". A ordem descrita anteriormente deve ser seguida.&lt;br /&gt;&lt;br /&gt;Abaixo irei demostrar esses 4 passos:&lt;br /&gt;&lt;br /&gt;- Visão geral:&lt;br /&gt;&lt;br /&gt;A função open permite criar novos arquivos, abrir arquivos existentes, como leitura ou escrita.&lt;br /&gt;E possui a seguinte sintexe:&lt;br /&gt;&lt;br /&gt;variavel = open("file", "modo")&lt;br /&gt;&lt;br /&gt;Onde:&lt;br /&gt;variavel = Nome da variável que você que vai receber o conteúdo da função open ( receber o arquivo propriamente dito ).&lt;br /&gt;file = Nome do arquivo que você quer ler ou escrever.&lt;br /&gt;modo = Indica o que você quer fazer com o arquivo, seja ler "r" (read) ou escrever "w" (write).&lt;br /&gt;&lt;br /&gt;Exemplo na prática:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;var_file = open("arquivo.txt","w")&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;print var_file                      &lt;/span&gt;&lt;open file="" txt="" mode="" w="" at="" 0x81614a0=""&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;type(var_file)&lt;/span&gt;&lt;br /&gt;&lt;type file=""&gt;&lt;br /&gt;O que eu fiz ?&lt;br /&gt;&lt;br /&gt;1 - Criei o arquivo.txt como modo escrita.&lt;br /&gt;2 - Pedi para exibir o endereço que o arquivo se encontra em memória RAM. ( Opcional )&lt;br /&gt;3 - Verifiquei o tipo da variável "var_file" com a função type().   ( Opcional )&lt;br /&gt;&lt;br /&gt;Obs.: Se o arquivo "arquivo.txt" já existisse, ele seria aberto como modo escrita. Como em nosso exemplo ele não existia, então ele foi criado como um novo arquivo.&lt;br /&gt;&lt;br /&gt;Como Python é uma linguagem orientada a objetos, agora a variável "var_file" é um objeto, e podemos acessar os metodos desse objeto que são os seguintes:&lt;br /&gt;&lt;br /&gt;* read(): Retorna uma string única com todo o conteúdo do arquivo.&lt;br /&gt;* readline(): Retorna a próxima linha do arquivo, e incrementa a posição atual.&lt;br /&gt;* readlines(): Retorna todo o conteúdo do arquivo em uma lista, uma linha do arquivo por elemento da lista.&lt;br /&gt;* write(data): Escreve a string data para o arquivo, na posição atual ou ao final do arquivo, dependendo do modo de abertura. Esta função falha se o arquivo foi aberto com modo "r".&lt;br /&gt;* seek(n): Muda a posição atual do arquivo para o valor indicado em n.&lt;br /&gt;* close(): Fecha o arquivo. Sempre utilizado no final da manipulação do arquivo.&lt;br /&gt;&lt;br /&gt;- Escrevendo em um arquivo:&lt;br /&gt;&lt;br /&gt;Abaixo está um exemplo de como escrever uma frase em um arquivo utilizando metodo write():&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;var_file.write("Este texto sera' inserido no novo arquivo que acabamos de criar. Atraves do metodo write do objeto var_file que acabamos de criar\n")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Obs.: O "\n" no final serve para inserir quebra de linha no final do texto, como em outras linguagens.&lt;br /&gt;&lt;br /&gt;Após ter escrito no arquivo, através do metodo write(), é necessário fechar o arquivo como o metodo close(), veja um exemplo abaixo:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;var_file.close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Após isso saia do interpletador do Python, precionando Ctrl+d e visualize o arquivo "arquivo.txt"&lt;br /&gt;como no exemplo abaixo:&lt;br /&gt;&lt;br /&gt;roberto@roberto-desktop:~$ &lt;span style="font-weight: bold;"&gt;cat arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Este texto sera' inserido no novo arquivo que acabamos de criar. Atraves do metodo write do objeto var_file que acabamos de criar&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O conteúdo do arquivo poderia ser uma string de uma variável ou qualquer outra coisa.&lt;br /&gt;Exemplo:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;texto = "Este texto da string será inserido no arquivo arquivo.txt atraves do metodo write, da funcao open\n."&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;var_file = open("arquivo.txt","w")&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;conteudo_texto = var_file.write(texto)&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;var_file.close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos visualizar o arquivo:&lt;br /&gt;&lt;br /&gt;roberto@roberto-desktop:~$ &lt;span style="font-weight: bold;"&gt;cat arquivo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Este texto da string será inserido no arquivo arquivo.txt atraves do metodo write, da funcao open.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Lendo um arquivo:&lt;br /&gt;&lt;br /&gt;Agora que aprendemos como criar e gravar em arquivos vamos ler um arquivo:&lt;br /&gt;&lt;br /&gt;O metodo para ler arquivos é read(), como visto acima.&lt;br /&gt;Então vamos ao exemplo na prática:&lt;br /&gt;&lt;br /&gt;O arquivo: info.txt será lido pelo motodo read().&lt;br /&gt;Vamos primeiro ver o conteúdo do arquivo, no shell mesmo:&lt;br /&gt;&lt;br /&gt;roberto@roberto-desktop:~$ &lt;span style="font-weight: bold;"&gt;cat info.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Este é um texto de exemplo... Poderia ser qualquer arquivo texto.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ele será lido pelo Python através do método read() da funcao open.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Python é uma linguagem muito organizada, vc aprende brincando... ehhehe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: O arquivo info.txt é um exemplo, mas você pode utilizar qualquer arquivo texto.&lt;br /&gt;&lt;br /&gt;No interpletador do Python digite os seguintes comando para o nosso exemplo:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;f_texto = open("info.txt", "r")&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;print f_texto&lt;/span&gt;&lt;open file="" txt="" mode="" r="" at="" 0xb7d5c338=""&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;type(f_texto)&lt;/span&gt;&lt;br /&gt;&lt;type file=""&gt;&lt;br /&gt;&lt;br /&gt;O que eu fiz ?&lt;br /&gt;&lt;br /&gt;1 - Abri o info.txt como modo leitura.&lt;br /&gt;2 - Pedi para exibir o endereço que o arquivo se encontra em memória RAM. ( Opcional )&lt;br /&gt;3 - Verifiquei o tipo da variável "info.txt" com a função type().   ( Opcional )&lt;br /&gt;&lt;br /&gt;Exibindo o conteúdo do info.txt no python.&lt;br /&gt;No interpletador do Python digite os seguintes comando para o nosso exemplo:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;conteudo_texto = f_texto.read()&lt;/span&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;print conteudo_texto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Este é um texto de exemplo... Poderia ser qualquer arquivo texto.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ele será lido pelo Python através do método read() da funcao open.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Python é uma linguagem muito organizada, vc aprende brincando... ehhehe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Olá só ! Agora o conteúdo do arquivo "info.txt" é uma variável, e você pode manipular da forma que você quiser ! Por isso que eu gosto da linguagem Python.&lt;br /&gt;&lt;br /&gt;Não esqueça que após "brincar" com o arquivo é necessário fechar o arquivo, então digite o comando:&lt;br /&gt;&lt;br /&gt;&gt;&gt;&gt; &lt;span style="font-weight: bold;"&gt;f_texto.close()&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Pronto !&lt;br /&gt;&lt;br /&gt;Dica.: Você pode utilizar todos os metodos descritos acima, mas nesses dois exemplos, demostrei como utilizar o metodo write() e read(), pesquise sobre os outros metodos disponíveis e tente utilizá-los.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;a href="http://www.async.com.br/projects/python/pnp/node37.html"&gt;Python na prática&lt;/a&gt;&lt;br /&gt;&lt;a href="http://pensarpython.incubadora.fapesp.br/portal/livro/capitulo11"&gt;Como pensar em Python&lt;/a&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://www.python.org"&gt;Site oficial do Python&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.pythonbrasil.com.br"&gt;Comunidade Brasileira&lt;/a&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/type&gt;&lt;/open&gt;&lt;/type&gt;&lt;/open&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115645116413770076?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115645116413770076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115645116413770076' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645116413770076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645116413770076'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/python-brincando-com-arqui_115645116413770076.html' title='Python - Brincando com arquivos'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115645108906080992</id><published>2006-08-24T13:20:00.000-07:00</published><updated>2006-08-26T17:35:11.990-07:00</updated><title type='text'>FreeBSD - Implementando NFS</title><content type='html'>O Network File System, também conhecido como NFS permite que um sistema compartilhe seus diretórios e arquivos com outros sistemas através da rede.&lt;br /&gt;Usando NFS, os usuários e programas podem acessar arquivos em sistemas remotos como se fossem arquivos locais.&lt;br /&gt;&lt;br /&gt;Neste artigo irei descrever como configurar o Servidor e Cliente NFS. &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;br /&gt;&lt;br /&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;br /&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;br /&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;br /&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;br /&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Como funciona ?&lt;br /&gt;&lt;br /&gt;O NFS é uma aplicação cliente-servidor. Os clientes acessão os dados armazenados no host remoto atuando como aplicação servidora.&lt;br /&gt;Para isso o NFS utiliza os seguintes daemons:&lt;br /&gt;&lt;br /&gt;nfsd - O daemon NFS, que atende requisições dos clientes NFS.&lt;br /&gt;mountd - O daemon de montagem NFS, que executa as solicitações que o nfsd lhe envia.&lt;br /&gt;portmap - O daemon portmapper permite que clientes NFS descubram qual porta o servidor NFS está utilizando.&lt;br /&gt;&lt;br /&gt;Irei ilustrar como implementar o NFS no Sistema Operacional FreeBSD em sua versão 6.1-RELEASE.&lt;br /&gt;&lt;br /&gt;- Instalação:&lt;br /&gt;&lt;br /&gt;Como o NFS é o protocolo padrão para transfêrencia de arquivo em sistemas Unix e linke-unix, ele já está presente no Sistema FreeBSD, não sendo necessário instalar.&lt;br /&gt;&lt;br /&gt;- Configurando o Servidor NFS:&lt;br /&gt;&lt;br /&gt;Antes de mais nada, iremos configurar o arquivo inicialização de daemons do FreeBSD:&lt;br /&gt;&lt;br /&gt;No servidor NFS, inclua as seguintes opções no arquivo /etc/rc.conf:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;portmap_enable="YES"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;nfs_server_enable="YES"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mountd_flags="-r"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obs.: O mountd é automaticamente executado quando o servidor NFS é ativado.&lt;br /&gt;&lt;br /&gt;Agora ireimos editar o arquivo de configuração do NFS propriamente dito no host atuando como Servidor:&lt;br /&gt;&lt;br /&gt;O arquivo de configuração do NFS é claro e objetivo, ele encontra-se em /etc/exports.&lt;br /&gt;&lt;br /&gt;No arquivo /etc/exports você pode especificar quais sistemas de arquivos o NFS deve exportar (às vezes chamados de "compartilhamentos"). Cada linha no /etc/exports determina um sistema de arquivo a ser exportado e quais máquinas têm acesso aquele sistema de arquivo. Também pode-se passar algumas opções de acesso ao "compartilhamento", para mais informações digite: man exports&lt;br /&gt;&lt;br /&gt;Veja abaixo um exemplo de configuração /etc/exports:&lt;br /&gt;&lt;br /&gt;------------------Arquivo de configuracao - NFS-------------------------&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Exporta o diretorio: /dados para 3 maquinas: huey, louie e dewie.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Exporta o diretorio: /home e todos os subdiretorios para maquinas chamadas janice jimmy frank.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Exporta o diretorio: /usr/secreto pode ser escrito como "root" por qualquer host da rede 10.0.1.0/24.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Exporta o diretorio: /cdrom para somente leitura para os hosts: 10.0.1.1 10.0.1.2 10.0.1.3.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/dados                 huey louie dewie&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/home   -alldirs       janice jimmy frank&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/usr/secreto      -maproot=0  -network 10.0.1.0 -mask 255.255.248.0&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;/cdrom -ro 10.0.1.1 10.0.1.2 10.0.1.3&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;-----------------Fim das configuracoes - NFS----------------------------&lt;br /&gt;&lt;br /&gt;- Configuração no host Cliente NFS:&lt;br /&gt;&lt;br /&gt;No cliente, inclua esta opção no arquivo /etc/rc.conf:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;nfs_client_enable="YES"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;- Vamos agora montar o compartinhamento NFS:&lt;br /&gt;&lt;br /&gt;O processo de montagem de compartinhamento NFS é simples, como montar qualquer outro FS.&lt;br /&gt;&lt;br /&gt;A sintaxe é: # mount_nfs server_nfs:/compartinhamento /ponto_de_montagem&lt;br /&gt;Para mais informações consulte o manual: man mount_nfs&lt;br /&gt;&lt;br /&gt;Exemplo na prática:&lt;br /&gt;&lt;br /&gt;Vá ao host cliente nfs e no terminal de comando do FreeBSD, digite o seguinte comando abaixo:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;mount_nfs 10.0.1.254:/usr/secreto /mnt/secreto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se você quer montar automaticamente um sistema de arquivo remoto cada vez que o computador iniciar, adicione o sistema de arquivos no arquivo /etc/fstab. Segue abaixo o exemplo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;10.0.1.254:/usr/secreto   /mnt/secreto    nfs rw  0   0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fim.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;Este artigo foi escrito com refêrencia ao &lt;a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook"&gt;FreeBSD HandBook&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;a href="http://www.ietf.org/rfc/rfc1813.txt"&gt;RFC para o protocolo NFS&lt;/a&gt;&lt;br /&gt;&lt;a href="http://de.wikipedia.org/wiki/Network_File_System"&gt;NFS na wikipedia&lt;/a&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115645108906080992?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115645108906080992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115645108906080992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645108906080992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645108906080992'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/freebsd-implementando-nfs.html' title='FreeBSD - Implementando NFS'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115645082595525004</id><published>2006-08-24T13:15:00.000-07:00</published><updated>2006-08-26T01:39:47.063-07:00</updated><title type='text'>FreeBSD - Instalando ProftpD</title><content type='html'>O ProftpD é um software que provê o serviço de FTP ( File Transfer Protocol ) para Unix e sistemas like-unix em geral.&lt;br /&gt;Ele é muito utilizado e tem uma boa documentação na internet.&lt;br /&gt;Sua configuração é simples e parecida com as configurações do Apache, ou seja, quem já configurou o Apache não vai sentir dificuldades em configurar o ProftpD.&lt;br /&gt;&lt;br /&gt;Irei descrever como implementar o ProftpD em sua versão 1.3, no Sistema Operacional FreeBSD versão 6.1-RELEASE. &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Obs.: Neste e em outros artigos que eu escrevi a formatação do texto possui os seguintes significados:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Negrito assume que se trata de um comando que deve ser digitado.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O texto em Itálico significa que é a saída de um comando ou conteúdo de um arquivo.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "&gt;&gt;&gt;" significa que você deve digitar no interpretador do Python.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "#" significa que o comando dever ser executado como usuário "root".&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;- O "$" significa que o comando deve ser executado como usuário sem privilégios.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1 - Instalando:&lt;br /&gt;&lt;br /&gt;No terminal de comandos do FreeBSD, instale o proftpd como o comando abaixo:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;cd /usr/ports/ftp/proftpd &amp;&amp;amp; make install clean&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Logo após isso será exibida uma tela informando algumas opções. Para nosso exemplo selecione as opções abaixo:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[X] IFSESSION   Include mod_ifsession &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[X] README      Include mod_readme    &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[X] RATIO       Include mod_ratio       &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[X] REWRITE     Include mod_rewrite             &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;[X] WRAP        Include mod_wrap&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se tudo ocorrer bem o proftpd será instalado.&lt;br /&gt;&lt;br /&gt;Agora habilite no "rc.conf", para iniciar no boot.&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;echo "proftpd_enable="YES"" &gt;&gt; /etc/rc.conf&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;2 - Configuração do ProftpD:&lt;br /&gt;&lt;br /&gt;O ProftpD possui apenas um arquivo de configuração, que fica em /usr/local/etc/proftpd.conf.&lt;br /&gt;Abaixo segue um arquivo de exemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;------------------- Arquivo proftpd.conf --------------------&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Arquivo de configuracao - ProftpD&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Autor: Roberto Rodrigues da Silva&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# E-mail/MSN: robertors@bs2.com.br&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Data de criacao: 19/08/2006&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Arquivo que exibira' a mensagem de boas vindas no momento da conexao.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DisplayConnect /usr/local/etc/proftpd.banner  # Edite este arquivo para sua mensagem personalizada&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao exibe informacoes sobre que tipo de servidor esta' rodando, boa pratica de seguranca.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ServerIdent off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Modo no qual o servidor ira' rodar (standalone ou inetd), standalone tem melhor desempelho.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ServerType standalone&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Como nao temos VirtualHosts, este servidor (principal) sera' o padrao.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DefaultServer on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Porta para o socket de controle.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Port 21&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Umask padrao para arquivos uploaded&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Umask 022&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Maximo de processos filho (cada conexao utiliza um processo)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MaxInstances 30&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Maximo de usuarios autenticados (incluindo anonimos) e mensagem&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MaxClients 20 "Desculpe, mas o numero maximo de clientes foi atingido. Tente mais tarde."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Maximo de usuarios autenticados (incluindo anonimos) por IP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MaxClientsPerHost 4 "Desculpe, mas o maximo de 4 conexoes por cliente foi atingido. Tente mais tarde."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Usuario sob o qual o servidor ira rodar, criado automaticamente na instalacao.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;User ftp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Grupo sob o qual o servidor ira rodar, criado automaticamente na instalacao.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Group ftp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Os usuarios nao poderao sair de seu diretorio home (chrooted).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DefaultRoot ~&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao permite o login do usuario root, você pode habilitar essa opção, mas nao e' uma boa pratica de seguranca.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;RootLogin off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao requer que os usuarios tenham um shell valido (definido em /etc/shells).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;RequireValidShell off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao bloqueia usuarios baseando-se no arquivo /etc/ftpusers.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;UseFtpUsers off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Tempo maximo em segundos para login.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TimeoutLogin 120&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Tempo maximo em segundos conectado mas sem qualquer comando ou troca de dados.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TimeoutIdle 600&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Tempo maximo em segundos sem transferencia de dados (arquivos, listagens de diretorios).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TimeoutNoTransfer 900&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Tempo maximo em segundos com uma transferencia parada, travada.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TimeoutStalled 900&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Numero maximo de tentativas de login.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;MaxLoginAttempts 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao tenta descobrir o hostname do cliente.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;UseReverseDNS off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Nao tenta efetuar consulta do username remoto (ident - RFC1413).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;IdentLookups off&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Arquivo de log geral.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;SystemLog /var/log/proftpd/system.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Arquivo de log das transferencias.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;TransferLog /var/log/proftpd/transfer.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Especifica o modo de transferencia padrao (ascii ou binary).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;DefaultTransferMode binary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Permite que arquivos sejam sobrescritos (caso seja feito upload de um arquivo ja existente).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;AllowOverwrite on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;# Abre o contexto de usuarios anonimos, especificando a raiz do FTP anonimo.&lt;/span&gt;&lt;br /&gt;&lt;anonymous style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;# Usuario sob o qual cada instancia de FTP anonimo deve rodar&lt;br /&gt;User ftp&lt;br /&gt;&lt;br /&gt;# Grupo sob o qual cada instancia de FTP anonimo deve rodar&lt;br /&gt;Group ftp&lt;br /&gt;&lt;br /&gt;# Define o login anonymous como sinonimo (alias) do login ftp&lt;br /&gt;UserAlias anonymous ftp&lt;br /&gt;&lt;br /&gt;# Numero maximo de usuarios anonimos&lt;br /&gt;MaxClients 10&lt;br /&gt;&lt;br /&gt;# Limita qualquer gravacao neste contexto (por exemplo upload de arquivo)&lt;br /&gt;&lt;limit&gt;&lt;br /&gt;DenyAll&lt;br /&gt;&lt;/limit&gt;&lt;br /&gt;&lt;br /&gt;# Fecha o contexto de usuarios anonimos&lt;br /&gt;&lt;/anonymous&gt;&lt;br /&gt;------------------- Fim do arquivo proftpd.conf --------------------&lt;br /&gt;&lt;br /&gt;Agora vamos criar os arquivos do banner "/usr/local/etc/proftpd.banner" com a mensagem de boas vindas:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;echo "Bem Vindo ao FTP do Roberto ! Este local é restrito, e suas atividades estão sendo monitoradas. Se você não concorda com isso, desconecte-se imediatamente !" &gt; /usr/local/etc/proftpd.banner&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E o arquivo de log VAZIO do sistema:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;touch /var/log/proftpd/system.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E por útimo o arquivo de log VAZIO das transferências do FTP:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;touch /var/log/proftpd/transfer.log&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3 - Iniciando e parando o serviço de FTP:&lt;br /&gt;&lt;br /&gt;O comando para inicializar deverá ser:&lt;br /&gt;&lt;br /&gt;#&lt;span style="font-weight: bold;"&gt; /usr/local/etc/rc.d/proftpd.sh start&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;O comando para finalizar deverá ser:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;/usr/local/etc/rc.d/proftpd.sh stop&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Dica: Verifique se o serviço esta rodando com os comandos:&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;ps -aux | grep -i ftp&lt;/span&gt;   ( será exibido os serviços do proftpd rodando )&lt;br /&gt;Exemplo:   &lt;span style="font-style: italic;"&gt;574  ??  Ss     0:00.21 proftpd: (accepting connections) (proftpd)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold;"&gt;sockstat -4l | grep -i ftp&lt;/span&gt;     ( será exibido o proftpd ouvindo na porta 21 )&lt;br /&gt;Exemplo:  &lt;span style="font-style: italic;"&gt;ftp      proftpd    574   0  tcp4   *:21                  *:*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4 - Comandos úteis:&lt;br /&gt;&lt;br /&gt;ftpcount -&gt; mostra o número atual de conexões ao servidor FTP&lt;br /&gt;ftpwho -&gt; mostra quais usuários estão conectados atualmente&lt;br /&gt;ftptop -&gt; mostra informações sobre as conexões num estilo parecido ao do comando top&lt;br /&gt;ftpshut -&gt; tira o servidor FTP do ar, sem encerrar seu processo. Para retornar, deve-se executar "ftpshut -R"&lt;br /&gt;&lt;br /&gt;FIM.&lt;br /&gt;&lt;br /&gt;Referência:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Este artigo foi escrito com referencia ao http://www2.unijui.tche.br/~heini/freebsd/proftpd.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Recursos:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Site oficial do Proftpd - http://www.proftpd.org/&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Protocolo FTP na Wikipedia - http://pt.wikipedia.org/wiki/FTP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;RFC sobre o protocolo FTP - http://www.ietf.org/rfc/rfc959.txt&lt;/span&gt;&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115645082595525004?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115645082595525004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115645082595525004' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645082595525004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645082595525004'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/freebsd-instalando-proftpd.html' title='FreeBSD - Instalando ProftpD'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115645051156847709</id><published>2006-08-24T13:13:00.000-07:00</published><updated>2006-08-25T21:01:00.043-07:00</updated><title type='text'>Conhecendo a linguagem Python</title><content type='html'>Alguns meses atrás eu resolvi mergulhar na linguagem de programação Python.&lt;br /&gt;&lt;br /&gt;Python é uma linguagem de programação criada pelo matemático Guido Van Rossum em 1990.&lt;br /&gt;Ela era uma linguagem de scripts para o sistema operacional Amoeba.&lt;br /&gt;&lt;br /&gt;Mas hoje é uma linguagem usada em diversas áreas, como servidores de aplicação e computação gráfica entre outras coisas.&lt;br /&gt;Inclusive é utilizada pela NASA e pelo Google, entre outras.&lt;br /&gt;Ou seja, Python é uma linguagem séria e facil de aprender, você aprende brincando. &lt;span class="fullpost"&gt;&lt;br /&gt;&lt;br /&gt;Python é uma linguagem interpletada (não é necessário compilar ), interativa e fortemente orientada a objetos.&lt;br /&gt;&lt;br /&gt;A linguagem foi pensada e estruturada para o ensino de programação, por isso, teria que conter uma compreensão simples da estrutura para o fácil aprendizado, e na verdade é muito fácil de aprender Python.&lt;br /&gt;&lt;br /&gt;Se você quiser conhecer mais sobre essa fantástica linguagem de programação, visite os links abaixo:&lt;br /&gt;&lt;br /&gt;Site oficial: www.python.org ( inglês )&lt;br /&gt;Comunidade Brasileira: www.pythonbrasil.com.br&lt;br /&gt;Aprendendo na prática: http://www.async.com.br/projects/python/pnp/ ( muito bom )&lt;br /&gt;Outra documentação: http://diveintopython.org/&lt;br /&gt;Python na Wikipédia: http://pt.wikipedia.org/wiki/Python&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115645051156847709?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115645051156847709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115645051156847709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645051156847709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115645051156847709'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/conhecendo-linguagem-python_24.html' title='Conhecendo a linguagem Python'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-33287478.post-115643793537262498</id><published>2006-08-24T09:44:00.000-07:00</published><updated>2006-08-24T09:45:35.383-07:00</updated><title type='text'>Este é o meu blog !</title><content type='html'>Bem vindo !  Este é o meu blog.&lt;br /&gt;&lt;br /&gt;Resolvi criar um blog para poder colocar o que penso.&lt;br /&gt;&lt;br /&gt;Aqui irei postar informações relacionadas a Administração de Redes, FreeBSD, Linux e Unix e geral.&lt;br /&gt;&lt;br /&gt;Enfim tudo que se encaixar !&lt;div class="blogger-post-footer"&gt;N?o acrescente dias à sua vida, mas vida aos seus dias.
Benjamin Harrison&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/33287478-115643793537262498?l=robertors.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://robertors.blogspot.com/feeds/115643793537262498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=33287478&amp;postID=115643793537262498' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115643793537262498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/33287478/posts/default/115643793537262498'/><link rel='alternate' type='text/html' href='http://robertors.blogspot.com/2006/08/este-o-meu-blog.html' title='Este é o meu blog !'/><author><name>Roberto</name><uri>http://www.blogger.com/profile/11832543089260655369</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://photos1.blogger.com/blogger/862/3613/320/29479875.jpg'/></author><thr:total>0</thr:total></entry></feed>
