Pesquisa Google

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.

Sem comentários: