Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Linux
Enviado por:
Sumaya Pandini
A história do Linux
O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux,
Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual
contaremos sua história agora, para que você entenda melhor a do Linux.
Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds?
Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O
Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso
significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado
originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No
entanto, vale citar que ele foi escrito do “zero” e apesar de ser uma versão do Unix, não
contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente.
A partir daí, “entra em cena” Linus Torvalds. Ele era um estudante de Ciências da
Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu
desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou
uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A
mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão
do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994
disponibilizou a versão 1.0. Hoje, a versão atual é a 2.6.15
Linus Torvalds, quando desenvolveu o Linux, não tinha a inteção de ganhar dinheiro e sim
fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de
desenvolvimento que foi adotado foi o de ajuda coletiva. Ou seja, ele coordena os esforços
coletivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas
contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de
fazer um sistema operacional melhor.
Licença GPL
O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que
estão sob ela, com o compromisso de não tornar os programas fechados e comercializados.
Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercialiazá-lo, mas
você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo.
GNU
Mas a história do Linux não termina por aqui. É necessário também saber o que é GNU.
GNU é um projeto que começou em 1984 com o objetivo de desenvolver um sistema
operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus
Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar
programas da GNU para fazer seu sistema. Gostando da idéia, resolveu deixar seu kernel
dentro da mesma licença.
Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e
serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos
sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional.
Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU?
Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é
o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é
basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há
quem defenda o uso de GNU/Linux).
O projeto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à “mistura” de
seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando
porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro
sistema.
Distribuições
O GNU/Linux, como já foi dito, é um sistema aberto, eu posso ler seu código fonte,
modificá-lo, e distribuí-lo. Então... Por que não traduzí-lo para o meu idioma, customizar o
sistema e implementá-lo de forma que ele suporte a maioria dos hardwares utilizados na
região que vivo?
Essas foram algumas perguntas que levaram pessoas a estudar o código fonte do
GNU/Linux e desenvolver suas próprias distribuições. Mas nos parece que a pergunta que
mais impulsionou tais pessoas foi : E por que não ganhar dinheiro com isso?
Daí surgiram muitas distribuições diferentes do GNU/Linux em todo o planeta. Embora
algumas tenham ignorado a última pergunta, onde a distribuição é desenvolvida por
voluntários, sem fim lucrativos (como é o caso da DEBIAN, distribuicao que segue
radicalmente as leis morais da GPL).
Então vem o questionamento : A ideologia foi embora com aparecimentos de tantas
distribuições?
A resposta é não. Para isso daremos como exemplo a distribuição mais conhecida aqui no
Brasil, a Conectiva (GNU/)Linux.
A Conectiva é uma empresa que comercializa o GNU/Linux no Brasil. A GPL não proibe
essa atitude, desde que sejam seguidas algumas regras. A empresa pode vender as mídias
com a distribuição, porém, tem o dever de disponibilizar na rede a distribuição completa
com seu código fonte integralmente.
Quem quiser fazer o download da distribuição Conectiva GNU/Linux, basta ir até a página
da empresa. Quem achar mais viável comprar o cd, pode adquirí-lo por um custo baixo.
Essas empresas que comercializam o GNU/Linux existem em diversos países, e sobrevivem
vendendo mídias a baixo custo, oferencendo soluções para empresas, ministrando cursos,
etc. Nada de ilegal nisso, embora algumas empresas às vezes exageram na ambição e são
eventualmente bastante criticadas e desprezadas pela comunidade que segue a filosofia do
Software Livre, prejudicando assim seus preciosos rendimentos.
• Debian :
Como já foi dito é a distribuição que mais segue as leis da GPL e que se preocupa
muito mais com estabilidade do que com novidade, a maioria dos pacotes
disponíveis na versão estavel não são atuais mas em compensação são muito mais
confiáveis. Tem seu próprio formato de pacotes (.deb) e tem um sistema de
atualização muito eficiente (apt-get).
• Conectiva :
É a distribuição que dá o melhor suporte para o idioma português e para os teclados
brasileiros, assim como para o hardware presente na maioria das máquinas vendidas
aqui no Brasil. Usa o formato de pacotes da RedHat (.rpm).
• Slackware :
É a distribuição preferida para quem gosta de fuçar, já que não traz muitos
utilitários para facilitar a configuraç ão dos periféricos como a maioria das outras
distribuições fazem. Não tem um sistema de pacotes muito eficiente.
• Mandrake :
Uma das melhores distribuições voltadas para sistemas Desktop, é dificil durante
uma instalação ele não encontrar algum dispositivo seja ela onboard ou não ,possui
um utilitário para configuração do sistema que facilita bastante para quem não tem
muito conhecimento da localização dos arquivos de configuração no sistema. Usa o
formato de pacotes da RedHat
• SuSe :
Uma das distribuições que melhor dá suporte para arquiteturas diferentes dos PC's
comuns (notebooks e máquinas RISC por exemplo). Usa o formato de pacotes da
RedHat
• RedHat :
RedHat - Foi a distribuição que criou o formato de pacote RPM, que hoje é usado
por inúmeras distribuições. Da mesma forma que o Suse é voltado tanto para
desktops quanto para servidores
USUÁRIOS:
PERMISSÕES:
Da mesma forma que o conceito de usuários, o conceito de permissões não existe em uma
instalação padrão do Windows (com exceção das versões para servidor), o que acaba
facilitando a ação de vírus ou até mesmo de danificação acidental do sistema.
As permissões dos arquivos no GNU/Linux podem ser vistas com o comando ls -l , por
exemplo :
# ls -l
NOMES DE ARQUIVOS:
Outra diferença importante para os usuários é o fato dos nomes dos arquivos no
GNU/Linux serem case sensitive, ou seja, as letras maiúsculas e minísculas fazem
diferença, por exemplo, no GNU/Linux, posso ter os seguintes nomes de arquivos em um
mesmo diretório:
# ls -1
teste
testE
tesTE
TesTe
TESTE
Uma última diferença diz respeito às extensões dos arquivos, que não são necessárias para
os arquivos no GNU/Linux. Enquanto no Windows, um arquivo nomeado "arquivo.exe" é
um executável e um "texto.doc" é um documento de texto, no GNU/Linux podemos ter
somente os nomes "arquivo" e "texto" , mas então como saber o tipo de arquivo se o
mesmo não tem extensão ? A identificação dos arquivos é feita baseada no conteúdo do
cabeçalho dos mesmos. na próxima seção veremos como identificar um arquivo que não
possui extensão.
PARTIÇÕES/DIRETÓRIOS:
No GNU/Linux não temos essa estrutura baseada em letras mas sim baseada em pontos de
montagem :
Home do usuário
Diretório que pertence ao usuário, onde ele pode tudo. O comando cd
isolado leva o usuário até este diretório. Ao logar no sistema, o usuário cai também em seu
home.
O shell seria uma espécie de prompt do DOS para o GNU/Linux soh que ele foi
desenvolvido bem antes e é muito mais poderoso pois além de permitir que o usuário rode
os comandos ele também possui uma linguagem que permite a edição de vários scripts para
as mais variadas finalidades. Existem vários shells para o GNU/Linux, o mais usado e
também um dos mais poderosos é o bash, outros shells :
• sh
• tcsh
• csh
• ksh
São comandos simples mas que quando utilizados em conjunto através de scripts ou de
pipes '|' permitem a criação de soluções poderosas para os mais diversos problemas.
Para obter mais informações sobre um comando específico, digite o nome do mesmo
seguido de --help, ou então leia a manpage dele.
Acesso a discos no GNU/Linux:
# mount /mnt/floppy
Depois de montado, o conteúdo do disquete estará em /mnt/floppy. Quando terminar de
usar o dispositivo , o mesmo deve ser desmontado com o comando :
# umount /mnt/floppy
<Ctrl><Alt><F1>
Muda a tela para o primeiro terminal texto. Sob Linux você pode ter vários (6 na definição
padrão) terminais abertos ao mesmo tempo. Este é um atalho de teclado que significa:
"pressione a tecla Control e a tecla Alt, segure-as. Agora pressione a tecla <F1> e solte
todas elas.
<Ctrl><Alt><Fn> (n=1..6)
Muda a tela para o terminal texto numero n. (O mesmo poderia ser feito com o comando
raramente usado chvt n. "chvt" significa "change virtual terminal[mude o terminal
virtual]").
tty
Mostra o nome do terminal no qual você está digitando este comando. O numero do
terminal ativo pode ser mostrado usando o comando fgconsole.
<Ctrl><Alt><F7>
Muda a tela para o primeiro terminal gráfico (se o X-windows estiver sendo executado
neste terminal).
<Ctrl><Alt><Fn> (n=7..12)
Muda a tela para o terminal gráfico n (se um terminal gráfico estiver sendo executado na
tela n - 1). Por default, o primeiro servidor X roda no terminal 7. Por default, nada roda nos
terminais 8 a 12--você pode executar servidores X subsequentes ali.
<Tab>
(Em um terminal texto) Completa automaticamente o comando se há somente uma opção
ou, em caso contrário, mostra todas as opções disponíveis. ESTE ATALHO É MUITO
LEGAL! Ele funciona até no prompt do LILO!
<Shift><PgUp>
Mostra telas anteriores. Isto funciona também no prompt de login, assim você pode navegar
através das mensagens de inicialização (boot). A quantidade/uso de sua memória de vídeo
determina a distancia que você pode chegar nas paginas anteriores.
<Shift><PgDown>
Mostra telas a frente, depois de você ter usado o atalho anterior.
<Ctrl><Alt><+>
(em X-windows) Muda para próxima resolução do servidor X (se você configurou o
servidor X com mais de uma resolução). Para múltiplas resoluções em meu monitor/placa
SVGA padrão, eu tenho a seguinte linha no arquivo /etc/X11/XF86Config (a primeira
resolução é a inicial, a maior resolução determina o tamanho da “tela virtual”):
Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z
Naturalmente, primeiro eu tenho de configurar o servidor X, ou usando o Xconfigurator,
xf86config, ou manualmente editando o arquivo /etc/X11/XF86Config, de forma que ele
suporte as resoluções acima (na maior parte é uma questão de descomentar a linha que
define o chipset de meu vídeo, e especificar as freqüências de sincronização que meu
monitor suporta). XFdrake (utilitário de configuração do Mandrake) pode faze-lo a partir
da interface gráfica. Veja também os comandos xvidtune e xvidgen.
<Ctrl><Alt><->
(em X-windows) Muda a resolução do servidor X para a resolução anterior.
<Ctrl><Alt><Esc>
(em X-windows, KDE) Fecha a janela na qual vou posicionar e clicar o mouse (o ponteiro
do mouse se transforma em algo parecido como o símbolo da morte). Resultado similar
pode ser obtido com o comando xkill (executado em um terminal X). Útil quando um
programa rodando no ambiente X não pode ser finalizado(travado?).
<Ctrl><Alt><BkSpc>
(em X-windows) Termina o servidor X corrente. Use se o servidor X não pode ser
terminado normalmente.
<Ctrl><Alt><Del>
Sai do sistema e reinicializa a maquina. Este é comando normal para encerramento do
sistema(shutdown) na console em modo texto. Não use o botão “reset” para fazer isto!
<Ctrl>c
Fecha o processo corrente(funciona na maioria das vezes em aplicações em modo texto).
<Ctrl>d
(pressionado no inicio de uma linha vazia) Fecha a sessão corrente de terminal. Veja
também o próximo comando.
<Ctrl>d
Envia [End-of-File] para o processo corrente. Não pressione-o duas vezes senão você estará
fazendo logout(veja o comando anterior).
<Ctrl>s
Interrompe a transferencia de dados para o terminal.
<Ctrl>q
Reinicia a transferencia de dados para o terminal. Tente isto se seu terminal
misteriosamente parar de responder.
<Ctrl>z
Envia o processo corrente para segundo plano.
exit
Executa logout. Também posso usar o comando logout para obter o mesmo efeito. (Se
você executou um segundo shell, por exemplo, usando bash, você voltará para o primeiro
shell encerrando o segundo.)
reset
Restaura um terminal desconfigurado(mostrando caracteres estranhos) para a configuração
normal. Use-o caso tenha usado o comando "cat" sobre um arquivo binário. Você pode não
ser capaz de ver o comando quando você o digitar.
~
(til) Meu diretório padrão (diretório padrão, normalmente o diretório
/home/meu_nome_de_login). Por exemplo, o comando cd ~/meu_diretório irá alterar o
diretório corrente para o diretório "meu_diretório" sob o meu diretório padrão(home)
Digitando-se apenas ust "cd" é um equivalente ao comando "cd ~".
.
(ponto) Diretório corrente. Por exemplo, ./meu_programa tentará executar o arquivo
'meu_programa' localizado em seu diretório corrente.
..
(sequência de dois pontos) Diretório pai do diretório corrente. Por exemplo, o comando cd
.. irá alterar o meu diretório corrente para um nível acima.
Inicializando o Linux:
Kernel 2.6.10
Login:
Você deverá digitar o login root que é o superusuário do sistema, você não
deve trabalhar sempre como root, pois isto pode colocar seu sistema em sérios riscos, já que
o root tudo pode. Este superusuário só deve ser utilizado para operações de administração
do sistema.
Kernel 2.6.10
login: root
Password:
[root@localhost /root]#
Congratulações! Você conseguiu acessar o sistema com sucesso. Seu status de
superusuário é demonstrado em seu prompt com o uso do símbolo # (identificador do status
de root).Vamos aprender a sair do sistema.
Por uma questão de segurança você não deve deixar seu usuário conectado ao
sistema, após terminar suas tarefas, você deve fechar o seu terminal, ou seja encerrar sua
sessão de trabalho, para isto pode usar: ctrl – d ou exit ou logout. Isto deve retornar a tela
de acesso ao sistema.
Kernel 2.6.10
login:
Contas e Senhas
Com o seu nome ou outro qualquer que queira utilizar. Para fazer isso, você
precisa saber como criar contas no seu sistema Linux.
su :
shutdown -r +5
Encerrando a Sessão
Encerrando o Sistema
Em casos normais, use sempre shutdown para encerrar o sistema, pois este
comando se certifica que tudo ocorra em ordem, sem danos ao sistema. Caso não seja
possível executá-lo, pode-se usar a seguinte seqüência (de emergência) para finalizar e
reiniciar o sistema:
Sinopse
- su
Utilizado para se trocar de usuário sem efetuar logout. Muito comum em
acessos via rede, já que via rede por default o root não pode se logar.
Usa-se também su -c "comando a executar" para se executar um comando
com poderes de root e depois retornar. Obviamente será pedida uma senha.
Uso do su:
su nomeDoUsuarioAseVirar
- date
Mostra ou altera a data e hora do sistema. Por exemplo, eu poderia mudar a
data e hora para 2000-12-31 23:57 usando este comando:
date 123123572000
- ls
Comando que serve para listar arquivos. Suas opções mais utilizadas são
-la, onde o -l significa para listar as permissões (inclusive) e o -a para listar todos os
arquivos (lembrando que para o linux arquivos começados com . são ocultos).
OBS: O Linux possui um alias chamado l para o comando ls -la, use-o e
caso a sua distribuição não contenha tal alias, crie-o. Veja mais adiante como fazê-lo.
Identificado os arquivos pela cor:
Metacaracteres:
Redirecionamento e pipes:
Ex:
head filename
- tail
tail filename
- diff
Exibe na tela as diferenças entre dois arquivos texto -u – utiliza o formato de saída
unificado
diff [opções]<arquivo1><arquivo2> -
- cp
Copia arquivos. Use: cp arquivoASerCopiado novoArquivo
Opções interessantes:
-i Pede confirmação antes de substituir um arquivo existente
-R Cópia recursiva. Serve para copiar diretórios e seu conteúdo.
- mv
Move arquivos. Use-o também para renomear.
Uso: mv arquivo novaLocalizacao/
mv arquivo novoNome
Recomendado:
-i Confirma antes de substituir um arquivo existente.
OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mv
com a opção -i.
- alias
Cria um apelido para um comando. Tem precedência sobre o comando, ou
seja, pode-se criar um alias do tipo: alias ls="ls -la". Toda vez que digitarmos ls na
verdade ele executará ls -la.
- clear
Limpa a tela. Recomenda-se a criação de um alias chamado c para este
comando.
- mkdir (-p)
Comando para a criação de diretórios. Usa-se o -p caso se queira criar uma
"árvore" de diretórios.
- rmdir (-p)
Complemento do comando mkdir. Serve para remover um diretório vazio.
A opção -p serve para remover uma árvore de diretórios vazia (sem arquivos).
- rm (-rf)
Comando utilizado para apagar arquivos. Observe que o rm simplesmente
não apaga diretórios. Sua opção -r indica para apagar recursivamente, ou seja, ir apagando
todos os arquivos em subdiretórios e inclusive os próprios diretórios. A opção -f força
apagar, e não emite mensagens de erro caso não exista um arquivo.
Ex: rm -rf arquivoQueNaoExiste
Não acontecerá NADA. Nenhuma mensagem de erro será informada.
- df
Mostra informações de sistemas de arquivos montados (mesmo CDRom e
Disquete).
- setterm
Este comando serve para modificar configurações do terminal do Linux, tais
como cor de fundo e cor da letra.
Ex:
setterm -background green --> Fundo Verde
setterm -foreground yellow --> Letra "amarela". O amarela
está entre aspas devido ao fato de que a cor não parece ser amarelo não.
OBS: Este comando mudará a cor a partir do momento em que ele for dado,
ou seja, você precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.
- tput
Utilizaremos este comando para posicionar o cursor na tela, onde quisermos.
Ele será muito útil quando estivermos construindo shell scripts.
Ex:
tput cup 5 10 Posiciona o cursor na linha 5 coluna 10.
- uptime
Mostra a quanto tempo o sistema está ligado. Os maiores uptimes da
internet são com máquinas UNIX.
- Ps (aux)
Comando que lista os processos em execução no sistema. Recomenda-se
sempre utiliza-lo com as opções AUX, para que liste TODOS os processos ativos no
sistema.
- Kill
Serve para matar um processo em execução. Deve-se utilizar um dos sinais
existentes para esta tarefa. O sinal padrão é o sinal 15. Após o sinal, deve-se informar o
PID (identificador único de processos) do processo que se deseja matar (encerrar).
- Killall
Implementação do linux muito interessante. Permite-se que se mate diversos
processos com o mesmo nome de uma única vez. Observe que pode utilizá-lo para matar
um único processo pelo nome, desde que se tenha o cuidado de perceber se não existem
outros processos com este nome.
Ex: killall httpd
Killall -9 vi
- touch
Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma
coisa.
Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar2 ...
Pode-se criar diversos arquivos de uma única vez.
- find
Busca arquivos. Muito avançado.
Uso: find DirAProcurar opções
Exemplos de uso:
find / -name Rodrigo.tar Procura a partir da raiz (no sistema todo)
o arquivo chamado Rodrigo.tar
find /home -exec grep "teste" {} \; -exec ls -la {} \: Procura a
partir do diretório /home arquivos com o conteúdo teste (grep teste) e lista este
arquivo (ls -la).
find /usr -type l -ok rm -rf {} \; Procura no diretório /usr links (-
type l) e caso encontre, confirma se deve ou não apagar (-ok rm -rf).
Consulte o manual para informações mais interessantes.
- locate
Busca arquivos, mas utiliza uma base de dados como padrão, o que o torna
muito rápido. Cuidado!! Atualize sempre sua base de dados, ou irão aparecer arquivos que
já foram removidos em suas buscas.
Outro problema do locate é o fato de que ele busca qualquer ocorrência da
palavra a buscar, ou seja, se você fizer locate a, ele irá listar TUDO no sistema que contém
a palavra a.
Para atualizar sua base de dados utilize: updatedb
Para buscar utilize: locate oqbuscar
- top
Método interessante de se vizualizar os processos ativos na máquina.
Use: M --> Ordenar por consumo de memória
P --> Ordenar por consumo de CPU
- background (&)
O linux possui uma opção interessante que é a de mandar processos para o
segundo plano, liberando assim o ambiente do usuário.
Pode-se fazer isso através do sinal & após qualquer comando.
- jobs
Lista os processos que estão em segundo plano, retornando o número do
processo de segundo plano, que deverá ser utilizado para traze-lo de volta.
- fg
Comando que trás de volta um processo do segundo plano.
Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs
- ln (-s)
Este comando cria um link (atalho) entre diretórios e arquivos. Um link
simbólico (opção -s) nada mais é do que um arquivo no HD que aponta para a área
onde está o arquivo original. Se o original é apagado, o link fica "quebrado". Já um
link direto (apenas ln) dá um outro nome para a mesma área do HD. Como um
backup contra remoção indevida, no entanto usa-se o mesmo espaço do HD,
referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto não
pode ser feito entre diretórios.
Uso: ln -s Original Link
ln Original Link
- chown (user:group)
Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou
diretório.
Uso: chown novodono:novogrupo arquivoOudiretorio
Observe que a opção :novogrupo pode ser omitida ou trocada por
.novogrupo.
Também aqui existe a opção -R.
- chgrp
Utilizado para mudar apenas o grupo dono de um arquivo.
Uso: chgrp novogrupo ArquivoOuDiretório
- Adicionando um Usuário
Qualquer pessoa que for utilizar o linux deve necessariamente possuir um
usuário válido na máquina. Lembrando que NÃO devemos utilizar o root a menos que
necessário, esta tarefa é importantíssima mesmo para usuários caseiros.
Adicionando:
useradd rodrigo -g alunos
Adicionamos o usuário rodrigo no grupo alunos. Observe que a opção -g
nomegrupo não se faz necessária, e caso seja omitida, teremos comportamentos diferentes
em algumas distribuições:
RedHat e familiares (incluindo Conectiva):
Será criado um grupo com o mesmo nome do usuário e este será
adicionado neste grupo
Slackware:
O usuário será adicionado em um grupo chamado users
Isto ocorre devido a não padronização deste ato e ao fato de um usuário
NECESSARIAMENTE pertencer a algum grupo
Para garantir a segurança do sistema, o sistema Unix requer o uso de uma senha. Se você
achar que alguém utilizou sua conta sem permissão, mude sua senha imediatamente.
• Escolha uma senha que você possa lembrar sem a necessidade de escrever.
• A sua password deve ter ao menos seis caracteres e deve conter pelo menos um número.
• Não use seu próprio nome ou suas iniciais.
• Não use nomes de animais ou objetos relacionados a seu interesse.
• Se você tem mais de uma conta, não use a mesma senha para todas as contas.
passwd
Changing password for (nome-do-usuário)
Old password:
New password:
Retype new password:
-> Quando o sistema pedir "Old Password:" , digite sua senha atual.
Se nenhuma senha estiver associada a sua conta, o sistema irá omitir este prompt.
Note que o sistema não mostra a senha que você digita na tela. Isto previne que outros
usuários descubram sua senha.
-> Quando o sistema pedir "New Password:", digite sua nova senha.
-> O último prompt , "Retype new password", pede que você digite a nova senha
novamente.
Se você não digitar a senha da mesma maneira em que digitou da primeira vez, o
sistema se recusa a modificar a senha e exibe a mensagem "Sorry".
- Adicionando um Grupo
Um grupo nada mais é do que a união de diversos usuários com as mesmas
características. Por exemplo, poderíamos ter um grupo estudantes ou alunos.
Para adicionarmos este grupo, devemos utilizar o comando:
groupadd alunos
No arquivo /etc/group será adicionada uma entrada alunos, e será dado um
GID (identificador de grupo) a este grupo.
Excluindo um usuario
- Variáveis
Variáveis nada mais são do que espaços na memória que armazenam
valores. O linux possui variáveis do próprio sistema, que armazenam valores de
configurações ou informações da máquina.
Para vê-las utilize o comando set.
Para darmos um valor a uma variável e torna-la global ao sistema, fazemos
export variável=valor.
Para retirarmos uma variável fazemos unset variável.
- Variável PS1
Esta variável guarda os valores para o PROMPT do Linux. Observe que
estes valores podem ser variáveis interpretadas pela SHELL, e por default o são, ou seja, se
você utilizar uma shell que não a shell BASH, eles podem ficar sem sentido.
A variável PS1 é uma variável normal do sistema, qualquer valor que for
dado a ela irá ficar no prompt.
No entanto ela possui alguns valores especiais interessantes, eis alguns:
\h Host da máquina
\W Diretório Corrente
\w Caminha completo do diretório corrente
\u Nome do usuário
\t Hora
\\$ Fica $ se for usuário normal e # se for root
Exemplo:
export PS1="[\h@\w]\\$ "
- Arquivo /etc/motd
Este arquivo é lido pelo sistema quando um usuário loga na máquina e seu
conteúdo é enviado para a tela do usuário, como uma mensagem de boas vindas ou algo do
tipo. Preste atenção que comandos NÃO serão interpretados.
- Arquivo /etc/issue
Tela vista ANTES do usuário se logar. Seria a própria mensagem antes do
login. Observe que o arquivo /etc/issue.net é o mesmo que o issue mas é válido para
conexões via rede (telnet). Em algumas distribuições este arquivo é apenas um link para o
/etc/issue.
- Senhas SHADOW
O esquema de senhas chamado SHADOW foi criado devido ao fato de o
Linux (e os Unix-Like da vida) utilizarem em suas senhas um método de criptografia
chamado DES (Data Encryption Standard). Este método é fraco (utiliza chaves de apenas
64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhor
sobre este assunto). Como o arquivo /etc/passwd necessita ter permissão de leitura para
todos, qualquer usuário facilmente conseguiria obter a senha de ROOT do sistema.
Com isso criaram o SHADOW, onde as senhas criptografadas com o DES
ficam no arquivo /etc/shadow que só pode ser visto pelo root.
Sobra então no arquivo /etc/passwd apenas um * ou ! no lugar da senha
criptografada do usuário.
Todas as distribuições linux trazem o SHADOW por padrão.
- Arquivo /etc/passwd
Este arquivo contém os usuários cadastrados na máquina e informações
sobre eles. Sua sintaxe é:
login:UID:GID:Descrição:Home:Shell
Onde:
login Nome do usuário na máquina
UID Identificador do usuário. O Linux utiliza este
número para dar ou tirar permissões. Pode ser repetido
entre usuários.
GID Identificador do grupo principal do usuário.
Descrição Qualquer coisa, se for omitido, deve-se deixar
::. Geralmente coloca-se nome e cargo do usuário
Home Diretório pessoal do usuário. Não
necessariamente, mas recomenda-se que ele fique no
/home e tenha o mesmo nome do usuário.
Ex: Usuário: Rodrigo
Home: /home/Rodrigo
Shell Shell que o usuário irá utilizar para se logar no
sistema. Use /bin/false caso o usuário não deva logar. E
/bin/bash caso deva.
OBS:
Deve ter ficado na cabeça do leitor atento o fato de CASO O
USUÁRIO NÃO DEVA LOGAR.
Mas quando isto acontece?
Digamos que temos uma aplicação que deve ser executada com as
permissões de um usuário. Criamos um para ela, mas este não é um usuário válido, como
minha aplicação iria entrar na máquina? Este é um caso.
- Arquivo /etc/group
Similarmente ao /etc/passwd este arquivo possui as configurações dos
grupos (o /etc/passwd possui dos usuários)
Sua sintaxe geral é:
<grupo>:x:<gid>:<usuario1>,<usuario2>
Os usuários que pertencerem a este grupo estarão listados neste arquivo, a
menos que o grupo seja primário do usuário, neste caso apenas estaria referenciado em
/etc/passwd no campo gid.
Preste atenção que é neste arquivo que o GID dos grupos está especificado,
sendo que o /etc/passwd apenas consulta ele.
O editor de textos (modo caracter) vi é muito utilizado no mundo Linux para editar
arquivos de configuração. O vi apresenta 2 modos de uso:
Obs.: Conceito de linha: Considerasse linha o texto digitado até o próximo enter.
x apaga um caracter
yy copia a linha corrente
nyy copia n linhas
D remove a linha corrente para posterior “colagem”
nD remove n linhas para posterior “colagem”
Obs.: Notar que é necessário pressionar a tecla <shift> para obter D (maiúsculo)
Obs.: Notar que é necessário pressionar a tecla <shift> para obter P (maiúsculo)
Obs.: Notar que é necessário pressionar a tecla <shift> para obter DD (maiúsculo)
Obs.: Notar que é necessário pressionar a tecla <shift> para obter O (maiúsculo)
Obs.: Notar que é necessário pressionar a tecla <shift> para obter N (maiúsculo)