Você está na página 1de 33

GNU/LINUX

agosto/2013

Comandos bsicos, avanados e comandos de rede.

1 - LINHA DE COMANDO
A nica interface comum a todos os sistemas membros da famlia Unix a linha de
comando, portanto toda a administrao desses sistemas feita a partir de comandos.
Os comandos so disparados de uma aplicao chamada shell. O shell tambm conhecido
por interpretador de comandos. Ao contrrio do DOS/Windows, no mundo Unix existem dezenas
de interpretadores de comandos, por exemplo:
bash:
ksh:
csh:
sh:

Bourne Shell Again


Korn Shell
C shell
Bourne Shell

Para a linha de comando, basicamente todo shell igual. Porm, para escrever scripts [shell
script] precisa usar a linguagem especfica de cada shell.

2 - EXEMPLOS DE COMANDOS
Notao usada nesses exemplos:
o comando:
shell$ ls
a saida do comando: arquivo1

dir3

Para saber onde se encontra no sistema hierrquico de arquivo:


shell$ pwd
/home/aluno

Comando para se deslocar no sistema hierrquico de arquivo:

GNU/LINUX

www.jairo.pro.br

1/33

shell$ cd /etc
shell$ pwd
/etc

Listagem do diretrio /bin


shell$ ls /bin
alsaunmute
arch
awk
basename

dbus-monitor
dbus-send
dbus-uuidgen
dd

false
fgrep
find
fusermount

link
ln
loadkeys
login

nice
nisdomainname
ntfs-3g
ntfs-3g

rvi
rview
sed
probe

tracepath6
traceroute
traceroute6
setfont

....

Listagem no formato longo:


shell$ ls -l /bin
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
lrwxrwxrwx. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root
-rwxr-xr-x. 1 root

root
root
root
root
root
root
root
root
root
root

123 Mai
36608 Abr
4 Jun
34720 Abr
838824 Abr
57096 Abr
63804 Abr
59652 Abr
66608 Abr
110996 Abr

15 09:38 alsaunmute
1 08:20 arch
14 15:19 awk -> gawk
1 08:20 basename
8 07:46 bash
1 08:20 cat
1 08:20 chgrp
1 08:20 chmod
1 08:20 chown
1 08:20 cp

....

NOTA:
Todo nome de arquivo precedido de uma barra direita (por exemplo, /etc) representa um caminho
(path) absoluto. Se no for precedido dessa barra, um caminho relativo.

GNU/LINUX

www.jairo.pro.br

2/33

Mostrar o contedo de arquivo de texto:


shell$ more /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
gopher:x:13:30:gopher:/var/gopher:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin
avahi-autoipd:x:499:499:avahi-autoipd:/var/lib/avahi-autoipd:/sbin/nologin
oprofile:x:498:498:Special user account to be used by OProfile:/home/oprofile:/s
bin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkituser:x:87:87:PolicyKit:/:/sbin/nologin
avahi:x:497:497:avahi-daemon:/var/run/avahi-daemon:/sbin/nologin
--Mais--(51%)

NOTA:
No arquivo /etc/passwd onde esto cadastrados os usurios locais ao sistema.
No arquivo /etc/group esto cadastrados os grupos locais ao sistema.
E no arquivo /etc/shadow onde esto as hashes de senha de usurios locais.

GNU/LINUX

www.jairo.pro.br

3/33

O comando cat usado para pegar e mostrar todo o contedo de um arquivo de uma nica vez:
shell$ cat /etc/inittab
# inittab is only used by upstart for the default runlevel.
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
# System initialization is started by /etc/event.d/rcS
# Individual runlevels are started by /etc/event.d/rc[0-6]
# Ctrl-Alt-Delete is handled by /etc/event.d/control-alt-delete
# Terminal gettys (tty[1-6]) are handled by /etc/event.d/tty[1-6] and
# /etc/event.d/serial
# For information on how to write upstart event handlers, or how
# upstart works, see init(8), initctl(8), and events(5).
# Default runlevel. The runlevels used are:
# 0 - halt (Do NOT set initdefault to this)
# 1 - Single user mode
# 2 - Multiuser, without NFS (The same as 3, if you do not have networking)
# 3 - Full multiuser mode
# 4 - unused
# 5 - X11
# 6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

Busca expresso regular no contedo do arquivo:


shell$ grep operator /etc/passwd
operator:x:11:0:operator:/root:/sbin/nologin

Com a opo -v, grep faz uma busca reversa, para ignorar todas as linhas que contenham o padro
de busca:

shell$ grep -v "#" /etc/inittab


id:5:initdefault:

Mostra as 10 ltimas linhas de um arquivo:

GNU/LINUX

www.jairo.pro.br

4/33

shell$ tail /etc/group


stapdev:x:491:
stapusr:x:490:
wbpriv:x:88:squid
smolt:x:489:
torrent:x:488:
haldaemon:x:68:
squid:x:23:
gdm:x:42:
aluno:x:500:
jackuser:x:487:

Mostra as 4 ltimas linhas de um arquivo:

shell$ tail -4 /etc/group


squid:x:23:
gdm:x:42:
aluno:x:500:
jackuser:x:487:

NOTA:
tail com opo -f mostra as ltimas linhas de um arquivo e permanece tentando ler novas linhas,
medida que forem sendo escritas. Isso muito til para acompanhar acessos em arquivos de logs.
Exemplo: tail -f /var/log/messages

Mostra as linhas do incio de um arquivo:

shell$ head /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

GNU/LINUX

www.jairo.pro.br

5/33

Conta o nmero de linhas, palavras e caracteres de um arquivo:

shell$ wc /etc/passwd
40 65 1986 /etc/passwd

que tem 40 linhas, 65 palavras e 1986 caracteres.


Determina o tipo de um arquivo:
shell$ file /etc/group
/etc/group: ASCII text
shell$ file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs),
for GNU/Linux 2.6.18, stripped
shell$ file /usr
/usr: directory

Copiar um arquivo:

shell$ cp /etc/passwd /tmp

Mover um arquivo:

shell$ mv /tmp/passwd /tmp/passwd2

Criar diretrio:

shell$ mkdir /home/aluno/teste

Remover diretrio vazio:

GNU/LINUX

www.jairo.pro.br

6/33

shell$ rmdir /home/aluno/teste

Remover arquivo regular:


shell$ rm /tmp/passwd2

NOTA:
Para remover diretrio com contedo, usar o comando rm com opo -r [recursivo]
Exemplo:

shell$ rm -r /home/aluno/teste

Pedir o menu de ajuda [help] do comando:


shell$ ls --help

Usar o manual de ajuda do comando:


shell$ man ls

Para ordenar o contedo de um arquivo na apresentao:


shell$ sort /etc/passwd

Para recortar campos do arquivo na apresentao:


shell$ cut -d: -f1 /etc/passwd

Para criar o usurio juca, antes precisa ganhar privilgios de root:

GNU/LINUX

www.jairo.pro.br

7/33

shell$ sudo su
[sudo] password for aluno:
shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

shell# /usr/sbin/useradd -m -s /bin/bash juca

onde a opo -m para criar a home do usurio e -s especifica o shell.


Como no foi feito referncia a grupo, foi criado o grupo juca:
shell# tail -1 /etc/group
juca:x:1002:

Para criar o usurio joca, no grupo primrio juca, comandar:


shell# /usr/sbin/useradd -m -s /bin/bash -g juca joca

onde a opo -g o groupname do grupo onde ser criado o usurio joca.


NOTA:
Para o comando acima funcionar, precisa existir o groupname juca.
Para excluir o usurio joca, comandar userdel:
shell# userdel joca

Para criar um grupo, usar o comando groupadd:


shell# groupadd jeca

Para excluir um grupo, usar o comando groupdel:


shell# groupdel jeca

GNU/LINUX

www.jairo.pro.br

8/33

Para retornar o shell de aluno, comandar exit:


shell# exit
shell$

Comandos adicionais:
uptime:
history:
ps:
pstree:
adduser:
usermod:
passwd:
echo:
env:
printenv:
touch:
df:
du:
free:
uname:
hostname:
id:
export:
top:

diz a quanto tempo o sistema est rodando;


mostra o histrico de comandos disparado no shell;
mostra status de processos;
mostra a rvore de processos;
linque simblico para useradd, usado para incluir usurios no sistema local;
modifica a conta do usurio;
usado para alterar a senha;
usado para enviar mensagens para a sada padro;
altera o ambiente na execuo de comando;
mostra o ambiente total ou parte deste;
altera a data da ltima edio do arquivo. Se o arquivo no existe, criado;
reporta uso do espao no sistema de arquivo [file system disk space usage];
estima o uso de ocupao do espao por arquivo [diretrio, file space usage];
mostra a quantidade de memria usada e livre no sistema;
mostra informaes sobre o sistema;
mostra ou configura o nome da mquina ou domnio;
mostra o usurio real e efetivo, alm dos grupos a que pertence o usurio;
usado no shell sh e descendentes para carregar ou modificar uma varivel;
mostra, interativamente, uma lista de processos ordenados pelo consumo de
recursos do computador.

3 - PIPES
Os pipes so implementaes de comunicao entre processos. Na linha de comando, se for
disparado mais de um executvel de uma vez, vai gerar mais de um processo. E se esses executveis
estiverem ligados por um pipe "|", ento a sada de um processo ser a entrada do outro processo.
Essa sequncia de comunicao vai da esquerda para a direita.
Exemplo:
shell$ ls /bin | more

GNU/LINUX

www.jairo.pro.br

9/33

onde ls /bin lista o contedo do diretrio /bin, e como essa lista no cabe nas dimenses da janela
shell, ento usado na mesma linha de comando o executvel "more" para apresentar essa
listagem paginadamente.
Outro exemplo:

shell$ cat /etc/passwd | grep bash | wc -l

Esse comando determina o nmero de usurios locais cadastrados para usar o shell /bin/bash.
Outros exemplos:
cat /etc/passwd | grep aluno
cat /etc/group | sort
cut -d: -f1 /etc/passwd | sort
cat /etc/passwd | grep -i juca | wc -l
ls -l /etc | grep "^d" | grep "a$"
cut -d -f3 /etc/passwd | sort -n

4 - REDIRECIONAMENTOS
Os redirecionamentos alteram a entrada ou sada padro de um comando. Normalmente, a
entrada padro o teclado, e a sada padro o monitor.
4.1 - Sada padro:
Por exemplo, o comando:

shell$ ls /etc > /tmp/ls_etc.txt

faz uma listagem do diretrio /etc e envia a sada para o arquivo /tmp/ls_etc.txt. Se o arquivo
no existisse, seria criado. No entando, se o arquivo existisse, o contedo anterior seria perdido.

GNU/LINUX

www.jairo.pro.br

10/33

Caso o arquivo existisse, para manter o contedo anterior e acrescentar o novo contedo no
final do arquivo, o comando seria:

shell$ ls /etc >> /tmp/ls_etc.txt

NOTA: quando se redireciona a sada padro, esta vai para um arquivo e, portanto, no tem
sada no shell [no vem sada para o monitor].
4.2 - Sada de erro:
Caso o comando encontrasse algum erro, retornaria uma mensagem de erro. Por exemplo,
tentar criar um diretrio que j existe gera mensagem de erro. Essa mensagem de erro chamada de
sada de erro, e para ser redirecionada precisa incluir o nmero 2 antes do sinal de maior ">":

shell$ mkdir /etc 2> /tmp/erro_do_comando.txt

NOTA: se no usar essa notao a sada de erro no redirecionada e vem para o monitor.
4.3 - Entrada padro:
A entrada padro redirecionada com o sinal "<" aps o comando. Com isso, o comando
ir ler a entrada de um arquivo e no mais do teclado.
Por exemplo, considere o executvel que, ao ser disparado pergunta pelo nome e idade,
depois finaliza informando o nome e a idade:
shell$ nome_idade
entre com o seu nome: juca
entre com a sua idade: 286
Seu nome juca, sua idade 286 anos

