Pesquisa Google

Mostrar mensagens com a etiqueta su. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta su. Mostrar todas as mensagens

domingo, 14 de outubro de 2007

Sistema de Ficheiros em Linux


Quando o utilizador iniciante em Linux se aventura na descoberta do sistema de ficheiros deve, no mínimo, assustar-se.

Os nomes e a organização dos ficheiros e pastas parecem complexos sem uma orientação...

Vamos, neste artigo, apresentar cada um dos directórios que compõem o sistema de ficheiros em Linux.

Embora a perspectiva seja de “utilizador”, em algumas situações será necessário assumir a identidade de root (super-utilizador) para ter permissão de visualização. Note-se que refiro visualização, não em “mexer” no que não sabe ou desconhece!

Para esta “visita” poderão ser utilizados os aplicativos de exploração de ficheiros Nautilus ou Konqueror, nos casos de utilizar o ambiente gráfico GNOME ou KDE, respectivamente.

Relativamente ao Nautilus, deverá efectuar uma configuração de modo a alterar as definições iniciais. Para tal, bastará aceder ao Menu “Locais – Home”, “Editar – Preferências” e seleccionar o separador “Comportamento”. Coloque um visto na opção “Abrir na janela”.

Desta forma, é mais fácil navegar pelo sistema de ficheiros, abrindo as pastas na mesma janela (e não criando uma janela por cada directório visitado) e apresentar um conjunto de botões com todo o caminho desde a raíz até ao directório actual.

Agora que configuramos a visualização, vamos começar a explorar o sistema de ficheiros: basta escolher o Menu “Sistema de Ficheiros” no separador “Locais”.

A primeira conclusão do que se apresenta é que estamos perante um sistema de ficheiros com apenas uma hierarquia. No Windows estamos habituados a ver diversos discos, partições e outros suportes (CD-ROM, DVD, Leitor de Disquetes) identificados por uma letra (C:, por exemplo). Em Linux, estes equipamentos estão inseridos nesta hierarquia única.

No topo desta hierarquia temos a Raíz (/). Normalmente só contém directórios, mas algumas distribuições podem utilizar este local para colocar alguns ficheiros. O utilizador deve abster-se de o fazer, pois tem o seu “cantinho”, como vemos a seguir:

/home

Todos os utilizadores têm um local só seu. Este local é a /home e é dentro deste directório que encontraremos uma pasta para cada utilizador com o seu nome a identifica-la. Assim, a utilizadora Joana encontrará em /home/joana todos os documentos, vídeos, músicas e fotos que guardou enquanto utilizava o ambiente gráfico. As permissões destes ficheiros estão associadas ao utilizador que as criou, o que garante a privacidade dos dados. Ou seja, os documentos da Joana só são vistos, alterados, executados ou eliminados por ela própria (ou pelo super-utilizador). Já sabemos que a excepção é o super-utilizador, o qual acede e vê tudo no sistema... Por outro lado, é possível partilhar estes dados de modo a permitir o acesso a outros utilizadores localmente no computador ou em rede. Basta, para isso, criar partilhas...

Para além dos ficheiros e pastas criadas e guardadas pelo utilizador na sua /home são igualmente encontrados ficheiros de configuração específicos para esse mesmo utilizador, tais como a definição do papel de fundo do ambiente de trabalho, formatos das janelas, configurações e histórico de navegadores web, programas clientes de correio electrónico, entre outros.

Para que seja possível visualizar todos os directórios deverá aceder ao Menu “Ver” e escolher a opção “Visualizar ficheiros e pastas ocultas”. Agora encontrará muito mais informação. Os ficheiros e pastas que se iniciam com um ponto (.Thunderbird, por exemplo) são ocultos e agora estão visíveis. O duplo clique abre estas pastas, tal como se trata-se de uma pasta “normal”.

A pasta Desktop representa o Ambiente de Trabalho do utilizador, pelo que aí encontrará os seus ficheiros, pastas e atalhos.

Podemos associar a pasta /home à pasta “Documents and Settings” do Windows, assim como a /home/utilizador à pasta “Os Meus Documentos”.

/root

