Upload
flavio
View
99
Download
10
Embed Size (px)
Citation preview
Administrao de SistemasLinux Ari Frazo Jr.
Marcelo Braga
Ari Frazo Jr.
Marcelo Braga
Administrao de Sistemas Linux
Ari Frazo Jr.Marcelo Braga
Rio de JaneiroEscola Superior de Redes2013
Administrao de Sistemas Linux
Copyright 2013 Rede Nacional de Ensino e Pesquisa RNP Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ
Diretor Geral Nelson Simes
Diretor de Servios e Solues Jos Luiz Ribeiro Filho
Escola Superior de Redes
Coordenao Luiz Coelho
Edio Pedro Sangirardi
Reviso Tcnica Francisco Marcelo Lima
Coordenao Acadmica de Administrao de Sistemas Sergio Alves de Souza
Equipe ESR (em ordem alfabtica) Celia Maciel, Cristiane Oliveira, Derlina Miranda, Edson Kowask, Elimria Barbosa, Lourdes Soncin, Luciana Batista, Luiz Carlos Lobato e Renato Duarte
Capa, projeto visual e diagramao Tecnodesign
Verso 1.1.0
Este material didtico foi elaborado com fins educacionais. Solicitamos que qualquer erro encon-trado ou dvida com relao ao material ou seu uso seja enviado para a equipe de elaborao de contedo da Escola Superior de Redes, no e-mail [email protected]. A Rede Nacional de Ensino e Pesquisa e os autores no assumem qualquer responsabilidade por eventuais danos ou perdas, a pessoas ou bens, originados do uso deste material. As marcas registradas mencionadas neste material pertencem aos respectivos titulares.
Distribuio Escola Superior de Redes Rua Lauro Mller, 116 sala 1103 22290-906 Rio de Janeiro, RJ http://esr.rnp.br [email protected]
Dados Internacionais de Catalogao na Publicao (CIP)
F848a Frazo Jnior, Ari Administrao de sistemas Linux / Ari Frazo Jnior, Marcelo Braga. Rio de Janeiro: RNP/ESR, 2012. 238 p. : il. ; 28 cm.
Bibliografia: p. 219. ISBN 978-85-63630-20-9
1. Linux (Sistema operacional de computador). 2. Sistema operacional (computadores). 3. Manuteno de software. I. Braga, Marcelo. II. Ttulo.
CDD 005.43
iii
Sumrio
1. Introduo ao sistema operacional Linux
Introduo1
Atribuies de um administrador de sistemas1
Requisitos do administrador de sistemas2
Histrico3
Slackware 4
Red Hat Enterprise Linux4
Debian5
Suse5
Mandriva5
Fedora5
CentOS5
Ubuntu5
Arquitetura6
Kernel6
Biblioteca de funes padro9
Shell9
Aplicaes10
Sistema de arquivos10
Inode11
Tipos de arquivos12
Arquivo regular13
Diretrios13
Arquivo de dispositivo13
Socket14
Named pipe 14
iv
Link15
Exerccio de fixao 1 Identificando tipos de arquivos18
Comando ls18
Permisses de arquivos19
Bits de permisso19
Exerccio de fixao 2 Anlise de permisses20
Bits especiais20
Comando chmod mudando permisses 21
Exerccio de fixao 3 Alterando permisses de arquivo 23
Comando umask23
Roteiro de Atividades 125
Atividade 1.1 Identificando bits de permisso25
Atividade 1.2 Identificando e entendendo hard links25
Atividade 1.3 Conhecendo diferenas entre hard link e symbolic link25
Atividade 1.4 Trabalhando com hard link e symbolic link26
Atividade 1.5 Conhecendo limitaes do hard link26
Atividade 1.6 Criando links para diretrios26
Atividade 1.7 Alterando permisses de arquivos e diretrios26
Atividade 1.8 Atribuindo as permisses padres27
Atividade 1.9 Entendendo as permisses padres27
2. Usurios e grupos
Introduo29
Grupos30
Arquivo /etc/gshadow31
Exerccio de fixao 1 Arquivos de administrao de grupo32
Usurios32
Problemas de segurana33
Shadow passwords 33
Exerccio de fixao 2 Arquivos de administrao de usurios34
Tipos de contas de usurios34
Senhas35
Criando contas de usurios35
Criar entrada nos arquivos /etc/group e /etc/gshadow36
Criar entrada nos arquivos /etc/passwd e /etc/shadow36
Definir senha inicial 38
vCriar diretrio de trabalho38
Copiar arquivos de inicializao39
Criar cota de uso de disco39
Testar nova conta39
Administrando grupos40
Criando grupos40
Modificando grupos40
Removendo grupos40
Administrando contas de usurios41
Criando contas de usurios41
Modificando contas de usurios42
Desabilitando contas de usurios42
Removendo contas de usurios43
Monitorando usurios43
Roteiro de Atividades 245
Atividade 2.1 Criando contas de usurios45
Atividade 2.2 Verificando e modificando informaes de contas de usurio45
Atividade 2.3 Criando grupos de usurios46
Atividade 2.4 Incluindo usurios em grupos secundrios46
Atividade 2.5 Bloqueando contas de usurios46
Atividade 2.6 Removendo uma conta de usurio manualmente46
Atividade 2.7 Obtendo informaes sobre usurios47
Atividade 2.8 Removendo contas de usurios47
Atividade 2.9 Alterando o grupo a que um arquivo pertence47
Atividade 2.10 Alterando permisses de acesso de arquivos47
3. Processos
Processos49
Tipos de processos50
Componentes de um processo50
Ciclo de vida de um processo52
Multiprocessamento54
Daemon56
Alternando execues56
Estados de um processo57
Prioridades e escalonamento de processos58
vi
Uso de sinais61
Monitoramento de processos62
Exerccio de fixao 1 Monitoramento de processos63
Execuo peridica de tarefas63
Cron64
Exerccio de fixao 2 Utilizando crontab65
Anacron65
Fcron66
Roteiro de Atividades 367
Atividade 3.1 Descobrindo o nmero de processos em execuo67
Atividade 3.2 Descobrindo o PID e o PPID de um processo67
Atividade 3.3 Estados dos processos67
Atividade 3.4 Alternando a execuo de processos67
Atividade 3.5 Identificando o RUID e o EUID de um processo67
Atividade 3.6 Definindo a prioridade de processos67
Atividade 3.7 Editando arquivos crontab para o agendamento de tarefas68
Atividade 3.8 Agendando uma tarefa no daemon cron68
Atividade 3.9 Listando e removendo arquivos crontab68
Atividade 3.10 Entendendo o comando exec68
4. Sistema de arquivos
Estrutura dos discos69
Exerccio de fixao 1 Estrutura de diretrios71
Tipos de partio71
Sistema de arquivos72
Comandos74
Tipos de sistemas de arquivos suportados77
Exerccio de fixao 2 Sistemas de arquivos77
Exerccio de fixao 3 Comando mkfs77
Sistema de quotas77
Preparando o sistema78
Habilitando78
Inicializando79
Editando quotas80
Verificao e gerenciamento81
vii
Roteiro de Atividades 483
Atividade 4.1 Trabalhando com sistema de arquivos em pen drives83
Atividade 4.2 Obtendo informaes sobre sistemas de arquivos e parties83
Atividade 4.3 Determinando o espao utilizado por um diretrio84
Atividade 4.4 Criando uma nova partio e definindo um novo sistema de arquivos84
Atividade 4.5 Trabalhando com o sistema de quotas84
5. Backup
Introduo87
Tipos de backup88
Mdias de backup88
Fitas magnticas89
Mdias pticas90
Storage91
Exerccio de fixao 1 Storages95
Comandos do sistema95
Comando tar95
Comando cpio96
Comando dump97
Comando rsync97
Comandos gzip/gunzip e bzip2/bunzip298
Exerccio de fixao 2 Comandos do sistema98
Softwares de backup gratuitos98
Amanda98
Bacula106
Pacotes comerciais119
Polticas de backup120
Cuidados no armazenamento das mdias121
Exerccio de fixao 3 Softwares de backup122
Roteiro de Atividades 5123
Atividade 5.1 Utilizando tar para fazer backup123
Atividade 5.2 Utilizando dump e restore para fazer backup123
Atividade 5.3 Utilizando tar para clonar uma estrutura de diretrio124
Atividade 5.4 Fazendo backup remoto com rsync124
Atividade 5.5 Agendando rotinas de backup124
viii
Atividade 5.6 Fazendo backup com Amanda124
Atividade 5.7 Fazendo backup com Bacula125
6. Servio de impresso
Introduo127
Histrico127
Arquitetura do sistema de impresso128
Softwares gerenciadores de impresso129
Line Printer Daemon (LPD)129
LPRng131
CUPS131
Exerccio de fixao 1 Verificando os dispositivos suportados134
Exerccio de fixao 2 Verificando as impressoras definidas no sistema137
Roteiro de Atividades 6139
Atividade 6.1 Definindo uma impressora local139
Atividade 6.2 Testando a impressora139
Atividade 6.3 Definindo uma impressora remota139
Atividade 6.4 Definindo quotas de impresso139
Atividade 6.5 Restringindo o uso de impressoras139
Atividade 6.6 Desabilitando a impresso de jobs139
Atividade 6.7 Suspendendo a submisso de jobs139
Atividade 6.8 Criando classes de impressoras139
Atividade 6.9 Removendo impressoras140
Atividade 6.10 Utilizando a interface web do CUPS140
Atividade 6.11 Instalando uma impressora no Windows 7140
7. Registro de eventos
Introduo141
Sysklogd142
Syslogd142
Exerccio de fixao 1 Exibindo mensagens de eventos nos terminais145
Klogd146
Rsyslog 147
Syslog-ng148
ix
Rotacionamento de arquivos de log151
Arquivo de configurao do logrotate152
Comando logger153
Servidor de logs153
Configurando os servidores clientes154
Aplicativos para anlise de arquivos de log155
Logwatch155
Swatch 157
Logcheck158
Recomendaes bsicas de segurana160
Exerccio de fixao 2 Configurao do syslog161
Exerccio de fixao 3 Vantagens do syslog-ng161
Roteiro de Atividades 7163
Atividade 7.1 Analisando os arquivos de log do sistema163
Atividade 7.2 Analisando os arquivos de log binrios do sistema163
Atividade 7.3 Registrando eventos do kernel separadamente163
Atividade 7.4 Rsyslog164
Atividade 7.5 Syslog-ng164
Atividade 7.6 Rotacionando os arquivos de log do sistema164
Atividade 7.7 Utilizando o logger164
Atividade 7.8 Armazenando arquivos de log remotamente164
Atividade 7.9 Aplicativos para anlise de arquivos de log165
Atividade 7.10 Recomendaes bsicas de segurana165
8. Boot & shutdown e kernel
Inicializao do sistema167
Basic Input/Output System (BIOS)168
Carregadores de boot (boot loaders)168
Iniciando o kernel172
Processo init172
Exerccio de fixao 1 Modificando o nvel de execuo com o comando telinit176
Shutdown176
Exerccio de fixao 2 Desligando o sistema com o comando shutdown177
Arquitetura do kernel177
Kernel monoltico178
Kernel modular ou hbrido178
xConfigurando os componentes do kernel179
Opes de componentes180
Compilando o kernel181
Instalando o kernel182
Habilitando o kernel183
Testando o kernel185
Roteiro de Atividades 8187
Atividade 8.1 Usando dmesg para visualizar as mensagens do boot187
Atividade 8.2 Alterando o nvel de execuo do sistema187
Atividade 8.3 Definindo opes de boot do sistema187
Atividade 8.4 Configurando e compilando o kernel187
9. Segurana bsica e procedimentos operacionais
Segurana bsica189
Problemas bsicos de segurana190
Analisadores de senhas191
Contas compartilhadas192
Exerccio de fixao 1 Identificando senhas fracas192
SUID e SGID193
Atualizao de software193
Exerccio de fixao 2 Gerenciador de pacotes RPM195
Exerccio de fixao 3 Gerenciador de pacotes APT196
Procedimentos operacionais196
Poltica de utilizao de recursos197
Informaes sobre os novos usurios198
Atendimento aos usurios199
Controle de recursos computacionais200
Diagnstico de falhas201
Rotina de backup202
Roteiro de Atividades 9205
Atividade 9.1 Descobrindo a funcionalidade do bit SGID em diretrios205
Atividade 9.2 Instalando um novo software com RPM205
Atividade 9.3 Obtendo informaes sobre os recursos computacionais205
Atividade 9.4 Controlando os recursos dos usurios205
xi
10. Webmin
Caractersticas gerais207
Instalao208
Perl209
OpenSSL209
Net_SSLeay.pm210
Webmin211
Interface de administrao212
Mdulos213
Usermin214
Roteiro de Atividades 10217
Atividade 10.1 Criando um usurio para o Webmin217
Atividade 10.2 Administrando contas e grupos217
Atividade 10.3 Alterando a prioridade do processo do Webmin217
Atividade 10.4 Agendando backups217
Atividade 10.5 Adicionando impressoras218
Atividade 10.6 Direcionando o registro de eventos para um servidor remoto218
Atividade 10.7 Configurando o rotacionamento de logs218
Atividade 10.8 Configurando o nvel de execuo e inicializao de servios218
Bibliografia 219
xii
xiii
A Escola Superior de Redes (ESR) a unidade da Rede Nacional de Ensino e Pesquisa (RNP)
responsvel pela disseminao do conhecimento em Tecnologias da Informao e
Comunicao (TIC). A ESR nasce com a proposta de ser a formadora e disseminadora de
competncias em TIC para o corpo tcnico-administrativo das universidades federais,
escolas tcnicas e unidades federais de pesquisa. Sua misso fundamental realizar a
capacitao tcnica do corpo funcional das organizaes usurias da RNP, para o exerc-
cio de competncias aplicveis ao uso eficaz e eficiente das TIC.
A ESR oferece dezenas de cursos distribudos nas reas temticas: Administrao e Projeto
de Redes, Administrao de Sistemas, Segurana, Mdias de Suporte Colaborao Digital
e Governana de TI.
A ESR tambm participa de diversos projetos de interesse pblico, como a elaborao
e execuo de planos de capacitao para formao de multiplicadores para projetos
educacionais como: formao no uso da conferncia web para a Universidade Aberta do
Brasil (UAB), formao do suporte tcnico de laboratrios do Proinfo e criao de um con-
junto de cartilhas sobre redes sem fio para o programa Um Computador por Aluno (UCA).
A metodologia da ESRA filosofia pedaggica e a metodologia que orientam os cursos da ESR so baseadas na
aprendizagem como construo do conhecimento por meio da resoluo de problemas tpi-
cos da realidade do profissional em formao. Os resultados obtidos nos cursos de natureza
terico-prtica so otimizados, pois o instrutor, auxiliado pelo material didtico, atua no
apenas como expositor de conceitos e informaes, mas principalmente como orientador do
aluno na execuo de atividades contextualizadas nas situaes do cotidiano profissional.
A aprendizagem entendida como a resposta do aluno ao desafio de situaes-problema
semelhantes s encontradas na prtica profissional, que so superadas por meio de anlise,
sntese, julgamento, pensamento crtico e construo de hipteses para a resoluo do pro-
blema, em abordagem orientada ao desenvolvimento de competncias.
Dessa forma, o instrutor tem participao ativa e dialgica como orientador do aluno para as
atividades em laboratrio. At mesmo a apresentao da teoria no incio da sesso de apren-
dizagem no considerada uma simples exposio de conceitos e informaes. O instrutor
busca incentivar a participao dos alunos continuamente.
Escola Superior de Redes
xiv
As sesses de aprendizagem onde se do a apresentao dos contedos e a realizao das
atividades prticas tm formato presencial e essencialmente prtico, utilizando tcnicas de
estudo dirigido individual, trabalho em equipe e prticas orientadas para o contexto de atua-
o do futuro especialista que se pretende formar.
As sesses de aprendizagem desenvolvem-se em trs etapas, com predominncia de tempo
para as atividades prticas, conforme descrio a seguir:
Primeira etapa: apresentao da teoria e esclarecimento de dvidas (de 60 a 90 minutos). O instrutor apresenta, de maneira sinttica, os conceitos tericos correspondentes ao tema
da sesso de aprendizagem, com auxlio de slides em formato PowerPoint. O instrutor
levanta questes sobre o contedo dos slides em vez de apenas apresent-los, convidando
a turma reflexo e participao. Isso evita que as apresentaes sejam montonas e que o
aluno se coloque em posio de passividade, o que reduziria a aprendizagem.
Segunda etapa: atividades prticas de aprendizagem (de 120 a 150 minutos). Esta etapa a essncia dos cursos da ESR. A maioria das atividades dos cursos assncrona e
realizada em duplas de alunos, que acompanham o ritmo do roteiro de atividades proposto
no livro de apoio. Instrutor e monitor circulam entre as duplas para solucionar dvidas e
oferecer explicaes complementares.
Terceira etapa: discusso das atividades realizadas (30 minutos). O instrutor comenta cada atividade, apresentando uma das solues possveis para
resolv-la, devendo ater-se quelas que geram maior dificuldade e polmica. Os alunos so
convidados a comentar as solues encontradas e o instrutor retoma tpicos que tenham
gerado dvidas, estimulando a participao dos alunos. O instrutor sempre estimula os
alunos a encontrarem solues alternativas s sugeridas por ele e pelos colegas e, caso
existam, a coment-las.
Sobre o curso Este curso fornece o conhecimento e as habilidades necessrias para administrar com
xito e suportar um servidor baseado no sistema operacional Linux. Atravs de uma srie
de atividades prticas, voc aprender a criar e configurar novas instalaes do Linux, bem
como solucionar problemas e apoiar as instalaes existentes. Voc tambm aprender
importantes tarefas administrativas, incluindo o gerenciamento de usurios e grupos,
a criao de sistemas de arquivos e backup, servios de impresso para Unix e clientes
Windows, registro de eventos e configurao e construo do kernel do Linux, o ncleo do
sistema operacional.
A quem se destinaIndicado para analistas de suporte e responsveis pela manuteno de servidores e espe-
cialistas que desejem aprofundar os conhecimentos para se tornarem administradores
de sistemas Linux. Administradores de sistemas que precisam gerenciar sistemas Linux tambm se beneficiaro deste curso, assim como os profissionais que pretendem iniciar os
estudos para a certificao LPI, do Linux Professional Institute.
xv
Convenes utilizadas neste livroAs seguintes convenes tipogrficas so usadas neste livro:
Itlico Indica nomes de arquivos e referncias bibliogrficas relacionadas ao longo do texto.
Largura constante
Indica comandos e suas opes, variveis e atributos, contedo de arquivos e resultado da
sada de comandos. Comandos que sero digitados pelo usurio so grifados em negrito
e possuem o prefixo do ambiente em uso (no Linux normalmente # ou $, enquanto no
Windows C:\).
Contedo de slide Indica o contedo dos slides referentes ao curso apresentados em sala de aula.
Smbolo Indica referncia complementar disponvel em site ou pgina na internet.
Smbolo Indica um documento como referncia complementar.
Smbolo Indica um vdeo como referncia complementar.
Smbolo Indica um arquivo de adio como referncia complementar.
Smbolo Indica um aviso ou precauo a ser considerada.
Smbolo Indica questionamentos que estimulam a reflexo ou apresenta contedo de apoio ao
entendimento do tema em questo.
Smbolo Indica notas e informaes complementares como dicas, sugestes de leitura adicional ou
mesmo uma observao.
Permisses de usoTodos os direitos reservados RNP. Agradecemos sempre citar esta fonte quando incluir parte deste livro em outra obra. Exemplo de citao: FRAZO JNIOR, Ari; BRAGA, Marcelo Castellan. Administrao de Siste-mas Linux. Rio de Janeiro: Escola Superior de Redes, 2013.
xvi
Comentrios e perguntasPara enviar comentrios e perguntas sobre esta publicao: Escola Superior de Redes RNP Endereo: Av. Lauro Mller 116 sala 1103 Botafogo Rio de Janeiro RJ 22290-906 E-mail: [email protected]
Sobre os autoresAri Frazo Jr. bacharel em Cincia da Computao pela Universidade Federal da Paraba (UFPB) e mestre em Cincia da Computao, na rea de redes de computadores, pela Uni-
versidade Federal de Pernambuco (UFPE). Atualmente responsvel pelas reas de enge-
nharia e operaes da Rede Nacional de Ensino e Pesquisa (RNP), onde atua desde 1993.
Marcelo Castellan Braga possui graduao em Engenharia Eletrnica pelo CEFET-RJ, ps-graduao em Anlise, Projeto e Gerncia de Sistemas pela PUC-RJ e mestrado em
informtica pela UNIRIO. Atualmente scio diretor da MCB Tech, empresa que presta con-
sultoria em redes de computadores, servios de internet, segurana de dados e desenvolvi-
mento de software. Atuou durante mais de 10 anos na rea de TI em empresas como Rede
Nacional de Ensino e Pesquisa (RNP) e Embratel.
Sergio Ricardo Alves de Souza possui mais de 35 anos de experincia na rea de Adminis-trao e Suporte de Sistemas. Trabalhou em empresas como: Burroughs (UNISYS), ARSA
(Infraero), Cobra Computadores, LNCC e outras. Consultoria e treinamento em empresas
como: Fiocruz, Jardim Botnico, Museu Goeldi, Cefet-MG, IBM Brasil. Participou do desen-
volvimento e implantao de cursos profissionalizantes em Informtica em Petrpolis -
FAETC. Participou do projeto de criao do Instituto Superior de Tecnologia em Cincia da
Computao de Petrpolis. Possui Notrio Saber em Informtica pelo LNCC.
1 C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
obje
tivos
conceitos
1Introduo ao sistema operacional Linux
Conhecer o histrico e a arquitetura do Unix e do Linux.
Sistema operacional Linux e permisso e sistema de arquivos.
IntroduoUma das caractersticas mais marcantes do ser humano a capacidade de se organizar para
tirar o melhor proveito de seus trabalhos e garantir que tudo funcione de maneira correta.
Isso pode ser observado em empresas, escritrios, lojas, cinemas e at mesmo nos lares.
Da mesma forma que um administrador de empresas administra e gerencia uma empresa,
um administrador de sistemas responsvel por administrar e gerenciar os recursos com-
putacionais de uma organizao.
A informatizao crescente nas instituies pblicas e privadas, a disseminao de diversas
tecnologias de redes e o uso cada vez maior de sistemas integrados de gesto fazem da
administrao de sistemas uma atividade complexa e de importncia estratgica para as
organizaes. Portanto, para atuar nessa rea, o administrador de sistemas deve possuir o
conhecimento e a experincia necessrios para assegurar que os sistemas de uma organi-
zao estejam sempre disponveis, seguros e com desempenho adequado para executar
as operaes de que a organizao necessita para atingir seus objetivos. Um bom adminis-
trador de sistemas deve aliar conhecimento tcnico e do negcio da empresa para conseguir
tirar o melhor proveito possvel dos recursos computacionais sob sua responsabilidade.
Apesar de existir desde a poca dos mainframes, a rea de administrao de sistemas
sofreu um grande impacto com o advento da microinformtica, das redes de computadores
e das tecnologias associadas internet. Este curso, de carter essencialmente prtico, foi
criado para explorar os conceitos e prticas mais importantes da administrao de sistemas
Linux, representando a primeira etapa na formao de um administrador de sistemas.
Atribuies de um administrador de sistemasq 1 Responsabilidade pelos recursos computacionais.
1 Instalar, configurar e manter o hardware dos equipamentos.
2 Ad
min
istr
ao
de
Sist
emas
Lin
ux
q 1 Instalar, configurar e manter atualizados e seguros os softwares utilizados pela empresa. 1 Interligar de maneira eficaz os recursos computacionais que funcionam em rede.
1 Administrar contas de usurios (cadastro, atualizao e remoo).
1 Fazer e restaurar backup.
1 Monitorar atividades do sistema, ajustando-as para o mximo desempenho.
1 Solucionar problemas de software e hardware.
1 Manter documentao atualizada sobre os sistemas.
1 Desenvolver scripts para automao de tarefas.
1 Garantir a segurana de rede de um modo geral.
1 Prestar atendimento aos usurios dos sistemas.
Um administrador de sistemas deve ser capaz de instalar, configurar e manter operacional
toda a infraestrutura de TI (servidores, estaes de trabalho, impressoras, dispositivos de
armazenamento, equipamentos de conectividade etc.); instalar, configurar, manter atu-
alizado e seguro todo o software necessrio para o funcionamento correto dos sistemas
operacionais e aplicativos; interligar os recursos computacionais que funcionam em rede,
configurando os equipamentos de modo adequado; elaborar e executar uma poltica de
backup adequada; elaborar polticas de uso dos recursos de TI; executar e controlar as
operaes de gerenciamento de contas de usurios nos sistemas corporativos, bem como
suas permisses de acesso aos recursos destes sistemas; controlar e supervisionar o
uso dos recursos computacionais para assegurar que sejam utilizados de forma segura e
adequada; diagnosticar e solucionar as situaes de falha no funcionamento e na operao
dos recursos computacionais que compem os sistemas; auxiliar os usurios, esclarecendo
dvidas e orientando-os na busca de solues mais adequadas s suas necessidades.
claro que existem sistemas computacionais de portes e fins muito diferentes, variando
desde uma pequena rede local para uso administrativo em uma microempresa at uma
rede de computadores abrangendo diversos pases, em uma empresa multinacional.
Naturalmente, o porte e o conhecimento da equipe de administrao de sistemas devero
estar adaptados a essas diferentes situaes, embora suas atribuies sejam basicamente
as descritas acima.
Requisitos do administrador de sistemasq 1 Conhecimento tcnico.
1 Experincia.
1 Aperfeioamento constante.
1 Entendimento dos objetivos e metas da empresa.
1 Conhecimento das necessidades dos usurios.
Entre as diversas caractersticas desejveis em um administrador de sistemas podemos
destacar: conhecimento tcnico aprofundado e abrangente da rea, o que requer constante
atualizao; entendimento dos objetivos e metas da instituio; conhecimento das necessi-
dades dos usurios; capacidade de diagnosticar e resolver problemas, o que depende de sua
experincia prtica; capacidade de trabalhar em equipe e de se relacionar com pessoas, para
proporcionar um bom atendimento aos usurios; capacidade de organizao; pr-atividade e
senso de responsabilidade, para assegurar que todas as tarefas programadas sejam adequa-
damente priorizadas e executadas. Sem isso, a carreira profissional de um administrador de
sistemas estar seriamente comprometida.
3 C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Histricoq 1 1964
2 AT&T, GE e MIT: projeto para criao de um novo sistema operacional (Multics).
1 1969
2 Incio do Unix na Bell Labs da AT&T.
1 1973
2 Unix reescrito na linguagem C.
2 Novo cdigo-fonte.
1 1977
2 Incio da distribuio BSD.
Em 1964, o Bell Labs da AT&T, a GE e o MIT formaram um grupo de pesquisadores para
desenvolver um sistema operacional para o mainframe GE-645 que foi batizado de Multics.
Este projeto, no entanto, no foi muito bem-sucedido e devido a interesses divergentes o
Bell Labs o abandonou em 1969. Neste mesmo ano, Ken Thompson, um de seus pesquisa-
dores envolvido no projeto de criao do Multics, iniciou o projeto de um novo sistema ope-
racional baseado no Multics e escrito em linguagem assembly. Este sistema foi inicialmente
batizado de Unics e mais tarde teve seu nome alterado para Unix.
Em 1973, com a ajuda de Dennis Ritchie, outro pesquisador do Bell Labs, Thompson
reescreveu o Unix em uma linguagem de programao de alto nvel, chamada C, que foi
desenvolvida pelo prprio Ritchie. Como a AT&T no atuava comercialmente na rea de
computao, o Bell Labs fornecia a licena de uso do Unix para as universidades interes-
sadas, juntamente com o cdigo-fonte. Isso gerou verses diferentes do sistema, medida
que as modificaes no cdigo eram feitas nas universidades e no prprio Bell Labs.
A falta de padronizao foi to grande que, no final dos anos 80, havia vrias verses de
Unix totalmente incompatveis, baseadas em duas distribuies principais: o System V, da
AT&T, e o BSD, da Universidade da Califrnia em Berkeley. A distribuio BSD contribuiu
para a disseminao da internet por ter desenvolvido e implementado a pilha de proto-
colos TCP/IP em seu sistema.
qDcada de 80: 1 System V (AT&T).
1 Incorporao do protocolo TCP/IP distribuio BSD (Berkeley).
1 Diferentes verses geradas pela distribuio do cdigo.
1 Padronizao bsica Portable Operating System Interface (POSIX) nos padres IEEE.
1 Disputa comercial gerou: AIX, HP-UX, XENIX, IRIX, SunOS, entre outros.
1 Incio do projeto GNU de Richard Stallman.
Embora a necessidade de padronizao fosse muito grande, as tentativas feitas nesse
sentido falharam. Em 1988 o Institute of Electrical and Electronics Engineers (IEEE) elaborou
a proposta do Portable Operating System Interface (POSIX), que permitiu uma padronizao
bsica das muitas verses existentes. No entanto, diferenas continuaram existindo devido
aos interesses comerciais dos grandes fabricantes de computadores, originando diversas
verses comerciais do Unix como: AIX da IBM, HP-UX da HP, XENIX da Microsoft e IRIX da
Silicon Graphics, todas baseadas na distribuio System V e SunOS da Sun e Tru64 da Digital
Equipment Corporation, baseadas na distribuio BSD. Alm disso, surgiram verses livres
de Unix como FreeBSD, NetBSD e OpenBSD, todas baseadas na distribuio BSD.
4 Ad
min
istr
ao
de
Sist
emas
Lin
ux
Nesse contexto, em 1984, Richard Stallman comeou um projeto para criar um sistema ope-
racional compatvel com o Unix, batizado de GNU. Stallman e um grupo de programadores
comearam a desenvolver os principais componentes do sistema, como compiladores e
editores de texto.
qDcada de 90: 1 Linus Torvalds desenvolve o kernel do Linux.
1 Criao do sistema operacional GNU/LinuxI.
1 Verses livres baseadas na distribuio BSD: FreeBSD, OpenBSD e NetBSD.
1 Primeiras distribuies do Linux (Slackware, Red Hat, Debian, SUSE).
Em 1991 o GNU j possua diversos componentes, mas ainda no tinha um kernel funcional.
Em paralelo a isso, em 1990 o ento estudante de cincias da computao, o finlands
Linus Torvalds comeou a desenvolver um sistema prprio, baseado no MINIX, um sistema
operacional desenvolvido por Andrew Tanenbaum, baseado no Unix e utilizado em cursos
de computao nas universidades. Linus estava insatisfeito com o MINIX e comeou seu
projeto inicialmente para rodar somente em seu computador, um 80386. Em pouco tempo,
Linus j tinha uma verso de kernel funcional e em 1991 resolveu divulgar comunidade seu
projeto, que foi batizado de Linux. O Linux era basicamente um kernel e o GNU, um conjunto
de aplicaes. Em pouco tempo os dois projetos se juntaram formando o sistema opera-
cional GNU/Linux (muitas vezes referenciado somente por Linux).
qLinux (System V) uma alternativa aos sistemas comerciais. Caractersticas: 1 Segurana.
1 Confiabilidade.
1 Versatilidade.
1 Estabilidade.
1 Licena gratuita.
Hoje, o Linux possui diversas distribuies comerciais e gratuitas, cada uma com suas
caractersticas. Entre elas podemos destacar: Slackware, Red Hat Enterprise Linux, Debian,
SUSE, Mandriva, Fedora, CentOS e Ubuntu. As distines entre as principais distribuies
so resumidas a seguir.
Slackware
a distribuio mais antiga ainda em desenvolvimento, tendo sua primeira verso lanada
em 1993. O Slackware uma distribuio gratuita que tem como principais caractersticas:
estabilidade, segurana, uso da interface texto para configurao do sistema e ampla
documentao. Possui uma verso de produo que s inclui pacotes estveis e uma verso
current em desenvolvimento que no disponibilizada para download.
Red Hat Enterprise Linux
Desenvolvida pela Red Hat Software, essa uma distribuio voltada para uso em servidores
de pequeno a grande porte, com verses que suportam de dois a um ilimitado nmero de
processadores. A Red Hat vende esta distribuio juntamente com uma assinatura de suporte
tcnico, que varia em funo dos dias de atendimento, vias de atendimento (web ou telefone)
e nmero de incidentes por ano.
5 C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Debian
A distribuio Debian desenvolvida e mantida por uma equipe de desenvolvedores volun-
trios. O Debian possui um ciclo de desenvolvimento onde suas verses passam por trs
fases: stable (a verso de produo), testing (contm verses mais atuais dos pacotes que
ainda no foram homologadas para entrar em produo) e unstable (utilizada geralmente
por desenvolvedores). O Debian conhecido por sua excelente ferramenta de gerencia-
mento de pacotes, o APT.
Suse
uma das distribuies comerciais mais antigas (teve sua primeira verso lanada em 1994
na Alemanha). Possui uma excelente ferramenta grfica de instalao e configurao do
sistema operacional, chamada YaST. Em 2003, a Novell comprou a SUSE e decidiu em 2005
compartilhar o desenvolvimento de uma verso gratuita de seu sistema operacional com
a comunidade de desenvolvedores, criando a distribuio openSUSE. Em 2011, a Novell e a
SUSE foram compradas pela empresa Attachmate.
Mandriva
Essa distribuio surgiu da fuso realizada entre as distribuies Conectiva (na verdade uma
verso em portugus do Red Hat Linux), comercializada pela empresa brasileira Conectiva Infor-
mtica e a distribuio Mandrake, comercializada pela empresa francesa Mandrake Software.
O Mandriva uma distribuio voltada para uso em desktop, com um ambiente grfico muito
avanado, alm de muitas facilidades que o tornam agradvel para o usurio domstico.
Fedora
Distribuio gratuita patrocinada pela Red Hat e mantida por uma comunidade aberta de usu-
rios e desenvolvedores. Essa distribuio teve sua primeira verso lanada em 2003, quando a
distribuio gratuita Red Hat Linux foi descontinuada. A partir da, a Red Hat Software resolveu
focar no mercado corporativo e lanou a distribuio paga Red Hat Enterprise Linux. Em para-
lelo, foi lanado o projeto Fedora, uma distribuio gratuita baseada no Red Hat Linux.
CentOS
Essa distribuio deriva diretamente do Red Hat Enterprise Linux atravs dos seus
arquivos fonte originais. A Red Hat permite o uso dos arquivos fontes na condio de
que sejam retiradas as referncias comerciais sua marca. A principal vantagem que o
CentOS uma slida e poderosa distribuio Linux com o mesmo potencial do Red Hat e
com a vantagem de ser gratuita.
Ubuntu
O Ubuntu uma distribuio baseada na distribuio Debian, patrocinada pela empresa
Canonical. Uma das principais propostas do Ubuntu a popularizao do Linux, oferecendo
um sistema com interface mais amigvel, focado em acessibilidade e internacionalizao.
Segurana, confiabilidade, versatilidade, estabilidade e gratuidade so as caractersticas do
Linux que fazem com que ele desponte como a principal alternativa ao Microsoft Windows.
6 Ad
min
istr
ao
de
Sist
emas
Lin
ux
ArquiteturaO GNU/Linux ou Linux (como mais conhecido) um sistema operacional multi-tarefa,
multi-usurio e multi-plataforma. Seu cdigo-fonte aberto e disponibilizado gratuita-
mente, podendo ser alterado por qualquer pessoa, o que o torna um sistema extremamente
flexvel. O Linux distribudo pela licena (GPL), que permite executar, alterar e distribuir
qualquer software regido por ela. Sua arquitetura, como mostra a Figura 1.1, pode ser repre-
sentada por uma pirmide dividida em camadas. O papel de cada uma dessas camadas
descrito a seguir.
Usurio
Aplicaes Shell
Bibliotecas de funes padro
Kernel
Hardware
Kernel
q o ncleo do sistema operacional, que tem como principais funes: 1 Deteco de hardware.
1 Gerenciamento de entrada e sada.
1 Manuteno do sistema de arquivos.
1 Gerenciamento de memria e swapping.
1 Controle da fila de processos.
O kernel o ncleo do sistema operacional e se encarrega de executar todas as funes
bsicas e necessrias ao funcionamento correto do sistema. Uma de suas principais funes
prover uma interface entre o hardware e as aplicaes. O kernel possui uma arquitetura
monoltica, ou seja, composto por um grande e nico bloco de cdigo com milhes de
linhas. H algum tempo o conceito de mdulos foi introduzido no Linux. Esses mdulos so
geralmente drivers de dispositivos e podem ser carregados em memria dinamicamente.
importante ressaltar que os mdulos no fazem parte do kernel.
Software
Hardware
KernelMdulos
Uma das grandes vantagens que o Linux oferece a possibilidade de o usurio poder fazer
alteraes em seu kernel, habilitando somente as funcionalidades necessrias para cada
sistema. Com isso, possvel ganhar em performance, pois o kernel se torna muito mais
enxuto, gerando uma imagem com um tamanho consideravelmente menor.
Figura 1.1 Arquitetura.
Figura 1.2 Estrutura do kernel.
7 C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Hoje, todas as distribuies de Linux disponveis usam basicamente o mesmo kernel, com
pequenas alteraes. So as aplicaes incorporadas a essas distribuies que as diferenciam.
Deteco de hardware
q 1 Identificao de dispositivos (memria, discos, processadores, impressora etc.). 1 Interao com esses dispositivos (drivers).
Todo sistema operacional para funcionar depende de um determinado hardware, com-
posto por processador, memria, disco, controladores de vdeo etc. Devido existncia de
diversos fabricantes de hardware no mercado, as caractersticas dos componentes variam
muito entre si. Quando um novo dispositivo instalado no sistema, como por exemplo uma
placa de rede, o kernel responsvel pela deteco e interao bsica com esse disposi-
tivo. Embora o kernel possa reconhecer e controlar uma grande quantidade de dispositivos
disponveis no mercado, existem alguns que no so reconhecidos, em geral os apresen-
tados aps a data de lanamento da verso do kernel utilizado. Para evitar este tipo de
problema, importante utilizar sempre a ltima verso estvel do kernel. Vale ressaltar que
drivers desenvolvidos como mdulos podem ser instalados no sistema sem a necessidade
de recompilar o kernel. Os mdulos podem ser carregados em memria dinamicamente
medida que seu uso se torna necessrio.
Gerenciamento de entrada e sada
q 1 Controle dos dispositivos de entrada e sada. 1 Envio de requisies solicitando execues de operaes.
1 Controle de sinais de interrupo.
Todos os computadores possuem dispositivos de entrada e sada conectados, como teclado,
monitor, impressora, placa de rede, disco etc. Esses dispositivos so controlados pelo kernel,
que envia requisies para solicitar a execuo de operaes especficas ou recebe sinais
para indicar que os dispositivos esto demandando determinadas operaes. A comuni-
cao entre o kernel e os dispositivos realizada por meio de sinais de interrupo. Nesse
contexto, o kernel funciona como um controlador de sinais de interrupo, atendendo a
todas essas requisies.
Manuteno do sistema de arquivos
q 1 Responsvel pela organizao, manuteno e integridade dos arquivos de usurios e do sistema.
1 Forma de implementao definida e gerenciada pelo kernel.
O sistema de arquivos tem por objetivo organizar, manter e zelar pela integridade dos arquivos
do sistema e dos usurios, assegurando que eles possam ser manipulados adequadamente
por seus proprietrios. No Linux, o sistema de arquivos visualizado como uma rvore inver-
tida: a raiz est no topo e os ramos, embaixo. Para ser lido ou escrito, o arquivo precisa ser
aberto. Ao abri-lo, uma srie de cuidados devem ser tomados, principalmente se esse arquivo
j estiver sendo utilizado por outro usurio ou programa. Todos esses cuidados com o sistema
de arquivos, bem como a forma como implementado, so definidos e gerenciados pelo
kernel. A Figura 1.3 mostra um exemplo de organizao do sistema de arquivos do Linux.
8 Ad
min
istr
ao
de
Sist
emas
Lin
ux
/
etc home
maria joo
Gerenciamento de memria e swapping
q 1 Responsvel pela alocao de memria aos processos em execuo. 1 Suporta o conceito de memria virtual.
1 Permite que os processos compartilhem reas de memria.
Ao longo do tempo, foram criadas vrias tcnicas, como paginao e swapping, para
otimizar o uso da memria pelos programas em execuo. O kernel responsvel pela
alocao de memria aos processos em execuo. Ele suporta o conceito de memria
virtual, permitindo que processos ocupem mais espao em memria que aquela disponvel
na mquina. A memria virtual pode ser muito maior que a memria fsica. Cada processo
tem seu prprio espao de endereamento virtual. Esses espaos de endereamento so
completamente separados, de modo que um processo no pode interferir no cdigo e nos
dados de outro processo. Alm disso, o kernel permite que processos compartilhem reas
de memria, reduzindo assim o consumo desse recurso ou viabilizando um mecanismo
de comunicao entre processos. O swapping o processo em que o sistema operacional
transfere dados que esto na memria principal (programa em execuo e os seus dados
associados) para uma rea em disco (memria virtual) e vice-versa, dando a impresso de
que o sistema possui uma rea de memria maior que a real. Esta rea em disco utilizada
como memria virtual faz parte da partio de swap do Linux. A paginao uma tcnica
utilizada por sistemas operacionais que fazem uso do conceito de memria virtual que
divide a rea de memria em pginas de forma a permitir o swapping.
Memria virtual
Pginas
Traduo de endereos
Memria fsica
Gerenciamento de processos
q 1 Suporta a execuo simultnea de vrios processos. 1 Funciona como um supervisor, autorizando o uso dos recursos entre os processos.
O Linux um sistema operacional que suporta a execuo simultnea de vrios processos
que compartilham os recursos do sistema. O compartilhamento desses recursos deve ser
Figura 1.3 Sistema de arquivos do Linux.
Figura 1.4 Processo de swapping.
9 C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
organizado de forma a atender s necessidades de todos os processos. Nesse contexto,
o kernel funciona como um supervisor e autoriza o uso desses recursos para um determi-
nado processo, quando necessrio. Mais frente, veremos que h um parmetro especial
chamado de prioridade, observado pelo kernel na alocao de um recurso a um processo.
Biblioteca de funes padro
q 1 Chamadas feitas por processos ao sistema operacional para acessar recursos. 1 Uso de funes padro (open, close, read, write etc.).
1 Comunicao entre as aplicaes e o ncleo do sistema operacional, constituindo a biblioteca de funes padro.
Quando o usurio executa um comando atravs do shell, normalmente iniciado um ou
mais processos. Muitas vezes, esses processos realizam chamadas ao sistema operacional
para acessar recursos gerenciados pelo kernel. Tais chamadas so feitas por meio de
funes padro suportadas pelo kernel. Esses acessos, no entanto, no podem ser feitos
de forma desorganizada, pois comprometeriam a prpria segurana do sistema. Para isso
existe uma srie de funes (open, close, read, write, fork etc) que realizam, de forma segura,
a comunicao entre as aplicaes e o kernel, constituindo a biblioteca de funes padro.
Shell
q 1 L e interpreta comandos de entrada de um terminal. 1 Cria novos processos medida que so requisitados.
1 Permite ao usurio trocar de interpretador durante sesso.
1 Exemplos: sh, csh, bash, ksh, tcsh.
O shell ou interpretador de comandos nada mais do que um processo responsvel por ler
os comandos de entrada de um terminal, interpret-los e criar novos processos medida que
vo sendo requisitados. Baseado na configurao do ambiente do usurio, o interpretador de
comandos iniciado logo aps o processo de login. Veremos, mais adiante, que cada usurio
pode utilizar seu prprio interpretador de comandos. Da mesma forma que o MS-DOS, que
apresenta a sequncia de caracteres c:> (tambm conhecida como prompt), o interpretador
de comandos tambm exibe uma mensagem indicando que est pronto para executar
comandos. Vale ressaltar que essa mensagem pode ser configurada pelo prprio usurio.
O Linux tambm suporta um ambiente grfico baseado em janelas, denominado X-Window.
Esse ambiente possui diversas aplicaes grficas, entre elas o xterm, que emula um inter-
pretador de comandos. Quando o usurio inicia o xterm, este executa um interpretador de
comandos que ser responsvel por interpretar os comandos digitados pelo usurio na
janela do xterm. Para definir qual interpretador de comando ser executado, o xterm verifica
inicialmente a varivel de ambiente SHELL. Caso esta no tenha sido definida, o xterm veri-
fica no arquivo passwd qual interpretador de comandos est definido para o usurio. Se no
for definido nenhum interpretador vlido, o xterm utiliza o shell sh.
Quando o usurio digita um comando, o interpretador identifica o programa pela primeira
palavra informada na linha de comando. O interpretador procura ento por um arquivo
com o nome do programa e caso encontre, inicia sua execuo. Os demais termos da linha
de comando so passados como parmetros para o programa. No universo Linux, h vrios
interpretadores disponveis, como sh, csh, bash, ksh, ash, zsh. Cada usurio pode escolher
e trabalhar com o interpretador mais adequado s suas necessidades. O interpretador de
10
Ad
min
istr
ao
de
Sist
emas
Lin
ux
comandos padro, definido para cada usurio mantido em um arquivo, que a base de
usurios do sistema. Esse arquivo consultado durante o processo de login. importante
ressaltar que o usurio pode trocar de interpretador durante sua sesso de trabalho. Para
isso, basta digitar na linha de comando o nome do interpretador que deseja utilizar.
Utilidades
Usurio
Shell
Kernel
Hardware
Aplicaes
qProgramas com os quais os usurios interagem: 1 Compiladores.
1 Editores de texto.
1 Planilhas.
1 Jogos etc.
So os programas com os quais o usurio interage diretamente, como compiladores,
editores de texto, planilhas, navegadores, gerenciadores de arquivos etc. Um sistema
operacional sem aplicaes ficaria sem utilidade, j que estas fazem parte da nica camada
da arquitetura acessada pelos usurios. As aplicaes so desenvolvidas geralmente para
automatizar e facilitar a realizao de tarefas que precisam ser realizadas pelos usurios
diariamente. Elas tambm facilitam a comunicao entre pessoas, alm de reduzir custos,
como o caso das aplicaes de voz sobre IP.
Sistema de arquivos
/(root)Sistema de arquivos
Diretrios Sistemas de arquivos
/bin /dev /etc /lib /usr /tmp /var /home
Em qualquer sistema operacional, necessrio armazenar dados em arquivos e organiz-los
em diretrios. Os arquivos so gerenciados por um componente do sistema operacional conhe-
cido como sistema de arquivos, que define como os arquivos so estruturados, identificados,
acessados, modificados e protegidos. A Figura 1.7 mostra como esto dispostos os blocos em
uma partio do Linux. O bloco de boot o primeiro bloco do disco e no gerenciado pelo
Figura 1.5 Processo interpre-tador de comandos ou shell.
Figura 1.6 Estrutura e tipos de arquivos do sistema de arquivos.
11
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
sistema de arquivos, sendo utilizado somente para dar incio ao processo de boot do sistema
operacional. O segundo bloco chamado superbloco e contm informaes essenciais sobre
o sistema de arquivos, como seu tamanho, nmero de inodes, nmero de blocos de dados etc.
Em seguida, vem a tabela de blocos, que permite identificar os blocos de dados livres e ocu-
pados no disco. Logo aps, encontra-se a tabela de inodes (index-nodes), que so estruturas de
dados que armazenam informaes sobre os arquivos. Por fim, temos os blocos de dados, nos
quais o contedo dos arquivos efetivamente armazenado.
Bloco de boot
Super bloco
Inodes
Blocos de dadosTabela de blocos
qBloco de boot: 1 Tem a funo de carregar o kernel do sistema operacional.
1 Toda partio contm um bloco de boot.
Superbloco:
1 Contm informaes essenciais sobre o sistema de arquivos.
Tabela de blocos:
1 Identifica os blocos de dados livres no disco.
Tabela de inodes:
1 Contm as informaes de cada inode do sistema de arquivos.
Blocos de dados:
1 So os blocos do disco destinados a armazenar o contedo dos arquivos.
Inode
qEstrutura de dados mantida pelo kernel, que possui informaes sobre arquivos: 1 Tipo, dono, grupo e permisses.
1 Datas de criao ou da ltima modificao.
1 Nmero de links para o arquivo.
1 Tamanho.
1 Endereo no disco rgido.
uma estrutura de dados de 64 bytes de tamanho que armazena informaes sobre um
arquivo como: tipo, permisses associadas, proprietrio e grupo, tamanho, ltima vez em
que foi modificado, localizao dos blocos onde o contedo do arquivo est armazenado,
entre outras. Todo sistema de arquivos possui uma tabela de inodes e cada arquivo possui
um inode associado que identificado por um nmero inteiro, conhecido como i-number ou
ino. O nmero de inodes funo do tamanho do sistema de arquivos e por padro, criado
um inode para cada 2 KB do tamanho total do sistema de arquivos. Parte das informaes
presentes nos inodes pode ser visualizada por meio do comando ls, utilizando a opo -l,
como mostra a Figura 1.8.
Figura 1.7 Sistemas de
arquivos Linux.
12
Ad
min
istr
ao
de
Sist
emas
Lin
ux
-rwxr-xr-x 1 root bin 85924 Sep 27 2003 /usr/bin/su
Tipo de arquivo
Hard link count
Tamanho em bytes Nome do arquivo
Permisses Dono
Grupo
Data da ltimamodicao
O comando stat tambm pode ser utilizado para visualizarmos informaes contidas nos
inodes, como mostra o exemplo a seguir:
# stat /etc/hosts
File: /etc/hosts
Size: 250 Blocks: 8 IO Block: 4096 regular file
Device: 801h/2049d Inode: 523277 Links: 1
Access: (0644/-rw-r--r--) Uid: (0/ root) Gid: (0/ root)
Access: 2012-01-15 12:18:33.056920612 -0200
Modify: 2011-11-21 16:51:49.228547005 -0200
Change: 2011-11-21 16:51:49.228547005 -0200
O nmero de inodes tambm pode ser definido pelo usurio durante a criao de um
sistema de arquivos. Existem aplicaes que criam grandes quantidades de arquivos
pequenos, o que pode resultar na utilizao de todos os inodes disponveis em um sistema
de arquivos. Quando isso acontece, mesmo que ainda haja espao suficiente em disco, no
mais possvel a criao de novos arquivos neste sistema de arquivos. Por isso, necessrio
que o administrador de sistemas faa uma anlise das aplicaes que sero instaladas em
um servidor, para que possa dimensionar corretamente o nmero de inodes que ser criado
em um sistema de arquivos. Para verificarmos o nmero de inodes livres em um sistema de
arquivos podemos utilizar o comando df com a opo -i.
# df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda1 2559088 48963 2510125 2% /
Tipos de arquivosq 1 Arquivos regulares.
1 Diretrios.
1 Arquivos de dispositivo (bloco e caractere).
1 Sockets.
1 Named pipes.
1 Symbolic link.
No Linux qualquer objeto gerenciado pelo sistema operacional tratado como arquivo,
desde um arquivo texto convencional a um dispositivo de hardware. Para identificar o tipo
do arquivo, o sistema operacional consulta as informaes contidas em seu inode. A seguir
veremos os diversos tipos de arquivos existentes no Linux.
Figura 1.8 Informaes con-tidas nos inodes.
13
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Arquivo regular
q 1 Conjunto de bytes. 1 Programa executvel, arquivo texto, imagem etc.
1 Criados por editores de texto e comandos, entre outros.
Trata-se do tipo de arquivo mais comum que podemos encontrar em um sistema Linux. Pode
ser um relatrio feito no OpenOffice, um banco de dados do MySQL, um programa executvel
(como o Firefox), uma imagem (arquivo JPG), o cdigo-fonte de um programa em C etc. Arquivos
desse tipo podem ser criados por meio de editores de texto, de aplicativos para tratamento de
imagem e de comandos do Linux (ex.: touch). A sua remoo pode ser feita com o comando rm.
Diretrios
q 1 Podem conter qualquer tipo de arquivo; 1 Criados com o comando mkdir.
1 Removidos com o comando rmdir (se no tiverem nenhum contedo) ou rm -r (caso contrrio).
Um diretrio nada mais do que um arquivo cujo contedo o nome dos arquivos nele
contidos e os nmeros de seus respectivos inodes. Um diretrio pode conter arquivos de
quaisquer tipos, inclusive diretrios. As entradas especiais . e .., que encontramos nos
diretrios de um sistema Linux, referem-se ao prprio diretrio e ao seu diretrio pai,
respectivamente. Diretrios podem ser criados com o comando mkdir e removidos com o
comando rmdir, se estiverem vazios, ou rm -r, independente de estarem vazios ou no.
Arquivo de dispositivo
q 1 Mecanismo para operaes de entrada e sada. 1 Tipos de arquivos de dispositivo:
2 Caractere: as operaes de entrada e sada so realizadas byte a byte de modo sequencial.
2 Bloco: as operaes de entrada e sada so realizadas em blocos de modo aleatrio.
1 Encontram-se, geralmente, no diretrio /dev.
1 So criados com mknod e removidos com rm.
Arquivos de dispositivos permitem aos usurios estabelecer comunicao com o hardware
do sistema e seus perifricos, sem se preocupar com os detalhes necessrios a esse tipo
de comunicao. Essa forma do Linux interagir com os dispositivos tambm facilita muito o
trabalho dos programadores. Assim, drivers de dispositivos representam uma interface de
comunicao padro que se parece com um arquivo normal. Quando o kernel recebe um
pedido referente a um arquivo de dispositivo, ele simplesmente passa o pedido para o driver
apropriado. Arquivos de dispositivo podem ser criados via comando mknod e removidos com
o comando rm. Existem dois tipos de arquivos de dispositivos que sero vistos a seguir.
Dispositivos orientados a caractere
Os dispositivos orientados a caractere realizam suas transferncias de dados byte a byte e
de modo sequencial. As portas seriais so exemplos de dispositivos orientados a caractere.
Geralmente, esses dispositivos no utilizam buffers (espao em memria) em suas opera-
es de entrada e sada, ou seja, os dados so lidos e escritos diretamente no dispositivo.
14
Ad
min
istr
ao
de
Sist
emas
Lin
ux
Dispositivos orientados a bloco
Os dispositivos orientados a bloco realizam suas transferncias de dados em blocos de
tamanho que pode variar entre 512 bytes e 32 Kbytes, sendo o acesso feito de modo
aleatrio. Os discos rgidos e as unidades de fita so exemplos de dispositivos orientados
a bloco. As operaes de entrada e sada destes dispositivos so feitas utilizando buffers
intermedirios.
Socket
q 1 Utilizado para comunicao bidirecional entre processos. 1 Unix Domain Sockets.
1 Sockets de rede.
1 So criados com a chamada de sistema socket e removidos atravs do comando rm ou da chamada de sistema close.
O socket um tipo de arquivo utilizado para a comunicao bidirecional entre dois processos.
Existem basicamente dois tipos de sockets: o primeiro deles, conhecido como Unix domain
socket ou IPC socket (Inter Process Communication socket) utilizado para a comunicao
entre processos executados em um mesmo sistema operacional. O outro tipo o socket de
rede, utilizado para a comunicao entre processos executados em computadores diferentes,
interligados por uma rede. Entre os sockets de rede podemos destacar o datagram socket, que
um tipo de socket no orientado conexo, utilizado pelo protocolo UDP; o stream socket
que um tipo de socket orientado conexo, utilizado pelo protocolo TCP; e o raw socket,
utilizado por protocolos de gerenciamento e monitoramento de redes como o protocolo ICMP.
Um socket criado pela chamada de sistema socket e pode ser removido com o comando rm
ou por meio da chamada de sistema close, quando o socket no estiver mais sendo utilizado.
A maioria das aplicaes em um sistema Linux faz uso de sockets.
Named pipe
q 1 Permite a comunicao bidirecional entre dois processos rodando numa mesma mquina. 1 Faz parte do sistema de arquivos.
1 criado com o comando mknod ou mkfifo.
1 removido com o comando rm.
1 Interliga processos que no possuem relao entre si.
O named pipe, tambm conhecido como FIFO, permite a comunicao bidirecional entre
dois processos executados no mesmo sistema operacional. Um named pipe referenciado
pelos processos que conecta atravs de seu nome e faz parte do sistema de arquivos. Ele
criado atravs dos comandos mkfifo ou mknod e removido com o comando rm ou por meio da
chamada de sistema unlink. Um named pipe permite a comunicao entre processos que no
possuam relao entre si. Existe tambm o pipe convencional, representado pelo caractere |,
que utilizado em comunicaes unidirecionais, conectando a sada de um processo entrada
de outro. A diferena entre eles que no pipe convencional, os processos conectados devem
possuir uma relao pai para filho ou serem irmos. Ao contrrio do named pipe, que precisa
ser explicitamente encerrado aps seu uso, o pipe convencional encerrado automaticamente
aps a execuo dos processos que ele conecta.
15
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Proc. 1 Proc. 2
DadosPipe (FIFO)
Link
qHard link: 1 Dois arquivos apontando para o mesmo inode.
Symbolic link:
1 Ponteiro para um arquivo existente.
1 Associado a outro inode number.
O Linux suporta dois tipos de links: hard link e symbolic link. Para explicar as diferenas
entre eles, vamos tomar como exemplo uma situao em que dois usurios (Maria e Joo)
compartilham um arquivo denominado relatorio.txt, cujo tamanho 200 bytes (Figura 1.10).
/
etc home
maria joo
linux.conf relatorio.txt
Exemplos:
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln ~joao/relatorio.txt ~maria/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 2 maria maria 200 Feb 01 18:00 relatorio.txt
-rw-r--r-- 2 joao joao 200 Feb 05 11:30 relatorio.txt
Hard link
q 1 Associa dois ou mais nomes de arquivos ao mesmo inode. 1 Compartilha a mesma rea de dados.
1 No pode ser criado para diretrios.
1 Criado com o comando ln.
1 Removido com o comando rm.
Como mencionado anteriormente, as informaes sobre um arquivo so armazenadas
em seu inode. No hard link, existe uma nica cpia do arquivo armazenada nos blocos de
dados. Essa cpia referenciada por um nico inode, que, por sua vez, referenciado pelos
arquivos nos diretrios dos usurios. Dessa forma, sempre que um dos usurios modificar
Figura 1.9 Named pipe.
Figura 1.10 Hard link
para arquivo.
16
Ad
min
istr
ao
de
Sist
emas
Lin
ux
o contedo do seu arquivo, as mudanas sero automaticamente percebidas pelos outros,
uma vez que seus arquivos apontam para a mesma rea em disco. No exemplo descrito, o
espao de 200 bytes do arquivo relatorio.txt alocado uma nica vez nos blocos do disco,
mas o inode que aponta para esses blocos referenciado pelos arquivos nos diretrios dos
usurios Maria e Joo, como mostra a Figura 1.11. Um hard link criado com o comando ln e
s pode apontar para arquivos regulares ou symbolic links. A existncia deste tipo de link no
to simples de ser verificada. Ele pode ser identificado pelo nmero que aparece aps as
permisses associadas a um arquivo, como pode ser visto no exemplo abaixo. O nmero 2
identifica que alm do arquivo original, existe um hard link apontando para ele.
Inode derelatorio.txt
Inodedo link
Arquivode Joo
Arquivode Maria
Arquivorelatorio.txt
Symbolic link
q 1 Arquivos que so ponteiros para outros arquivos. 1 Fornecem referncia por nome.
1 Ocupam um espao mnimo.
1 Podem apontar para qualquer rea do disco, inclusive em outras parties.
1 Criados com o comando ln s.
1 Removidos com o comando rm.
representado por um arquivo cujo contedo o nome do arquivo original para o qual o
symbolic link est apontando. Neste caso, existem dois arquivos com contedos diferentes,
cada um deles com seu inode associado. Quando um symbolic link acessado, o sistema verifica
atravs das informaes contidas em seu inode que ele do tipo symbolic link. Aps isso, recu-
pera a identificao do arquivo original e realiza as operaes solicitadas diretamente sobre ele.
Um symbolic link criado com o comando ln, utilizando a opo -s e pode apontar para qual-
quer tipo de arquivo. Um symbolic link identificado pela letra l, que o primeiro caractere
em uma lista de arquivos gerada pelo comando ls, utilizando a opo -l. possvel tambm
ver o nome do arquivo apontado no final da linha, como mostra o exemplo abaixo.
Exemplos:
# ls la ~maria/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
# ln s ~maria/relatorio.txt ~joao/relatorio.txt
# ls la ~maria/relatorio.txt ~joao/relatorio.txt
-rw-r--r-- 1 maria maria 200 Feb 01 18:00 relatorio.txt
lrwxrwxrwx 1 joao joao 20 Feb 05 11:30 relatorio.txt -> ~maria/
relatorio.txt
Figura 1.11 Hard link.
17
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
No exemplo acima, o espao de 200 bytes ocupado pelo arquivo relatorio.txt alocado uma
nica vez nos blocos do disco. Apenas o arquivo no diretrio da usuria Maria referencia essa
rea de dados. No diretrio do usurio Joo, existe outro arquivo, do tipo symbolic link, cujo
contedo o nome do arquivo no diretrio da usuria Maria, como mostra a Figura 1.12.
/
etc home
maria joo
linux.conf relatorio.txt link
O arquivo de Joo est armazenado em outro local do disco sendo referenciado por outro inode
e seu tamanho menor do que o tamanho do arquivo origina, como pode ser visto na Figura
1.13, j que seu contedo somente o nome do arquivo original para o qual est apontando.
Inode derelatorio.txt
Inodedo link
Arquivode Joo
Arquivode Maria
Arquivorelatorio.txt
Vantagens e desvantagens
Cada um dos tipos de link vistos tem suas vantagens e desvantagens. Utilizando hard links,
independentemente do nmero de links existentes, apenas um inode ser utilizado. Porm,
como esse inode guarda informaes sobre o proprietrio do arquivo, em determinadas
situaes isto pode gerar problemas. Vamos retornar ao exemplo anterior para visualizar
essa situao. Supondo que Maria seja a proprietria do arquivo relatorio.txt e um hard link
seja criado para que Joo tenha acesso ao arquivo. O inode mantm um atributo (nmero
de links) indicando que dois arquivos apontam para esse mesmo inode. Quando Maria
remove o arquivo de seu diretrio, o sistema apenas decrementa esse atributo do inode do
arquivo. Assim, Maria no ter mais acesso ao arquivo, mas Joo ainda poder utiliz-lo.
Entretanto, uma vez que Maria a proprietria do arquivo, esse contabilizado no sistema
como recurso alocado para Maria, at que Joo decida remov-lo, se tiver permisso. Com o
symbolic link isso no acontece, pois apenas o proprietrio do arquivo pode remov-lo.
No exemplo, Maria seria a proprietria do arquivo e Joo teria apenas um symbolic link para
ele. Se Joo apagasse o symbolic link, o arquivo original no seria apagado. Porm, se Maria
apagasse o arquivo, Joo no poderia mais utiliz-lo, j que o symbolic link apenas um pon-
teiro para o arquivo original. Neste caso o symbolic link ficaria sem referncia.
Figura 1.12 Symbolic link
para arquivo.
Figura 1.13 Symbolic link.
18
Ad
min
istr
ao
de
Sist
emas
Lin
ux
Note que o symbolic link muito parecido com os atalhos do MS Windows. A utili-
zao de symbolic links obrigatria quando se quer criar um link para um diretrio,
ou entre arquivos localizados em diferentes parties. Em ambos os casos, no
possvel definir um hard link.
Exerccio de fixao 1 e Identificando tipos de arquivos
Identifique o tipo dos arquivos listados.
1 /dev/tty0
1 /usr/bin
1 /etc/passwd
1 /dev/hda
1 /dev/log
1 /etc/rc3.d/S99rc.local
Comando ls
Para trabalhar com arquivos fundamental que o usurio conhea suas caractersticas.
Essas informaes podem ser visualizadas com o comando ls. Com ele, o usurio pode visua-
lizar vrias informaes sobre arquivos, desde o nome dos arquivos existentes em um
diretrio at o nmero de hard links que apontam para esses arquivos. As informaes
mostradas pelo comando ls dependem das opes passadas na linha de comando. Por
exemplo, quando informada a opo -l, o comando ls lista as informaes guardadas no
inode do arquivo, como: permisses, nmero de hard links que apontam para o arquivo,
proprietrio do arquivo, grupo do arquivo, tamanho e data de criao e modificao. Para
ver todas as funcionalidades do comando ls, consulte sua pgina de manual com o comando
man ls.
Comando Funo
ls Listar informaes sobre arquivos
Tipo do arquivo Smbolo
Arquivo regular
Diretrio d
Arquivo de dispositivo orientado a caractere c
Arquivo de dispositivo orientado a bloco b
Socket s
Named pipe p
Symbolic link l
Tabela 1.1 Comando ls (tipos de arquivos).
19
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
Permisses de arquivosq 1 Nove bits controlam quem pode ler, escrever ou executar um arquivo.
1 Trs outros afetam a operao de arquivos executveis e o comportamento de diretrios.
1 Quatro bits guardam a informao do tipo do arquivo (no podem ser modificados).
No Linux, todo arquivo possui um conjunto de permisses de acesso associadas. Essas per-
misses so definidas por nove bits que determinam quem pode ler, escrever e executar
um arquivo. Alm dos bits de permisso, existem trs bits especiais que afetam o modo
de execuo dos arquivos e o comportamento dos diretrios. Por fim, o conjunto formado
por esses doze bits armazenado, juntamente com outros quatro bits, que indicam o tipo
do arquivo, numa palavra de 16 bits. Os quatro bits que indicam o tipo do arquivo so defi-
nidos no momento da sua criao e no podem ser alterados. Como j vimos, o comando
ls pode ser utilizado para verificar o valor desses bits. O campo que, no exemplo abaixo,
apresenta o valor -rwxr-xr-x representa as permisses associadas ao arquivo, bem como
seu tipo. A seguir veremos em detalhes os bits de permisso.
#ls -l /bin/sh
-rwxr-xr-x 1 root root 85924 01 Dec 2002 /bin/sh
Bits de permisso
So nove os bits de permisso, utilizados para determinar as operaes que podem ser
executadas em um arquivo, e quem pode execut-las. O Linux define conjuntos de per-
misses para o dono do arquivo, para o grupo ao qual o arquivo pertence e para os outros
usurios do sistema. Cada conjunto possui trs bits: um bit de leitura (r), um bit de escrita
(w) e um bit de execuo (x), chamado bit de pesquisa, quando se trata de um diretrio.
Assim, os trs primeiros bits controlam o acesso do dono, os trs do meio controlam o
acesso do grupo e os ltimos trs controlam o acesso para os demais usurios do sistema
(outros). Em cada trio, o bit mais alto o que controla a leitura, o bit do meio controla a
escrita e o ltimo bit controla a execuo do arquivo. Cada usurio de um sistema Linux
enquadra-se em, pelo menos, uma das trs categorias descritas. Caso ele no seja o dono
do arquivo, nem pertena ao mesmo grupo ao qual o arquivo pertence, as permisses
dadas aos outros sero levadas em considerao. O bit de leitura permite a abertura e
a leitura de um arquivo normal. O bit de escrita, por sua vez, permite que o contedo do
arquivo seja modificado. A possibilidade de renomear ou remover um arquivo, contudo,
controlada pelas permisses do diretrio ao qual ele pertence. O bit de execuo, como o
nome j sugere, permite que o arquivo seja executado; por isso, este tipo de permisso s
faz sentido em arquivos executveis. Para um diretrio, o bit de execuo tem um signifi-
cado um tanto diferente. Ele permite a entrada em um diretrio, mas no necessariamente
que o seu contedo seja listado. A listagem do contedo de um diretrio s pode ser reali-
zada se os bits de leitura e execuo forem definidos. J a combinao dos bits de escrita e
execuo permite que arquivos sejam criados, removidos e renomeados dentro de um dire-
trio. Quando um bit de permisso no definido, o caractere - inserido em seu lugar.
20
Ad
min
istr
ao
de
Sist
emas
Lin
ux
1 1 1 1 0 0 01 1
Dono Outros
Gruporead (r)
write (w)
execute (x)
= 751
Acesso Significado para arquivos Significado para diretrios
r Permitir abrir e ler. Listar, se x est setado.
w Modificar ou truncar; deletar ou renomear: ver perm. dir.
Criar, renomear e deletar arquivos, se x est setado.
x Executar arquivo. Entrar, mas no listar.
Exerccio de fixao 2 e Anlise de permisses
Analisando as informaes obtidas com o comando #ls l /bin/su, identifique as permisses
dadas aos elementos a seguir.
# ls l /bin/su
-rwsr-xr-x 1 root root 31060 2010-09-03 07:28 /bin/su
1 Dono do arquivo.
1 Grupo ao qual o dono pertence.
1 Permisso para usurios de outros grupos.
Bits especiais
Dissemos que, alm dos nove bits de permisso, outros trs afetam a execuo de pro-
gramas executveis e diretrios, e que juntos eles formam os 12 bits de modo. Esses outros
trs bits, setuid (SUID), setgid (SGID) e sticky bit so descritos a seguir.
t aqui indica que o programa stickys aqui indica que o programa SGIDs aqui indica que o programa SUID
Sticky bit
q 1 Evita mecanismo de swap-on/swap-off em arquivos executveis (em desuso). 1 Controla a escrita em diretrios de uso geral.
1 Representado pela letra t.
O estabelecimento desse bit remonta aos tempos em que memria era um recurso caro
e escasso em sistemas Linux, e acessos a unidades de disco eram lentas. Sistemas com
pouca memria necessitavam de que alguns programas se mantivessem na memria con-
tinuamente. O sticky bit era importante nesse contexto. Ele garantia que um determinado
Figura 1.14 Bits de permisso.
Figura 1.15 SUID, SGID e sticky bit.
21
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
processo permaneceria na memria principal, no tendo sua performance prejudicada por
conta do esquema de swapping. Hoje em dia, com o relativo baixo custo de memria e as
unidades de disco cada vez mais velozes, o estabelecimento desse bit em arquivos execut-
veis caiu em desuso.
Atualmente, o sticky bit definido somente em diretrios e utilizado para impedir que
um usurio apague ou renomeie um arquivo, a menos que seja dono do diretrio ou do
arquivo. Deste modo, ter permisso de escrita e pesquisa em um diretrio com sticky bit
definido no suficiente para remover ou renomear arquivos e diretrios de outros usu-
rios. dessa forma que o Linux evita que, em diretrios de uso pblico, como o /tmp, os
usurios removam ou renomeiem arquivos de outros usurios. Esta regra s no vlida
para o usurio root. O sticky bit quando definido substitui a letra x da permisso de exe-
cuo dos outros pela letra t caso a permisso de execuo tenha sido definida. Caso
contrrio, a letra T inserida no lugar do caractere -.
Setgid (SGID)
q 1 Utilizado em arquivos executveis e diretrios. 1 Representado pela letra s.
O bit SGID pode ser definido em arquivos executveis e diretrios. Ele permite que um
arquivo seja executado com as permisses do grupo dono do arquivo, independente do
usurio que o tenha executado. Embora qualquer tipo de arquivo possa ter esse bit definido,
muitas verses do Linux s o levam em conta quando so definidos em programas execut-
veis ou diretrios. Quando o bit SGID definido em um diretrio, todos os arquivos criados
neste diretrio pertencero ao grupo dono do diretrio, independente do grupo primrio
do usurio que os tenha criado. O SGID, quando definido, substitui a letra x da permisso
de execuo do grupo pela letra s, caso a permisso de execuo tenha sido definida. Caso
contrrio, a letra S inserida no lugar do caractere -.
Setuid (SUID)
q 1 Utilizados em arquivos executveis. 1 Representado pela letra s.
O bit SUID s possui efeito em arquivos executveis. Ele permite que um arquivo seja
executado como se estivesse sendo executado pelo dono do arquivo, independente do
usurio que o tenha executado. O arquivo executvel passwd, utilizado para troca de senha
um exemplo de arquivo que tem o bit SUID definido. Isto necessrio para que usurios
comuns possam alterar suas senhas, j que somente o usurio root tem permisso de
escrita no arquivo /etc/passwd que armazena as senhas dos usurios do sistema. Embora
qualquer tipo de arquivo possa ter esse bit definido, muitas verses do Linux s o levam em
conta quando so definidos em programas executveis. O SUID, quando definido, substitui
a letra x da permisso de execuo do dono do arquivo pela letra s caso a permisso de
execuo tenha sido definida. Caso contrrio, a letra S inserida no lugar do caractere -.
Comando chmod mudando permisses
Os doze bits de permisso, referenciados anteriormente, podem ser modificados pelo dono
do arquivo ou pelo administrador do sistema, atravs do comando chmod. Os primeiros
sistemas Unix exigiam que os usurios entendessem de notao binria ou octal para
utilizar esse comando. As verses mais recentes do sistema, entretanto, aceitam tanto a
notao octal quanto uma sintaxe mais mnemnica. Entretanto, preferimos trabalhar com a
22
Ad
min
istr
ao
de
Sist
emas
Lin
ux
notao octal, por ser mais conveniente para administradores de sistema. O comando chmod
recebe dois blocos de argumentos. O primeiro deles um nmero octal, que representa
as permisses a serem atribudas e o segundo bloco composto de um ou mais nomes de
arquivos, separados por espao em branco, cujas permisses devem ser alteradas. Na forma
normal, o primeiro dgito octal refere-se s permisses do dono do arquivo; o segundo, s do
grupo dono do arquivo; e o terceiro, s dos outros usurios. Para estabelecer as permisses
associadas aos bits setuid, setgid e sticky bit, preciso utilizar quatro dgitos octais no lugar de
trs. Nesse caso, os trs bits especiais so definidos pelo primeiro dgito. A Tabela 1.2 ilustra as
oito possveis combinaes para cada um dos trs bits, em que r, w e x correspondem s
permisses de leitura (Read), de escrita (Write) e de execuo (eXecute) respectivamente.
Comando Funo
chmod Modificar a permisso de arquivos e diretrios
Octal Binria Permisses
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
A Tabela 1.3 ilustra as oito possveis combinaes utilizadas para definir ou no os bits
especiais SUID, SGID e sticky bit.
Comando Funo
chmod Modificar a permisso de arquivos e diretrios
Octal Binria Descrio
0 000 SUID, SGID e sticky bit no definidos
1 001 Sticky bit definido
2 010 SGID definido
3 011 Sticky bit e SGID definidos
4 100 SUID definido
5 101 Sticky bit e SUID definidos
6 110 SGID e SUID definidos
7 111 Sticky bit, SGID e SUID definidos
A seguir podemos ver um exemplo de execuo do comando chmod.
# chmod 0751 /home/aluno1/arquivo.txt
Tabela 1.2 Mudando permis-ses de arquivos.
Tabela 1.3 Mudando permis-ses especiais.
23
C
aptu
lo 1
- In
trod
uo
ao
sist
ema
oper
acio
nal L
inux
O comando acima atribui todas as permisses para o dono, ou seja, pode ler, escrever e exe-
cutar o arquivo; atribui ao grupo permisso para apenas ler e executar o arquivo e atribui
aos outros somente permisso para execut-lo. O primeiro nmero octal passado como
parmetro para o comando chmod referente s permisses especiais; o segundo, terceiro
e quarto so relativos s permisses aplicadas ao dono do arquivo, ao grupo e aos outros,
respectivamente. importante ressaltar que o primeiro nmero octal opcional e se no
for definido, ser considerado como tendo o valor 0.
Exerccio de fixao 3 e Alterando permisses de arquivo
Executado o comando #ls -l no arquivo /bin/sh, foi obtido o resultado abaixo. Qual foi o
comando executado para alterar as permisses do arquivo?
Antes
-r-xrwxr-x 1 root root 85924 01 Jan 2012 /bin/sh
Depois
-rwxr-xr-x 1 root root 85924 01 Mar 2012 /bin/sh
A) #chmod 0553 /bin/sh
B) #chmod 0751 /bin/sh
C) #chmod 0741 /bin/sh
D) #chmod 0653 /bin/sh
E) #chmod 0771 /bin/sh
Comando umask
O comando umask (user mask) pode ser utilizado para estabelecer as permisses padres
para os arquivos criados no sistema. Para esse comando, passado um parmetro na
forma de um valor octal de trs dgitos, os quais representam as permisses que devem
ser atribudas aos arquivos no momento da sua criao. Os dgitos estabelecem as per-
misses mostradas na Tabela 1.4. A relao entre os valores passados para o comando
umask e as permisses resultantes diferem bastante da relao aplicada para o comando
chmod. O valor padro da umask para a maioria das distribuies Linux 022. Para verifi-
carmos o valor da mscara atual devemos executar o comando umask sem parmetros.
A Tabela 1.4 mostra que o valor da umask resulta em diferentes permisses para arquivos
binrios, arquivos texto e diretrios.
24
Ad
min
istr
ao
de
Sist
emas
Lin
ux
Comando Funo
umask Estabelecer permisses padres para arquivos criados
Octal Binria Permisses
Arquivo Diretrio
Binrio Texto
0 000 r-x rw- rwx
1 001 r-- rw- rw-
2 010 r-x r-- r-x
3 011 r-- r-- r--
4 100 --x -w- -wx
5 101 --- -w- -w-
6 110 --x --- --x
7 111 --- --- ---Tabela 1.4 Comando umask.
25
C
aptu
lo 1
- Ro
teir
o de
Ati
vida
des
Roteiro de Atividades 1
Atividade 1.1 Identificando bits de permisso
1. Verifique as permisses do diretrio /tmp. O que voc percebe de diferente em relao s
permisses de outros?
2. Considerando que h permisso de escrita no diretrio para todos, o que o impediria de
remover um arquivo de outra pessoa?
Atividade 1.2 Identificando e entendendo hard links
Como voc deve ter lido no Captulo 1, o nmero de links (link counter) que apontam para
um arquivo mantido em seu inode. Esse contador utilizado pelo sistema para controlar a
liberao dos blocos do disco alocados ao arquivo quando o contador atingir o valor zero, ou
seja, quando nenhum outro arquivo estiver apontando para o inode.
1. Qual o nmero de links do seu diretrio home?
2. Crie o arquivo arqses1ex3 no seu diretrio home. possvel utilizar o comando touch.
3. Verifique o nmero de links do arquivo arqses1ex3 e anote o resultado. Voc pode utilizar
o redirecionamento de sada para registrar esse resultado no prprio arquivo criado. Essa
informao ser necessria para uma atividade posterior.
4. Verifique se mudou o nmero de links do seu diretrio home.
5. Crie um diretrio com o nome de dirses1ex3, tambm no seu diretrio home.
6. Mais uma vez, verifique o nmero de links do seu diretrio home. Ele mudou?
Voc saberia dizer por qu?
7. Qual o nmero de links do diretrio dirses1ex3?
8. Verifique qual opo deve ser passada ao comando ls para que ele liste as informaes do
diretrio dirses1ex3 e no o seu contedo.
9. Voc saberia explicar por que o nmero de links do diretrio dirses1ex3 maior que um?
Atividade 1.3 Conhecendo diferenas entre hard link e symbolic link
No Captulo 1, vimos a importncia dos links criados com o comando ln. Para criar um
symbolic link, a opo -s deve ser informada na linha de comando. Consulte as pginas do
manual para conhecer outras opes.
1. No seu diretrio de trabalho, crie um hard link para o arquivo arqses1ex3. O nome do
arquivo criado dever ser hosts.hard.
2. Verifique agora o nmero de links do arquivo arqses1ex3 e compare com aquele obtido
na Atividade 1.2. Explique a diferena.
3. Crie um symbolic link para o arquivo arqses1ex3, que dever se chamar hosts.symbolic.
4. O nmero de links do arquivo arqses1ex3 aumentou?
26
Ad
min
istr
ao
de
Sist
emas
Lin
ux
5. Caso no tenha aumentado, por que isso aconteceu, considerando que foi criado um
link para ele?
6. Qual o tamanho do arquivo hosts.symbolic?
7. Voc percebe alguma correlao entre o tamanho e o arquivo para o qual ele aponta?
Atividade 1.4 Trabalhando com hard link e symbolic link
Se o arquivo original arqses1ex3 fosse removido, o que aconteceria se tentssemos acess-lo
pelo hard link? E pelo symbolic link?
Depois de responder a essas questes, remova o arquivo criado (arqses1ex3) e verifique se
as suas respostas esto corretas.
Atividade 1.5 Conhecendo limitaes do hard link
Crie um arquivo chamado arqses1ex6. Em seguida, crie um hard link para esse arquivo com o nome
link-arqses1ex6 no diretrio /tmp. O que aconteceu? Por qu? Como resolver esse problema?
Para que esta atividade tenha efeito, o diretrio /tmp dever ter sido criado numa
partio diferente da partio onde se encontra o home do usurio. Caso essa situ-
ao no ocorra, verifique se existe o diretrio /var/tmp e veja se ele est em outra
partio. Se for o caso, use este ltimo para fazer a atividade.
Atividade 1.6 Criando links para diretrios
Crie, no seu diretrio home, um link simblico para o diretrio /usr/bin com o nome de
link-bin. Com o link criado, execute o seguinte:
1. Mude para o diretrio link-bin.
2. Agora, v para o diretrio pai (utilize a notao ..).Voc saberia explicar por que se
encontra no seu diretrio home e no no diretrio /usr?
Atividade 1.7 Alterando permisses de arquivos e diretrios
O comando chmod utilizado para modificar as permisses de um arquivo. Utilizando a
notao octal, execute a seguinte sequncia:
1. Modifique a permisso do seu diretrio home de modo a retirar a permisso de escrita do
seu dono.
2. Verifique as permisses associadas ao arquivo arqses1ex6. Voc tem permisso para
escrever nesse arquivo? E o grupo?
3. Tente remover o arquivo arqses1ex6. Voc conseguiu? Em caso negativo, voc sabe
explicar o motivo?
4. Modifique as permisses do arquivo arqses1ex6 de forma a retirar a permisso de escrita
para o dono e coloc-la para o grupo.
5. Com o uso de redirecionamento, tente copiar o contedo do seu diretrio home para
dentro do arquivo arqses1ex6.
6. Torne a colocar a permisso para escrita no seu diretrio home para o dono.
27
C
aptu
lo 1
- Ro
teir
o de
Ati
vida
des
Atividade 1.8 Atribuindo as permisses padres
Crie arquivos (arq1ses1ex9, arq2ses1ex9 etc.) e diretrios (dir1ses1ex9, dir2ses1ex9 etc.), aps
definir cada uma das seguintes umasks: 000; 002; 003; 023; 222; 022. Em seguida, observe as
permisses que foram associadas a cada um dos arquivos e diretrios.
Atividade 1.9 Entendendo as permisses p