Se esse comando fosse disparado com redirecionamento da entrada padro, no esperaria pelas
entradas de teclado.

GNU/LINUX

www.jairo.pro.br

11/33

shell$ nome_idade < arq_entrada


entre com o seu nome:
entre com a sua idade:
Seu nome juca, sua idade 286 anos

No arquivo arq_entrada existem apenas duas linhas, que so as entradas pedidas pelo comando:
--- arq_entrada --juca
286
-----------------------Desse modo, existem 3 casos para os redirecionamentos:

sada padro
sada de erro
entrada padro

> [o correto seria 1>, porm pode ser omitido o nmero 1]


2>
<

A forma clssica usada no shell para redirecionar de uma nica vez tanto sada de erro
quanto sada padro para um nico arquivo, :
comando > arquivo_saida 2>&1

5 - EDITOR vi/vim
No mundo Unix/Linux, existe apenas um editor de texto realmente universal: o vi [visual
interface]. Embora no seja amigvel ao iniciante, vale o esforo para aprender pois em qualquer
sistema membro da famlia Unix ele est presente.
certo que existem muitos editores, alguns at mais prticos que o vi. Porm, no h a
garantia de que ele esteja instalado na mquina que voc for administrar.
O editor vim o vi "improved" [aprimorado], e deve ser usado sempre que estiver
disponvel, pois mais amigvel que o vi. Quanto aos comandos, so idnticos.
A primeira noo que se precisa ter do vi/vim que se trata de um editor de 2 modos, que
so edio [EDIT ou INSERT] e comando [COMMAND]. Afinal, vi/vim usa apenas o teclado,
ento num caso teclar estar editando o texto de algum arquivo, no outro estar dando comandos
[por exemplo, para salvar o texto].
Para entrar no modo insero, basta pressionar a letra i [de insert]. A partir da, se est

GNU/LINUX

www.jairo.pro.br

12/33

escrevendo no arquivo.
Para sair do modo insero e entrar no modo comando, deve comandar a sequncia <ESC>
<SHIFT> <:>, que so as 3 teclas ESC+SHIFT+: e posteriormente pressionar a tecla [ou teclas]
com o comando. Nessa situo, a tecla w [write] salva o texto no arquivo, a tecla q [quit]
abandona o editor de texto e volta para o shell.
Exemplo: para criar o arquivo teste.txt e escrever no seu interior, basta seguir a sequncia:
1)
2)
3)
4)

no shell, comandar "vi teste.txt", que abre o editor e toma o shell;


Pressionar a tecla "i" para entrar no modo de insero [INSERT] de texto;
Escrever o texto "teste de escrita vi";
Sair do modo de insero e entrar no modo comando com a sequncia de teclado <ESC>
<SHIFT> <:>
5) pressionar as teclas wq, que vai salvar e sair do editor.
Os principais caracteres usados no modo comando so:
x
dd
u
r
o
a
q!

deleta o carater onde est o cursor;


apaga a linha onde est o cursor;
desfaz a edio;
substitui o caracter na posio do cursor pelo que for teclado aps o r;
entra no modo INSERT ganhando uma linha nova abaixo do cursor;
entra no modo INSERT ganhando uma caracter direita do cursor;
fora a sair do vi sem salvar a edio.

6 - SCRIPTS
Alm da linha de comando, o administrador do sistema costuma usar scripts [roteiros] para
automatizar tarefas rotineiras. Desse modo, ao invs de disparar a mesma sequncia de comandos
todo dia, basta escrever essa sequncia num arquivo de texto, definir na primeira linha o nome do
interpretador, colocar permisso para execuo e disparar o script.
Exemplo 1:
----- teste.sh -----#!/bin/bash
echo "Script teste"
---------------------Dar permisso de execuo:

GNU/LINUX

www.jairo.pro.br

13/33

shell$ chmod 755 teste.sh

Disparar o executvel script:


shell$ ./teste.sh
Script teste

Exemplo 2:
--- nome_idade ------------------------------------#!/bin/bash
echo -n "Escreva o seu nome: "
read nome
echo -n "Escreva a sua idade: "
read idade
echo "Seu nome $nome, sua idade $idade"
--------------------------------------------------------Dar permisso de execuo:
shell$ chmod 755 nome_idade

Executar o script:
shell$ ./nome_idade
Escreva o seu nome: juca
Escreva a sua idade: 286
Seu nome juca, sua idade 286

7 - PERMISSES DO SISTEMA DE ARQUIVO


As permisses do sistema de arquivo definem o acesso aos arquivos. Por acesso, nesse caso
entendemos leitura, escrita e execuo, entre outros. Para alterar esses acessos, existem trs
comandos: chmod, chown e chgrp.
Para entender o conceito de permisso de acesso ao sistema de arquivo, antes necessrio
ter em mente que:
Todo arquivo tem um dono. O dono quem cria o arquivo;
GNU/LINUX

www.jairo.pro.br

14/33

Todo arquivo pertence a um grupo de usurios. O conceito de grupo envolve usurios com
atividades que requerem um conjunto semelhante de permisses de acesso a arquivos;
Aqueles usurios que no so o prprio dono do arquivo ou no pertencem ao grupo do
dono, so considerados "outros" do ponto de vista do acesso ao arquivo;
Permisses so concesses no acesso a arquivos. A nvel de sistema de arquivo, usa-se [por
exemplo] os bits r [read leitura], w [write escrita] e x [execuo ou acesso a
diretrio].
Para as permisses, existem 3 campos distintos: o do dono, do grupo e outros.
Por exemplo, o comando ls -l /home/aluno mostra:
shell$ ls -l /home/aluno
-rw-rw-r--

aluno users

59939

Ago 18 21:13

arq.txt

drwxr-xr-x

