Unix básico
Básico sobre sistemas operacionais Unix-like.
Contas de Usuários
Sistemas Unix-like são muito conhecidos por serem multitarefa e multi-usuários, uma vez que o sistema surgiu para ser trabalhado em rede.
Como um sistema para ser tratado em rede valem-se as contas de usuários: a forma pela qual identifica-se um usuário no sistema; e da qual restringi usuários a somente seus dados e configurações.
Para ter acesso e por conseguinte usar o sistema é preciso (e em grande parte obrigatório, a grande exceção são os Live CDs) estar cadastrado no sistema, i. e., é preciso um nome de usuário e uma senha. O cadastro dos usuários recaem sobre o administrador do sistema chamado de root
.
O usuário root
(administrador do sistema ou super usuário) tem uma grande gama de permissões de acesso ao sistema e à arquivos. É de suma importância que este usuário não seja usado de forma indiscriminada e aleatória, por exemplo navegar pela internet, editar imagens, dentre outros. Este usuário somente deve ser usado para fazer ajustes/manutenção ao sistema.
Terminais
Certamente todo o poder de um sistema Unix está no console (terminal ou modo texto), partindo de um console pode-se executar diversas tarefas e também automatizar e otimizar tarefas.
Se seu sistema não estiver configurado para iniciar automaticamente partindo de uma interface gráfica o que deve aparecer é, nas últimas linhas algo semelhante à:
Exemplo FreeBSD:
FreeBSD/i386 (host0) (ttyv0)
login:
Exemplo Debian:
Debian GNU/Linux 3.1 pc1 tty1
pc1 login:
Nos dois exemplos a primeira linha mostra detalhes da máquina: Sistema Operacional/Distribuição, nome do computador, identificação do terminal; a segunda linha pede o nome de login.
Quando digitado e confirmado com <ENTER>
o nome de usuário é pedido uma senha, password, note que não é mostrado qualquer símbolo quando é digitado, isso é por uma questão de segurança, alguém pode supor sua senha a partir de seu tamanho, exemplo: se alguém ver que sua senha tem 6 ou 8 caracteres e toda vez que você digita utiliza o teclado alfanumérico, pode-se supor que seja uma data.
Se digitada a senha correta você se loga no sistema e após isso é mostrado o MOTD
(mensagem do dia, conteúdo do arquivo /etc/motd
) na seqüência é mostrado o terminal de comando simbolizado pelo caractere #
, para conta de root
, $
ou %
para outros usuários do sistema.
Após logar no sistema é mostrado um shell
(que é um interpretador de comandos), para iniciar a utilização do sistema. A partir do seu shell é possível iniciar todos os comandos, programas e scripts disponíveis.
Em tratando-se de sistema multi-usuário/multitarefa o sistema pode executar uma grande quantidade de programas de uma vez. É, certamente, um desperdício usar apenas um terminal e/ou apenas um programa por vez.
Os consoles virtuais existem exatamente para logar no sistema e executar várias tarefas. O sistema encarrega-se de redirecionar a saída (tela) e a entrada (teclado) de um terminal somente para o mesmo, uma alusão a ter vários monitores e vários teclados no mesmo computador.
Uma combinação <ALT>+<F1>
até <ALT>+<F12>
é usada para movimentar-se entre os terminais virtuais. Essas combinações somente diferem de duas formas:
A primeira é se estiver em terminal virtual basta <ALT>+<F_n_>
, a segunda é quando está na interface gráfica é necessário teclar também o <CONTROL>
ficando <CONTROL>+<ALT>+<F_n_>
.
De acordo que você se movimenta nos consoles virtuais o sistema encarrega-se de salvar e restaurar o conteúdo da tela correspondente. Esta “ilusão” não interrompe um processo quando está saindo de um terminal para outro, o programa continua a ser executado.
Usuários, Grupos e Permissões
Sendo multi-usuário o sistema pode gerenciar inúmeros usuários, trabalhando simultaneamente em tarefas iguais ou distintas. Ainda é responsável pelo gerenciamento e pelo compartilhamento de hardware (por exemplo acesso a periféricos, memória, …) e de software (arquivos em disco, programas, …) de forma justa e apropriada entre os usuários.
O sistema por um conjunto de permissões que governam quem pode ler, escrever e executar recursos forma a base para o gerenciamento de usuários. Sendo agrupadas as três para usuário dono, para o grupo do usuário e para todos os outros usuários do sistema.
As permissões são comumente representadas na forma de octetos: três octetos; um octeto para o usuário, um para o grupo e um para os outros. Veja no quadro abaixo:
Valor Octal | Permissão | Em caractere |
---|---|---|
0 (0+0+0) | Nenhuma | --- |
1 (0+0+1) | Executar | --x |
2 (0+2+0) | Escrever | -w- |
3 (0+2+1) | Ler e Executar | r-- |
4 (4+0+0) | Ler | r-- |
5 (4+0+1) | Ler e Executar | r-x |
6 (4+2+0) | Ler e Escrever | rw- |
7 (4+2+1) | Ler, Escrever e Executar | rwx |
O comando ls -l
pode ser usado para verificar as permissões para arquivos, diretórios dentre outros, segue um exemplo:
$ ls -l
total 10344
drwxr-xr-x 6 dmitry dmitry 4096 2007-04-07 21:27 BSD
drwxr-xr-x 3 dmitry dmitry 4096 2007-02-24 18:49 fhs
drwxr-xr-x 17 dmitry dmitry 4096 2007-03-29 21:23 Linux
drwxr-xr-x 2 dmitry dmitry 4096 2006-05-11 18:39 POSIX_files
-rw-r--r-- 1 dmitry dmitry 16224 2006-06-13 19:26 POSIX.htm
drwxr-xr-x 3 dmitry dmitry 4096 2007-02-05 09:55 Single_UNIX_Specification
-rw-r--r-- 1 dmitry dmitry 80221 2007-04-06 08:49 unix_a4.pdf
-rw-r--r-- 1 dmitry dmitry 27179 2006-06-18 15:18 Unix_history-simple.png
-rw-r--r-- 1 dmitry dmitry 667436 2004-01-31 04:25 unix_posterA3.pdf
No comando ls -l
a primeira coluna mostra as permissões: -rw-r--r--
.
O primeiro caractere mostra se é um arquivo normal -
, um diretório d
, um dispositivo especial de bloco b
ou de caractere c
ou um link l
.
Baseado nestas definições o administrador do sistema pode lhe dar permissões para as mais diversas tarefas, exemplos: para utilizar o drive de disquete deve-se estar no grupo floppy
, para usar o CD-ROM no grupo cdrom
, além é claro da aplicação ser feita para arquivos e diretórios: pode criar um diretório para um grupo de trabalho e a partir disso configurar para que todos do grupo tenha inicialmente os mesmos acessos a arquivos.