O root ou super-utilizador também tem um local exclusivo para si. Mas este não se encontra na /home, mas tem um directório na raíz só dele. De resto, o conteúdo deste directório é semelhante ao dos restantes utilizadores: tem os Documentos, Desktop, etc. Mas é conveniente que não tenha muitos ficheiros, pois isso significará que o computador está a ser utilizado com frequência por este utilizador e isso coloca em risco a segurança do sistema!


/bin

“bin” é o diminuitivo de binários, e nesta pasta encontramos uma série de ficheiros executáveis, tais como: ls, rm, cd, mkdir, etc. São os comandos utilizados na linha de comandos quando se efectuam tarefas como listar o conteúdo de directórios ou criar e remover pastas e ficheiros.

Os utilizadores que apenas utilizam o ambiente gráfico utilizam estes mesmos comandos (mesmo sem o saberem) porque as mesmas tarefas geradas com o teclado e o rato de forma tão simplificada para todos nós, desencadeiam os mesmos comandos utilizados na linha de comandos.


/sbin

Em contraste com o /bin, o qual contém aplicações utilizadas no dia-a-dia, o /sbin é o local onde o sistema Linux armazena as aplicações que correm em segundo plano e no arranque.

Poder-se-á equivaler ao \windows\system do Windows.


/usr

Este directório inclui um conjunto alargado de ficheiros e pastas, e à primeira vista, parece redundante em relação ao /bin e /sbin, visto incluir ficheiros que supostamente deveriam localizar-se naqueles directórios.

A distinção que se aplica é centrada no utilizador. Ou seja, em /usr as aplicações não são utilizadas no arranque, nem na manutenção do sistema. Este directório terá o equivalente em Windows no \windows\programas.

Neste caso, se o utilizador instalar uma aplicação que não aparece na barra de programas ou no ambiente de trabalho na forma de ícone, o ideal é começar a procura pelo /usr.

Para além de ficheiros, encontramos sub-directórios. Os nomes podem variar entre distribuições, mas alguns estarão sempre presentes. É o caso do /usr/bin para os binários e o /usr/lib para as livrarias. A divisão em sub-directórios é fundamental devido à grande quantidade de ficheiros que compõem o /usr.


/opt

Onde albergar pacotes não essenciais ao funcionamento do sistema Linux? No /opt! É cada vez mais frequente a instalação de add-ons (suplementos de aplicações) ou programas que até são muito úteis mas não são essenciais para a manutenção do sistema (o leitor de ficheiros PDF, por exemplo). O local mais provável para os encontrar é nesta pasta. Já agora, aquela aplicação que instalou e não aparece, afinal não estava no /usr? Bem, nesse caso, o ideal é continuar a procurar e o /opt é passagem obrigatória!

/mnt

Quando o utilizador coloca um CD ou DVD no leitor, ou quando se conecta um dispositivo de armazenamento USB, o ideal é que apareça no ambiente de trabalho um atalho ou uma nova janela a questionar sobre a tarefa que se pretende efectuar com esse dispositivo (tal como acontece no Windows).

Isto é igualmente possível em Linux! No entanto, poderá acontecer em alguns casos a situação de nada aparecer e nesse caso o que fazer? Se não existe um problema físico no Hardware que impossibilite a ligação do equipamento externo, então muito provavelmente vai encontra-lo na pasta /mnt. Algumas distribuições (como o Mandriva, por exemplo) utilizam o directório /media para o mesmo fim, pelo que poderá confundir alguns leitores que tenham coragem de seguir esta “viagem” aos meandros do Linux com uma “espreitadela” ao seu computador...

Nos computadores com o Windows e Linux instalados em simultâneo, no /mnt poderá ser encontrada a partição do Windows. Mas cuidado: a formatação NTFS e o Linux não foram feitos um para o outro! Embora possamos ver os ficheiros, o ideal é não lhes mexer se não existir mesmo qualquer necessidade.

/etc

Este directório contém grande parte dos ficheiros necessários para o regular funcionamento do sistema. Desse conjunto destaca-se um ficheiro denominado fstab, o qual tem como função indicar ao sistema Linux a localização dos diversos pontos de montagem (estes terão uma explicação mais detalhada em /dev).


/dev