aluno users

4096

Mai 12 09:15

dir1

Olhando o resultado dessa listagem no formato longo, identificamos que o ltimo campo de
cada linha o nome do arquivo, que j aparecia na listagem ls [sem formato longo]. Mas que agora
apresenta mais atributos para cada arquivo.
Uma viso detalhada desses atributos mostra que:

-rw-rw-r--

aluno

users

59939

Ago 18 21:13

arq.txt

drwxr-xr-x

aluno

users

4096

Mai 12 09:15

dir1

n de
linques
para o
arquivo

username
(dono do
arquivo)

tamanho
do
arquivo
(bytes)

data da ltima
edio no
arquivo

permisses do
sistema de
arquivo

groupname

nome do
arquivo

No entanto, o que foi chamado de permisses precisa ter descontado o primeiro caracter, que
designa o tipo do arquivo. O caracter "d" [por exemplo, drwxr-xr-x] designa que o tipo do
arquivo um diretrio. Se iniciar com um trao "-" [por exemplo, -rw-rw-r--], o arquivo do tipo
regular ou ordinrio, e se iniciar com um caracter "l" [por exemplo, lrwxrwxrwx], trata-se de
link [linque] simblico.
Dos nove bits de permisso (por exemplo, rw-rw-r--), os trs primeiros so permisses do
dono, os trs seguintes so do grupo e os trs ltimos dos outros. No existe sobreposio dessas
permisses. Por exemplo, as permisses dadas ao grupo no afetam as permisses de acesso para o
dono do arquivo.

GNU/LINUX

www.jairo.pro.br

15/33

-rw-rw-r--

-rw-rw-r--

-rw-rw-r--

dono do
arquivo

grupo do
arquivo

outros

7.1 - chmod
O comando chmod altera as permisses de acesso ao arquivo. Pode ser alterado no modo
numrico [octal] ou simblico.
Para poder alterar as permisses, o usurio precisa ser dono do arquivo ou ento ser root.
7.1.1 - Modo numrico ou absoluto [octal]
O modo numrico usa a notao octal para traduzir os bits de permisso dos arquivos em
nmeros de 0 a 7. A tabela abaixo mostra a relao entre bits de permisso e nmeros.

rwx

binrio

octal

---

000

--x

001

-w-

010

-wx

011

r--

100

r-x

101

rw-

110

rwx

111

Convm notar que o bit r est associado ao octal 4, w ao 2 e x ao 1:


r => 4
w => 2
x => 1
e que os valores octais so cumulativos. Por exemplo, a permisso "r-x" 4+1=5, "rwx"
4+2+1=7.
Exemplos:

GNU/LINUX

www.jairo.pro.br

16/33

shell$ chmod 444 arq.txt


shell$ ls -l arq.txt
-r--r--r--

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod 246 arq.txt


shell$ ls -l arq.txt
--w-r--rw-

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod 750 dir1


shell$ ls -ld dir1
-rwxr-x---

1 aluno users

4096 Mai 12 09:15 dir1

NOTA:
O bit x em arquivo regular permisso de execuo, j em diretrio d acesso ao seu
contedo. Afinal, o diretrio estrutura organizacional e no pode ser executado.
7.1.2 - Modo simblico
No modo simblico, a alterao de permisso de arquivos segue o esquema:
chmod [ugoa][+=][rwxst]

onde:
Os caracteres [ugoa] designam as permisses do dono [u, user], do grupo [g, group], dos
outros [o, others] e de todos [a, all];
Os sinais [+=] definem a seleo para as permisses, onde o sinal [+] acrescenta a
permisso s que j existem no arquivo, o sinal [] subtrai das existentes e o sinal [=]
remove todas as permisses que haviam no arquivo e impem a que est sendo alterada para
o(s) usurio(s);
Os bits [rwxst] so os bits de permisso a serem alterados no arquivo.
Exemplos:

GNU/LINUX

www.jairo.pro.br

17/33

shell$ ls -l arq.txt
--w-r--rw-

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod u+rx arq.txt


shell$ ls -l arq.txt
-rwxr--rw-

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod g-r arq.txt


shell$ ls -l arq.txt
-rwx---rw-

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod a+x arq.txt


shell$ ls -l arq.txt
-rwx--xrwx

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ chmod ug=r arq.txt


shell$ ls -l arq.txt
-r--r--rwx

1 aluno users

59939 Ago 18 21:13 arq.txt

shell$ ls -ld dir1


drwxr-x---

1 aluno users

4096 Mai 12 09:15 dir1

shell$ chmod a=rx dir1


shell$ ls -ld dir1
dr-xr-xr-x

1 aluno users

4096 Mai 12 09:15 dir1

7.1.3 - Bits s e t
Alm dos bits de permisso r, w e x, tambm so frequentemente usados os bits s e t.
O bit s em arquivos regulares pode estar tanto no campo do dono do arquivo quanto do
grupo. Por exemplo: -rwsr-x--x, -rwxr-s--x, -rwsr-s--x. Em arquivos regulares, o bit s
tambm um bit de execuo.
Se o bit s aparecer no campo do dono do arquivo SUID [Set User ID], se aparecer no
campo do grupo SGID [Set Group ID]. Esse bit altera a identificao do usurio (ou do grupo) no
processo gerado pela execuo do arquivo executvel.
Se for SUID, atribui a permisso do processo como idntica a do dono do arquivo,
independentemente de quem tenha executado.
Se for SGID, atribui a permisso do processo como idntica a do grupo do arquivo,
independentemente de quem tenha executado.
Por exemplo, o executvel usado para alterar senha o comando passwd, que tem as

GNU/LINUX

www.jairo.pro.br

18/33

seguintes permisses:
shell$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 22520 Fev 26 2009 /usr/bin/passwd
shell$ ls -l /etc/shadow
-r-------- 1 root root 1324 Out 12 21:00 /etc/shadow

