Administração de Sistemas Linux.pdf

241
Administração de Sistemas Linux Ari Frazão Jr. Marcelo Braga

Transcript of Administração de Sistemas Linux.pdf

  • 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