Num dos artigos iniciais desta série havíamos afirmado que em Linux tudo é um ficheiro. E cá vai mais uma prova disso mesmo. No directório /dev (derivado de “device”) encontrará uma série de ficheiros que representam as várias partições do disco rígido (hda1, hda2, ...), leitores de disquetes (fd0), CD e DVD (cdrom) e discos usb (sdc1, sdc2, ...).


/proc

Os Processos em Linux têm extrema importância. Se este nome não lhe diz nada, contacte a BiT e compre já a edição de Agosto de 2007, onde lhe explicamos o que são Processos e porque são os responsáveis pela imunidade do Linux a Vírus!

Assim, nesta pasta estão registados todos os processos que estão a correr no Sistema Operativo, seja uma janela do Firefox ou um documento de texto do OpenOffice. O que significa que os dados que encontrar neste momento após uma reinicialização deixarão de existir.


/var

Este directório serve de intermediário entre as aplicações e periféricos (impressoras, entre outros). Não é muito interessante planear uma visita até aqui, pois não?

/boot

Logo a seguir à raíz (/) este é o directório que o sistema vai procurar de imediato no arranque. Aqui encontra-se o gestor de arranque (GRUB ou LILO) e é igualmente aqui que o Linux mantém o Kernel. Deixe este directório em paz!


/lib

Qualquer leitor que nos acompanha já sofreu com as DLL do Windows, certo? Bem, DLL significa “Dynamic Linked Library” e em Linux temos algo semelhante: as livrarias. Uma livraria é um ficheiro que permite o funcionamento de aplicações, daí se referir recorrentemente as dependências de aplicações. Essas dependências são as livrarias e/ou outras aplicações que determinado programa necessita para funcionar devidamente.


/lost+found

Quando perdemos alguma coisa normalmente recorremos aos perdidos e achados. Com sorte as nossas coisas foram encontradas por alguém honesto que as entregou a estes serviços.

Em Linux, quando acontece um problema que obrigue o computador a desligar abruptamente (corte de energia, por exemplo) os dados que não foram guardados no seu devido lugar no disco provavelmente estarão nesta pasta.

Assim, quando o sistema recupera de uma quebra irregular corre um aplicativo denominado fsck, o qual vai procurar ficheiros corrompidos, repara-os e coloca-os na pasta /lost+found.


/tmp

Existem sempre diversos ficheiros temporários que o sistema necessita na sua actividade normal. Em Windows temos o Temp e em Linux temos o /tmp. O ideal é não colocar nesta pasta ficheiros que pretenda garantir a permanência depois de uma reinicialização, pois o mais certo é já lá não estarem...


Agora que já conhece o sistema de ficheiros de Linux, convido-o a conhecer na próxima edição as aplicações de Gestão de Arquivos Konqueror e Nautilus.

domingo, 7 de outubro de 2007

A terrível linha de comandos

O recurso à linha de comandos em Linux é inevitável para qualquer utilizador, mesmo não tendo como tarefa a administração do sistema.

Tendo consciência da aversão à linha de comandos pelos utilizadores habituados ao ambiente gráfico, vamos apresentar algumas utilizações simples desta ferramenta essencial.

O Linux é um sistema operativo multi-utilizador, pelo que, cada utilizador deverá ter uma conta no seu computador. Durante a instalação é solicitada a indicação de, pelo menos, um utilizador, sendo necessário indicar o nome verdadeiro, nome de utilizador e palavra-passe. No nome verdadeiro, poderá ser colocado o que bem entender, mas nos campos do nome de utilizador e palavra-passe, convém algum cuidado para não os esquecer, de modo a poder utilizar o sistema, assim que a instalação seja concluída.

Quando o utilizador é criado, um grupo de trabalho é igualmente criado. Cada grupo poderá conter um ou mais utilizadores, em função das permissões iguais a atribuir a todos os utilizadores do grupo. Por outro lado, os utilizadores poderão pertencer a mais do que um grupo.

Se o utilizador aceder à linha de comandos a partir da sua área de trabalho do ambiente gráfico, não necessita de autenticação, pois este linha de comandos já se encontra associada ao seu utilizador.