No caso, o dono do executvel passwd o root, porm este permite que qualquer usurio
execute o comando, como pode ser visto pelo bit x no campo outros.
Porm, quando algum executa o comando passwd, tambm precisa escrever a nova hash
de senha no arquivo /etc/shadow, que no tem permisso de escrita para outros [por questes de
segurana, obviamente].
Ento, o bit s no campo do dono do executvel passwd faz com que o processo originado
por qualquer usurio tenha privilgio de acesso do dono do arquivo, isto , de root, que consegue
escrever no /etc/shadow. Desse modo, o usurio consegue alterar a sua prpria senha.
Exemplo:
shell$ id
uid=1000(aluno) gid=1000(users) grupos=1000(users)
shell$ pwd
/tmp
shell$ cp /bin/mkdir .
shell$ ls -l mkdir
-rwxr-xr-x 1 aluno users 43504 Abr 11 14:37 mkdir
shell$ chmod 4755 mkdir
shell$ ls -l mkdir
-rwsr-xr-x 1 aluno users 43504 Abr 11 14:37 mkdir

NOTA:
O comando chmod, no modo octal, recebe um parmetro com 4 dgitos. Porm, se o[s] primeiro[s]
bit[s] for[em] 0 [zero], este[s] pode[m] ser omitido[s]. Exemplo: chmod 0123 arq.txt idntico a
chmod 123 arq.txt. Ou ento, chmod 0023 arq.txt idntico a chmod 23 arq.txt.
Para verificar o funcionamento desse bit ser necessrio outro usurio, que no pertena ao
grupo de aluno. Neste caso, se ainda no existe adicionar o usurio juca. Para adicionar um novo
usurio, precisa ser root:

GNU/LINUX

www.jairo.pro.br

19/33

shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
shell# /usr/sbin/useradd -m -s /bin/bash -c "usuario juca" -d /home/juca juca
shell# tail -1 /etc/passwd
juca:x:1001:1001:usuario juca:/home/juca:/bin/bash
shell# passwd juca
Mudando senha para o usurio juca.
Nova senha:

Agora, o usurio juca loga em outro shell [por exemplo, <CTRL><ALT>F3], e usa o
executvel em /tmp/mkdir para criar um novo diretrio:
shell$ id
uid=1001(juca) gid=1001(juca) grupos=1001(juca)
shell$ cd /tmp
shell$ /tmp/mkdir juca
shell$ ls -ld /tmp/juca
drwxr-xr-x 2 aluno juca 4096 Abr 11 15:00 /tmp/juca

NOTA:
Repare que o diretrio criado por juca pertence a aluno e no juca.
Analogamente ao exerccio acima, se o dono do arquivo [aluno] mudar as permisses para
-rwxr-sr-x com o comando chmod 2755 /tmp/mkdir, quando juca criar outro diretrio este ser
do grupo de aluno [users].
Do mesmo modo, se aluno usar o comando chmod 6755 /tmp/mkdir, ir alterar as
permisses do arquivo /tmp/mkdir para -rwsr-sr-x. Nesse caso, se juca usar o comando
/tmp/mkdir para criar outro diretrio, este pertencer a aluno e ao grupo users [que o grupo de
aluno].
O bit t em diretrios d a permisso append-only [sticky bit], e usado em diretrios
pblicos como o /tmp.
No exemplo abaixo, o usurio root ir criar um novo diretrio pblico de nome /tmp2.

GNU/LINUX

www.jairo.pro.br

20/33

shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
shell# ls -ld /tmp
drwxrwxrwt 28 root root 4096 Abr 10 12:00 /tmp
shell# mkdir /tmp2
shell# ls -ld /tmp2
drwxrwxrwx 2 root root 4096 Abr 11 15:00 /tmp2
shell# chmod 1777 /tmp2
drwxrwxrwt 2 root root 4096 Abr 11 15:00 /tmp2

7.2 - chown
O comando chown usado pelo root para alterar a posse do arquivo.
Por exemplo:
shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
shell# chown aluno /tmp/mkdir
shell# ls -l /tmp/mkdir
-rwsr-xr-x 1 aluno aluno 43504 Abr 11 14:37 mkdir

Alm de alterar a posse, tambm poderia alterar o grupo primrio. Por exemplo:
shell# touch /tmp/arq.txt
shell# chown aluno:users /tmp/arq.txt
shell# ls -l /tmp/arq.txt
-rw-rw-r-- 1 aluno users 0 Ago 15 15:32 /tmp/arq.txt

7.3 - chgrp
O comando chgrp usado pelo root para alterar o grupo do arquivo.

GNU/LINUX

www.jairo.pro.br

21/33

Por exemplo:
shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
shell# chgrp aluno /tmp/mkdir
shell# ls -l /tmp/mkdir
-rwsr-xr-x 1 aluno aluno 43504 Abr 11 14:37 mkdir

8 - COMANDOS DE REDES
Para mostrar o dispositivo de rede [hardware], o comando lspci:
shell$ lspci | grep -i ethernet
00:0f.0 Ethernet controller: nVidia Corporation MCP73 Ethernet (rev a2)

Para mostrar a configurao lgica da(s) interface(s) de rede(s), o comando ifconfig:


shell$ ifconfig
eth0 Link encap:Ethernet Endereo de HW 00:21:97:80:7C:FF
inet end.: 192.168.1.10 Bcast:192.168.1.255 Masc:255.255.255.0
endereo inet6: fe80::221:97ff:fe80:7cff/64 Escopo:Link
UP BROADCASTRUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:55602 errors:0 dropped:0 overruns:0 frame:0
TX packets:10620 errors:0 dropped:0 overruns:0 carrier:0
colises:0 txqueuelen:1000
RX bytes:8883790 (8.4 MiB) TX bytes:2304141 (2.1 MiB)
IRQ:28 Endereo de E/S:0x6000
lo

Link encap:Loopback Local


inet end.: 127.0.0.1 Masc:255.0.0.0
endereo inet6: ::1/128 Escopo:Mquina
UP LOOPBACKRUNNING MTU:16436 Mtrica:1
RX packets:18 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
colises:0 txqueuelen:0
RX bytes:1268 (1.2 KiB) TX bytes:1268 (1.2 KiB)

Para mostrar as configuraes da interface de rede [como root], o comando ethtool:

GNU/LINUX

www.jairo.pro.br

22/33

# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 1
Transceiver: external
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes

Para mostrar o contedo da tabela de rotas, o comando route:


shell$ route -n
Tabela de Roteamento IP do Kernel
Destino
Roteador
MscaraGen.
192.168.1.0
0.0.0.0
255.255.255.0
0.0.0.0
192.168.1.1
0.0.0.0

Opes Mtrica Ref Uso Iface


U
1
0
0 eth0
UG
0
0
0 eth0

Os comandos, ifconfig, ethtool e route tambm so usados para reconfigurar a rede. Por
exemplo:
# ifconfig eth0 192.168.1.10 netmask 255.255.255.0 up

configura o endereo IP 192.168.1.10/255.255.255.0 na interface eth0.


Se o sistema Linux fosse um CentoOS [que baseado no Red Hat], para esta configurao
resistir a um boot precisaria ser includa no arquivo /etc/sysconfig/network-scripts/ifcfg-eth0.
Caso no fosse a interface eth0, poderia ser eth1, ou eth2, etc, ento os arquivos seriam ifcfgeth1, ou ifcfg-eth2, etc.
Se fosse um sistema Ubuntu [baseado no Debian], para esta configurao resistir a um boot
precisaria ser includa no arquivo /etc/network/interfaces.
O comando:

GNU/LINUX

www.jairo.pro.br

23/33

# route add default gw 192.168.1.1 eth0

configura a rota default gateway 192.168.1.1 para a interface eth0.


Num CentOS, para essa rota resistir a um boot esta precisaria ser configurada no arquivo
/etc/sysconfig/network-scripts/route-eth0, isso em caso de ser usada a interface eth0.
Para saber se o equipamento est acessando a rede, use o comando ping. Por exemplo:

shell$ ping localhost


PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.076 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.045 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.039 ms
^C
--- localhost ping statistics --4 packets transmitted, 4 received, 0% packet loss, time 3308ms
rtt min/avg/max/mdev = 0.039/0.050/0.076/0.015 ms
shell$ ping 192.168.1.20
ping 192.168.1.20
PING 192.168.1.20 (192.168.1.20) 56(84) bytes of data.
64 bytes from 192.168.1.20: icmp_seq=1 ttl=64 time=38.6 ms
64 bytes from 192.168.1.20: icmp_seq=2 ttl=64 time=9.33 ms
64 bytes from 192.168.1.20: icmp_seq=3 ttl=64 time=12.0 ms
64 bytes from 192.168.1.20: icmp_seq=4 ttl=64 time=10.3 ms
64 bytes from 192.168.1.20: icmp_seq=5 ttl=64 time=19.1 ms
^C
--- 192.168.1.20 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4846ms
rtt min/avg/max/mdev = 9.337/17.902/38.698/10.948 ms

Para traar uma rota at o equipamento, use o comando traceroute [no DOS/Windows
tracert]. Por exemplo:
# traceroute -n 187.73.33.34

onde -n para no resolver os nomes dos equipamentos [agiliza o trace].


Para resolver o IP de determinado host, usar o comando nslookup ou dig:

GNU/LINUX

www.jairo.pro.br

24/33

shell$ nslookup www.jairo.pro.br


Server:
200.144.38.194
Address:
200.144.38.194#53
Non-authoritative answer:
Name: www.jairo.pro.br
Address: 187.73.33.34
shell$ ping 187.73.33.34
PING 187.73.33.34 (187.73.33.34) 56(84) bytes of data.
64 bytes from 187.73.33.34: icmp_seq=1 ttl=57 time=12.1 ms
64 bytes from 187.73.33.34: icmp_seq=2 ttl=57 time=9.24 ms
64 bytes from 187.73.33.34: icmp_seq=3 ttl=57 time=13.1 ms
^C
--- 187.73.33.34 ping statistics --3 packets transmitted, 3 received, 0% packet loss, time 2852ms
rtt min/avg/max/mdev = 9.249/11.525/13.194/1.666 ms

shell$ dig www.jairo.pro.br


; <<>> DiG 9.6.1b1-RedHat-9.6.1-0.3.b1.fc11 <<>> www.jairo.pro.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 62325
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 1
;; QUESTION SECTION:
;www.jairo.pro.br.
IN

;; ANSWER SECTION:
www.jairo.pro.br.
3111 IN
;; AUTHORITY SECTION:
jairo.pro.br.
3111 IN
jairo.pro.br.
3111 IN
;; ADDITIONAL SECTION:
ns1.hostnet.com.br. 2024 IN

A
NS
NS

187.73.33.34
ns1.hostnet.com.br.
ns2.hostnet.com.br.

200.185.109.63

;; Query time: 56 msec


;; SERVER: 200.144.38.194#53(200.144.38.194)
;; WHEN: Sun Aug 23 16:53:53 2011
;; MSG SIZE rcvd: 114

Para ver as conexes de rede, tabelas de roteamento e estatsticas de interface, use o

GNU/LINUX

www.jairo.pro.br

25/33

comando netstat:
shell$ netstat -na | more
Conexes Internet Ativas (servidores e estabelecidas)
Proto Recv-Q Send-Q Local Address
Foreign Address
tcp
0
0
0.0.0.0:22
0.0.0.0:*
tcp
0
0
127.0.0.1:631
0.0.0.0:*
tcp
0
0
192.168.1.10:47311 64.233.163.19:80
tcp
0
0
192.168.1.10:47312 64.233.163.19:80
tcp
0
0
::1:631
:::*
udp
0
0
0.0.0.0:47061
0.0.0.0:*
udp
0
0
0.0.0.0:5353
0.0.0.0:*
udp
0
0
0.0.0.0:631
0.0.0.0:*
udp
0
0
0.0.0.0:68
0.0.0.0:*
Domain sockets UNIX ativos (servidores e estabelecidas)
--Mais--