Existe ainda um outro utilizador, ou melhor, um Super-Utilizador, o qual tem todos os poderes para efectuar qualquer tarefa e aceder a todos os ficheiros no computador. Durante a instalação do Linux é solicitada a indicação da palavra-passe deste super-utilizador, também referenciado como su ou root. A sua utilização deverá ocorrer pontualmente e apenas quando indispensável e nunca como regra.

Algumas tarefas são exclusivas do root, pelo que, quando um utilizador normal as tenta executar, recebe a informação que não dispõe de permissões suficientes e que deverá ser o root a executa-las. Se se tratar de uma tarefa a decorrer no ambiente gráfico, surge uma janela a solicitar a introdução da palavra-passe do root. Neste caso, terminada a tarefa, o root deixa de estar “activo” mantendo-se o utilizador normal a trabalhar. No entanto, quando utilizamos a linha de comandos e é necessária a intervenção como root, basta digitar su seguida da tecla Enter na linha de comandos. É solicitada a introdução da palavra-passe do root, a qual ao ser escrita não faz qualquer efeito, sendo portanto normal, que não apareçam asteriscos. Basta carregar na tecla Enter novamente e fica registado como root.

Uma característica distintiva do root é o facto de apenas este super-utilizador ter um cardinal (#) na linha de comandos. Quando o trabalho especifico de root termina basta digitar exit e voltará a assumir o seu utilizador normal. Nunca é demais lembrar que a utilização do root deverá ser cuidadosa pois um simples engano pode deitar tudo a perder!

Aparência da linha de comandos em função do utilizador
Utilizador normal
miguel@portmiguel:~>
Super-Utilizador
portmiguel:/home/miguel #

Em algumas distribuições (como o Ubuntu, por exemplo) optaram por permitir aos utilizadores o acesso ao root apenas para um comando, voltando a assumir o utilizador normal de imediato. Para tal, basta digitar sudo (super-utilizador faz) seguido do comando pretendido. Desta forma, é garantido que nunca se esquece de assumir o seu utilizador e ficar muito mais protegido.

No Linux todos os ficheiros e directórios são associados à pertença de um utilizador e de um grupo de trabalho. Desta forma, o proprietário pode definir as permissões para cada ficheiro ou directório.
As permissões são sempre associadas a três categorias de utilizadores: o proprietário, os membros do grupo e os restantes utilizadores (outros).

Em paralelo, é possível associar três níveis de permissões a cada categoria de utilizadores: a Leitura (“r” -read) permite ao utilizador ler o ficheiro ou listar o conteúdo do directório; a Escrita (“w” - write) permite ao utilizador a modificação do conteúdo do ficheiro e no caso do directório, permite a criação e remoção de ficheiros, mesmo não sendo proprietário dos mesmos; por fim a Execução (“x” - execute) permite a execução do ficheiro, tratando-se de um ficheiro que possa ser executado. Nos directórios esta permissão significa que é possível aceder ao seu conteúdo e prosseguir por sub-directórios. É de salientar que na permissão leitura o acesso a sub-directórios não é possível.

Todas as combinações são possíveis, de modo a indicar para o proprietário, grupo e outros utilizadores as permissões de leitura, escrita e execução de cada ficheiro e directório.

O comando utilizado em Linux para listar o conteúdo de um directório é ls e normalmente é seguido do argumento -l para que seja listado com detalhes. Assim, o comando ls -l lista com detalhes o conteúdo do directório onde se situa na linha de comandos.

Vamos apresentar dois resultados possíveis de obter:

-rwxr-xr-x 1 miguel users 140211 2007-01-03 05:15 corrector thunderbird-PT.xpi
drwx------ 5 miguel users 4096 2007-05-26 11:07 Desktop

De seguida, analisamos o conteúdo destas linhas da esquerda para a direita:

os dez primeiros caracteres representam o tipo de ficheiro e as suas permissões. Assim, o primeiro caracter indica se se trata de um ficheiro (-), um directório (d), um link (l), um dispositivo do tipo carácter ou bloco (c ou b) ou sockets ou pipes (s ou p). Os seguintes nove caracteres indicam as permissões associadas ao proprietário, ao grupo e aos outros. Como já vimos, as permissões podem assumir três possibilidades (r/w/x) e no caso de determinada permissão não ser aplicável, lo local da letra é apresentado o travessão (-).

-

r

w

x

r

-

x

r

-

x

tipo

proprietário

grupo

outros


O campo numérico seguinte indica o número de ligações existentes para o ficheiro ou directório;

De seguida, são apresentados o nome do proprietário e do grupo a quem pertence o ficheiro ou directório;

Finalmente, é indicado o tamanho em bytes, a data e hora da última modificação e a indicação do nome do ficheiro ou directório.

Não obstante as permissões indicadas, o root tem sempre as permissões absolutas sobre todo e qualquer ficheiro ou directório, podendo inclusive alterar as permissões dos mesmos, quer em relação a mudança de proprietário e/ou grupo, quer em relação aos níveis (r/w/x).

Uma questão igualmente importante diz respeito aos nomes dos ficheiros. Por um lado, o facto de existir a diferenciação entre letras maiúsculas e minúsculas permite que em Linux os ficheiros nome.doc e Nome.doc sejam dois ficheiros diferentes. Por outro lado, os ficheiros ocultos apresentam no inicio do seu nome um ponto (.), exemplo: .nome.doc. Sempre que se pretenda listar o conteúdo de um directório incluindo os ficheiros ocultos deverá ser utilizado o comando ls -la onde o argumento “a” indica a apresentação dos ficheiros ocultos. Para mais informação sobre este comando, basta escrever man ls na linha de comandos.

Uma curiosidade interessante do Linux é o facto de não ser obrigatória a utilização de extensões nos ficheiros, sendo a sua utilização facilitadora na associação a aplicações por parte dos utilizadores.

E os vírus em Linux?

Em Linux, a cada instância de um programa em execução e ao seu ambiente é denominado de Processo.

A cada processo é associado um utilizador, o qual tem as suas permissões definidas para o ficheiro em causa. Paralelamente, o sistema atribui uma identificação única a cada processo, sabendo sempre qual o utilizador que o iniciou e quais as suas permissões. Devido a este facto, o Linux consegue ser virtualmente imune a vírus, pois estes para actuarem necessitam infectar ficheiros executáveis de relevância para o sistema, os quais não têm nas suas permissões os privilégios necessários associados a utilizadores normais.

No entanto existem anti-vírus para Linux...! Este facto deriva da necessidade de garantir que não se infectarão os computadores com Windows com os quais o Linux comunique. Vejamos os casos de servidores Linux que servem postos de trabalho em Windows: o próprio servidor pode (e deve) garantir que os ficheiros armazenados e disponíveis para os postos Windows não estão infectados.

Como vimos, a linha de comandos apresenta na sua fase inicial uma linha do tipo [miguel@portmiguel:~>]. Isto significa que o utilizador miguel está a utilizar o computador denominado “portmiguel”.

A localização da linha de comandos quando iniciada é a /home do utilizador. O comando “cd” permite mudar de directoria (tal como no DOS), pelo que o comando cd nome, transfere a linha de comandos para a pasta /home/nome. Sempre que se pretenda passar para o directório imediatamente acima da localização actual, é utilizado o comando cd .., pelo que este comando no nosso exemplo colocar-nos-ía novamente em /home.

Por fim, o comando cd – leva-nos para o último directório que visitamos e cd ~ é um atalho para que independentemente da localização actual nos colocar na /home/nome.

Existem várias opções de comandos, e o ideal é recorrer ao manual que o próprio Linux disponibiliza na linha de comandos. Para tal, se pretender conhecer todas as possibilidades do comando ls, basta executar man ls seguido da tecla Enter, e é apresentada de imediato a página do Manual deste comando.

Consolas Virtuais

Uma das possibilidades mais interessantes da utilização do Linux é a multitarefa.

Cada utilizador pode efectuar o login diversas vezes em consolas e em ambiente gráfico! Mas deverá ter em atenção os recursos do computador necessários para a execução de vários Ambientes Gráficos.

Normalmente estão disponíveis seis consolas virtuais, basta pressionar as teclas Ctrl+Alt+F, onde n é o número da consola que se pretende aceder. Por defeito, a consola 7 está associada à interface gráfica. assim, caso se pretenda aceder à 3ª consola, dever-se-á pressionar as teclas Ctrl+Alt+F3.