State
OUA
OUA
ESTABELECIDA
ESTABELECIDA
OUA

O comando netstat -nr tambm mostra a tabela de rotas:

shell$ netstat -nr


Tabela de Roteamento IP do Kernel
Destino
Roteador
MscaraGen.
192.168.1.0
0.0.0.0
255.255.255.0
0.0.0.0
192.168.1.1
0.0.0.0

Opes Mtrica Ref Uso Iface


U
1
0
0 eth0
UG
0
0
0 eth0

Com a opo tp possvel saber o PID [Process Identifier] do processo que abriu a porta.
A opo t indica o PID e p a porta:

shell# netstat -tpn

Conexes Internet Ativas (sem os servidores)


Proto Recv-Q Send-Q Local Address
tcp
0
0
192.168.1.10:49657
tcp
0
0
192.168.1.10:56699
shell# ps -p 2364
PID
TTY
TIME
2364 pts/0 00:07:22

Foreign Address
187.73.33.34:80
74.125.234.54:443

State
PID/Program name
TIME_WAIT ESTABELECIDA2364/firefox-bin

CMD
firefox-bin

Convm notar que este comando foi dado como root.


O comando netstat -ns mostra as estatsticas de pacotes trafegados na rede.
A associao entre nomes de protocolos e suas respectivas portas TCP esto nos arquivos
/etc/services e /etc/protocols.

GNU/LINUX

www.jairo.pro.br

26/33

Para descobrir quais servios determinado host disponibiliza, use o comando nmap, que faz
um scan de portas:
# nmap localhost
Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-23 17:02 BRT
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
Not shown: 998 closed ports
PORT
STATE
SERVICE
22/tcp
open
ssh
631/tcp
open
ipp

# nmap 192.168.1.20
Starting Nmap 4.76 ( http://nmap.org ) at 2009-08-23 17:02 BRT
Warning: Hostname localhost resolves to 2 IPs. Using 127.0.0.1.
Interesting ports on localhost (127.0.0.1):
Not shown: 998 closed ports
PORT
STATE
SERVICE
22/tcp
open
ssh
25/tcp
open
smtp
80/tcp
open
http
3128/tcp
open
squid-http

O cliente wget acessa o servio web em linha de comando, e faz dowload de arquivos.
Por exemplo, para acessar o servio web no endereo 192.168.1.10, o comando :

shell# cd /tmp
shell# wget 192.168.1.10
--2013-06-27 20:29:57-- http://192.168.1.10/
Conectando-se a 192.168.1.10:80... conectado.
A requisio HTTP foi enviada, aguardando resposta... 200 OK
Tamanho: 726 [text/html]
Salvando em: index.html
100%[======================================>] 726

--.-K/s em 0s

2013-06-27 20:29:57 (91,9 MB/s) - index.html salvo [726/726]

GNU/LINUX

www.jairo.pro.br

27/33

No caso, antes de dar o comando wget foi usado o comando cd, isto para baixar o arquivo
index.html de 192.168.10 para o diretrio local /tmp.
Caso haja um proxy no meio do caminho, que o caso de acesso internet a partir dos
laboratrios acadmicos da Uninove, precisa antes passar a instruo de usurio e senha para o
wget, e isso feito com o comando export:

shell#exporthttp_proxy=http://RA:SENHA@186.251.39.196:3128

Onde:
RA:
SENHA:
186.251.39.196:

o RA do aluno;
a senha de acesso do aluno;
o IP do servio proxy, que atende na porta 3128 ( um Squid).

9 - GERENCIAMENTO DE PACOTES

9.1 - Gerenciamento de pacotes no Linux CentOS


Nas distribuies Linux, pacote um arquivo contendo um conjunto de arquivos, que podem
ser executveis, configuraes, documentos, bibliotecas, etc. A funo do pacote garantir uma
maneira prtica de instalar, remover e atualizar o sistema operacional e suas aplicaes.
Usualmente quem cria e mantm esses pacotes a prpria distribuio Linux. Normalmente,
a mdia de instalao do Linux contm pacotes a serem instalados.
O CentOS o sistema operacional usado no laboratrio acadmico. CentOS significa
Community ENTerprise Operating System. Na prtica, o CentOS se alimenta do cdigo fonte
disponibilizado pela Red Hat: toda vez que a Red Hat lana uma nova verso, o seu cdigo fonte
"reempacotado" com pequenas modificaes para criar uma nova verso do CentOS. A lgica por
trs dessa cpia que o CentOS permite instalao e atualizao do sistema e aplicaes mesmo
sem pagamento de licena de uso.
De um modo geral, os pacotes de instalao e atualizao do Red Hat so os mesmos do
CentOS, propositalmente mantidos compatveis.
Os comandos para gerenciar pacotes no Red Hat so rpm e yum.
Como exemplo de utilizao dos comandos rpm e yum ser utilizado o pacote rpm
nmap-5.51-1.i386.rpm. Repare que o pacote um arquivo.

GNU/LINUX

www.jairo.pro.br

28/33

9.1.1 - rpm
Para checar se o pacote j est instalado, comandar:
shell$ rpm -aq | grep nmap

se houvesse algum pacote instalado que contivesse a palavra nmap, seria mostrado.
Depois de baixar o arquivo nmap-5.51-1.i386.rpm, para saber quais arquivos esse pacote
contm, comandar:
shell$ rpm -qlp nmap-5.51-1.i386.rpm
/usr/bin/ndiff
/usr/bin/nmap
/usr/share/doc/nmap-5.51
/usr/share/doc/nmap-5.51/COPYING
/usr/share/doc/nmap-5.51/README
/usr/share/doc/nmap-5.51/nmap.usage.txt
/usr/share/man/de/man1/nmap.1.gz
...

Para instalar um pacote rpm, comandar:


root# rpm -ivh nmap-5.51-1.i386.rpm
Preparando

########################################### [100%]

1:nmap

########################################### [100%]

Para excluir um pacote rpm que j esteja instalado, comandar:


root# rpm -e nmap-5.51-1.i386

para atualizar um pacote que j esteja instalado, comandar:


root# rpm -Uvh nmap-5.51-1.i386

GNU/LINUX

www.jairo.pro.br

29/33

9.1.2 - yum
O yum faz o mesmo gerenciamento de pacotes que o comando rpm, o diferencial que o
yum busca pelo[s] pacote[s] ncessrio[s] para a instalao em algum repositrio de pacotes na
internet. Mais interessante, alguns pacotes para serem instalados necessitam de pr-requisitos, e
nesse caso o prprio yum faz os downloads e instalaes sozinho. Se fosse o comando rpm, ele
pararia a instalao e diria que est faltando algum pacote que pr-requisito para aquela
instalao.
Para instalar algum pacote com o yum, comandar:
root# yum install nmap
Plugins carregados: refresh-packagekit
---> Pacote nmap-5.51-1.i386.rpm definido para ser atualizado
Tamanho total do download: 2.4 M
Correto? [s/N]:s
Baixando pacotes:
nmap-5.51-1.i386.rpm

| 2.4 MB

00:20

Executando o rpm_check_debug
Instalando

: 2: nmap-5.51-1.i386.rpm

1/1

Instalados:
nmap-5.51-1.i386.rpm

O yum tambm poderia ser usado para atualizar um pacote. Por exemplo:
root# yum update nmap

Mas para que o yum funcione a contento, precisa ser definido quais so os endereos de
repositrios de pacotes na internet, que sero usados para download. Essa configurao est no
arquivo "/etc/yum.conf". Normalmente, esse arquivo no precisa ser configurado, pois se for
necessrio adicionar um novo site repositrio basta incluir um arquivo de configurao adicional no
diretrio "/etc/yum.repos.d".
Por exemplo, o arquivo "/etc/yum.repos.d/CentOS-Base.repo" contm, entre outras
coisas, o seguinte contedo:

GNU/LINUX

www.jairo.pro.br

30/33

----- CentOS-Base.repo ------------------------------------------------------------------------------...


[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
#released updates
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
protect=1
...
-------------------------------------------------------------------------------------------------------------

9.2 - Gerenciamento de pacotes no Linux Ubuntu


A distribuio Ubuntu derivada do Debian, portanto o gerenciamento de pacotes, para
instalao, feito com o comando apt-get.
O comando apt-get l o arquivo de configurao /etc/apt/sources.list para determinar os
locais com repositrio de pacotes para instalao.
Normalmente, a configurao em sources.list est correta, porm com frequncia d erro
na instalao pois aparece na primeira linha uma configurao do tipo:
deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/
lenny contrib main
indicando que apt-get est configurado para buscar pacotes na mdia de cd-rom, mas que no se
encontra no drive no momento.
Se este for o caso, a soluo ento editar o arquivo sources.list e comentar essa linha
[colocar uma cerquilha "#" na frente da linha]:
# deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/
lenny contrib main
Depois disso necessrio atualizar o database de repositrios com o comando:

GNU/LINUX

www.jairo.pro.br

31/33

shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
shell# apt-get update

Agora, o comando para instalao de pacotes dever funcionar.


Por exemplo, para instalar o pacote nmap, comandar:
shell# apt-get install nmap

NOTA:
Para instalar pacotes precisa ser root. O jeito simples de adquirir poderes de root com o comando
sudo. Por exemplo:
shell$ id
uid=1000(aluno) gid=1000(users) grupos=1000(users)
shell$ sudo su
[sudo] password for aluno:
shell# id
uid=0(root) gid=0(root) grupos=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)

Aps enviar a senha de aluno, o usurio ganha o shell de root, como pode ser verificado com
o smbolo do shell que agora uma cerquilha "#".
O comando apt-get normalmente instala pacotes disponibilizados em repositrios na
internet, por isso muito prtico.
Porm, pode ser o caso de no haver acesso internet, ento a aplicao poderia ser
instalada direta de um pacote ".deb" no CD-ROM.
Para usar o CD-ROM [ou DVD] como local de repositrio de pacote, usar o comando aptcdrom para declarao o CD-ROM como repositrio:
shell# apt-cdrom add

Tambm poderia ser o caso de querer instalar a aplicao diretamente de um arquivo

GNU/LINUX

www.jairo.pro.br

32/33

".deb", nesse caso pode ser usado o comando dpkg:


shell# dpkg -i nmap-4.76.deb

onde -i a opo para instalar a aplicao nmap do arquivo local nmap-4.76.deb. Para remover
usar a opo -r.
Para saber se determinada aplicao est disponvel para instalao via apt, usar o comando
apt-cache para descobrir:
shell# apt-cache search nmap

que vai mostrar pacotes disponveis que contm o nome nmap.


O comando apt-key serve para gerenciar uma lista de chaves usadas pelo apt para
autenticar pacotes. Pacotes autenticados por essas chaves so considerados confiveis.
Existe tambm o aptitude, que uma aplicao para instalar e remover pacotes.

9.3 - Gerenciamento de pacotes no Unix em geral


O gerenciamento de pacotes usa diferentes comandos para os diferentes sistemas
operacionais da famlia Unix.
No Solaris usa-se pkgadd e pkgrm para adicionar e remover pacotes. Para obter
informaes sobre pacotes instalados, usado o comando pkginfo.
No AIX tambm tem o gerenciador de pacotes rpm, igual ao do Linux. Mas nesse sistema
bastante comum usar o comando smitty [ou smit], que a ferramenta padro de
administrao/configurao do sistema.
Por exemplo, para instalar, entrar no diretrio onde est o pacote e comandar:
shell# smitty install

que o comando vai oferecer uma seleo de file sets para instalar.

GNU/LINUX

www.jairo.pro.br

33/33

Você também pode gostar