Mudanças entre as edições de "PJI2-2018-1"
Linha 704: | Linha 704: | ||
</font> | </font> | ||
{{Collapse bottom | Aula 5}} | {{Collapse bottom | Aula 5}} | ||
+ | |||
+ | =07/03/2018: Usuários e grupos = | ||
+ | |||
+ | {{Collapse top | Aula 6}} | ||
+ | * [http://www.linfo.org/root.html Root] | ||
+ | * [https://en.wikipedia.org/wiki/Superuser Superusuário] | ||
+ | * [https://wiki.archlinux.org/index.php/users_and_groups Usuários e grupos] | ||
+ | |||
+ | ===Usuários e grupos=== | ||
+ | |||
+ | Um usuário Linux é uma entidade que possui uma identificação no sistema onde os principais parâmetros são: login, senha, e número de identificação. Estas informações permitem ao Linux controlar como o acesso é garantido aos usuários e o que eles podem fazer depois de obter a permissão de acesso. Um grupo é um conjunto de usuários. Cada grupo também possui identificação única no sistema, um nome e um número. O administradores de sistemas normalmente fazem controle de acesso por meio dos grupos. | ||
+ | |||
+ | Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações: | ||
+ | |||
+ | * '''Nome de usuário (ou ''login''):''' um apelido que identifica o usuário no sistema | ||
+ | * '''UID (User Identifier):''' um número único que identifica o usuário | ||
+ | * '''GID (Group Identifier):''' o número do grupo primário do usuário | ||
+ | * '''Senha (password):''' senha para verificação de acesso | ||
+ | * '''Nome completo (''full name''):''' nome completo do usuário | ||
+ | * '''Diretório inicial (''homedir''):''' o subddiretório pessoal do usuário, onde ele é colocado ao entrar no sistema | ||
+ | * '''Shell:''' o programa a ser executado quando o usuário entrar no sistema | ||
+ | |||
+ | As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de ''bases de dados de usuários''). Dentre elas, a mais simples é composta pelo arquivo [http://www.kernel.org/doc/man-pages/online/pages/man5/passwd.5.html ''/etc/passwd'']: | ||
+ | |||
+ | root:x:0:0:root:/root:/bin/bash | ||
+ | sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false | ||
+ | suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash | ||
+ | wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false | ||
+ | man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash | ||
+ | news:x:9:13:News system:/etc/news:/bin/bash | ||
+ | uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash | ||
+ | roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash | ||
+ | |||
+ | Acima um exemplo de arquivo ''/etc/passwd'' | ||
+ | |||
+ | Cada linha desse arquivo define uma conta de usuário no seguinte formato: | ||
+ | |||
+ | ''nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell'' | ||
+ | |||
+ | O campo ''senha'' em ''/etc/passwd'' pode assumir os valores: | ||
+ | * ''x'': significa que a senha se encontra em ''/etc/shadow'' | ||
+ | * ''*'': significa que a conta está bloqueada | ||
+ | * ''senha encriptada'': a senha de fato, porém encriptada usando algoritmo hash [http://pt.wikipedia.org/wiki/Md5 MD5] ou [http://www.kernel.org/doc/man-pages/online/pages/man3/crypt.3.html crypt]. Porém usualmente a senha fica armazenada no arquivo ''/etc/shadow''. | ||
+ | |||
+ | O arquivo ''/etc/shadow'' armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações: | ||
+ | * Nome de usuário | ||
+ | * Senha encriptada (sobrepõe a senha que porventura exista em ''/etc/passwd'') | ||
+ | * Data da última modificação da senha | ||
+ | * Dias até que a senha possa ser modificada (validade mínima da senha) | ||
+ | * Dias após que a senha deve ser modificada | ||
+ | * Dias antes da expiração da senha em que o usuário deve ser alertado | ||
+ | * Dias após a expiração da senha em que a conta é desabilitada | ||
+ | * Data em que a conta foi desabilitada | ||
+ | |||
+ | Um exemplo do arquivo ''/etc/shadow'' segue abaixo: | ||
+ | |||
+ | root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922:::::: | ||
+ | suse-ncc:!:13922:0:99999:7::: | ||
+ | uucp:*:13922:::::: | ||
+ | wwwrun:*:13922:::::: | ||
+ | roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7::: | ||
+ | |||
+ | ''Exercício: quando a senha do usuário ''roberto'' irá expirar ?'' | ||
+ | |||
+ | Um grupo é um conjunto de usuários definido da seguinte forma: | ||
+ | * '''Nome de group (group name):''' o nome que identifica o grupo no sistema | ||
+ | * '''GID (Group Identifier):''' um número único que identifica o grupo | ||
+ | * '''Lista de usuários:''' um conjunto de usuários que são membros do grupo | ||
+ | |||
+ | Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo ''/etc/group'' a mais simples delas: | ||
+ | |||
+ | root:x:0: | ||
+ | trusted:x:42: | ||
+ | tty:x:5: | ||
+ | utmp:x:22: | ||
+ | uucp:x:14: | ||
+ | video:x:33:roberto | ||
+ | www:x:8:roberto | ||
+ | users:x:100: | ||
+ | radiusd:!:108: | ||
+ | vboxusers:!:1000: | ||
+ | |||
+ | Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em ''/etc/passwd''), ou que aparecem listados em ''/etc/group''. | ||
+ | |||
+ | === Gerenciamento de usuários e grupos === | ||
+ | |||
+ | Para gerenciar usuários e grupos podem-se editar diretamente os arquivos ''/etc/passwd'', ''/etc/shadow'' e ''/etc/group'', porém existem utilitários que facilitam essa tarefa: | ||
+ | |||
+ | * '''useradd''' ou '''adduser''': adiciona um usuário | ||
+ | ** Ex: ''useradd -m roberto'' : cria o usuário ''roberto'' juntamente com o diretório (-m --makedir). | ||
+ | ** Ex: ''useradd -c "Roberto de Matos" -m roberto'' : cria o usuário ''roberto'' com nome completo "Roberto de Matos" | ||
+ | ** Ex: ''useradd -c "Roberto de Matos" -g users -m -d /usuarios/roberto -s /bin/tcsh roberto'' : cria o usuário ''roberto'' com nome completo "Roberto de Matos", grupo ''users'', diretório inicial /usuarios/roberto e shell /bin/tcsh | ||
+ | * '''userdel:''' remove um usuário | ||
+ | ** Ex: ''userdel roberto'' : remove o usuário ''roberto'', porém preservando seu diretório home | ||
+ | ** Ex: ''userdel -r roberto'' : remove o usuário ''roberto'', incluindo seu diretório home | ||
+ | * '''usermod:''' modifica as informações da conta de um usuário | ||
+ | ** Ex: ''usermod -g wheel roberto'' : modifica o GID do usuário ''roberto'' | ||
+ | ** Ex: ''usermod -G users,wheel roberto'' : modifica os grupos secundários do usuário ''roberto'' | ||
+ | ** Ex: ''usermod -d /contas/roberto roberto'' : modifica o diretório inicial do usuário ''roberto'' (mas não copia os arquivos ...) | ||
+ | ** Ex: ''usermod -l robertomatos roberto'' : modifica o login do usuário ''roberto'' | ||
+ | ** Ex: ''usermod -m ...'' : cria o diretório home do usuário ''roberto'' | ||
+ | ** Ex: ''usermod -c "Roberto Matos, R. dos Navegantes, 33333333"'' : atribui comentários ao usuário ''roberto'' | ||
+ | * '''passwd:''' modifica a senha de usuário | ||
+ | ** Ex: ''passwd roberto'' | ||
+ | * '''login:''' logo como outro usuário. Tem de estar como root | ||
+ | ** Ex: ''login roberto'' | ||
+ | * '''groupadd:''' adiciona um grupo | ||
+ | ** Ex: ''groupadd ger'': cria o grupo ''ger'' | ||
+ | * '''groupdel:''' remove um grupo | ||
+ | ** Ex: ''groupdel ger'': remove o grupo ''ger'' | ||
+ | |||
+ | <!--Esses utilitários usam os arquivos ''/etc/login.defs'' e ''/etc/default/useradd'' para obter seus parâmetros padrão. O ''/etc/adduser.conf'' tem o mesmo intuito mas é seta exclusivamente os parâmetros do comando ''adduser''. O arquivo /etc/login.defs contém uma série de diretivas e padrões que serão utilizados na criação das próximas contas de usuários. Seu principal conteúdo é: | ||
+ | |||
+ | MAIL_DIR dir # Diretório de e-mail | ||
+ | PASS_MAX_DAYS 99999 #Número de dias até que a senha expire | ||
+ | PASS_MIN_DAYS 0 #Número mínimo de dias entre duas trocas senha | ||
+ | PASS_MIN_LEN 5 #Número mínimo de caracteres para composição da senha | ||
+ | PASS_WARN_AGE 7 #Número de dias para notificação da expiração da senha | ||
+ | UID_MIN 500 #Número mínimo para UID | ||
+ | UID_MAX 60000 #Número máximo para UID | ||
+ | GID_MIN 500 #Número mínimo para GID | ||
+ | GID_MAX 60000 #Número máximo para GID | ||
+ | CREATE_HOME yes #Criar ou não o diretório home | ||
+ | |||
+ | Como o login.defs o arquivo /etc/default/useradd contém padrões para criação de contas. Seu principal conteúdo é: | ||
+ | |||
+ | GROUP=100 #GID primário para os usuários criados | ||
+ | HOME=/home #Diretório a partir do qual serão criados os “homes” | ||
+ | INACTIVE=-1 #Quantos dias após a expiração da senha a conta é desativada | ||
+ | EXPIRE=AAAA/MM/DD #Dia da expiração da conta | ||
+ | SHEL=/bin/bash #Shell atribuído ao usuário. | ||
+ | SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários. | ||
+ | GROUPS=video,dialout | ||
+ | CREATE_MAIL_SPOOL=no | ||
+ | |||
+ | O /etc/adduser.conf também possui uma série de padrões que funcionam especificamente para o comando adduser: | ||
+ | DSHELL=/bin/bash #Shell atribuído ao usuário. | ||
+ | DHOME=/home #Diretório a partir do qual serão criados os “homes” | ||
+ | SKEL=/etc/skel #Arquivos e diretórios padrão para os novos usuários. | ||
+ | FIRST_UID=1000 #Número mínimo para UID | ||
+ | LAST_UID=29999 #Número máximo para UID | ||
+ | FIRST_GID=1000 #Número mínimo para GID | ||
+ | LAST_GID=29999 #Número máximo para GID | ||
+ | QUOTAUSER="" #Se o sistema de cotas estiver funcional, pode atribuir quota ao usuário criado.--> | ||
+ | |||
+ | === Atividade === | ||
+ | |||
+ | Esta parte da atividade cada aluno executa individualmente em sua máquina, fazendo uso da devida máquina virtual. | ||
+ | |||
+ | # Crie um usuário com o nome de jose usando o comando adduser. | ||
+ | # Dê ao usuário jose a senha jose123. | ||
+ | # Confirme a correta criação do usuário jose: <syntaxhighlight lang=bash> tail /etc/passwd </syntaxhighlight>...ou:<syntaxhighlight lang=bash> grep jose /etc/passwd</syntaxhighlight>... ou<syntaxhighlight lang=bash>id jose</syntaxhighlight> | ||
+ | # Confirme se o diretório home de jose foi criado corretamente dentro de /home. | ||
+ | # Logue utilizando o usuário jose.<syntaxhighlight lang=bash>su - jose</syntaxhighlight> | ||
+ | # Crie o grupo turma. | ||
+ | # Crie o diretório manoel em /home. | ||
+ | # Crie um usuário com o nome de manoel usando o comando useradd. Deve-se ao criar o usuário definir os seguintes parâmetros: | ||
+ | ## Pertencer ao grupo turma; | ||
+ | ## O diretório home deve ser /home/manoel; | ||
+ | ## Configurar o shell do usuário como sendo /bin/bash; | ||
+ | ## Observar qual a diferença entre os comandos adduser e useradd. <syntaxhighlight lang=text> useradd -g turma -d /home/manoel -s /bin/bash manoel </syntaxhighlight> | ||
+ | # Dê ao usuário manoel a senha mane123. <syntaxhighlight lang=text> passwd manoel </syntaxhighlight> | ||
+ | # Acrescente, por comandos, ao perfil do usuário seu nome completo e endereço: Manoel da Silva, R. dos Pinheiros, 2476666. <syntaxhighlight lang=text> usermod -c "Manoel da Silva, R. dos Pinheiros, 2476666" manoel </syntaxhighlight> | ||
+ | # Verifique o arquivo /etc/passwd e confirme se o usuário manoel está OK. | ||
+ | # Mude, por comandos, o diretório home do manoel de /home/manoel para /home/contas/manoel. <syntaxhighlight lang=text> usermod -d /home/contas/manoel manoel </syntaxhighlight> | ||
+ | # Verifique o arquivo /etc/passwd e confirme a alteração. | ||
+ | # Logue como manoel e verifique as mensagens na tela. <syntaxhighlight lang=text> login manoel </syntaxhighlight> | ||
+ | # Crie o diretório /home/contas e dentro de contas crie o diretório manoel. Tente logar novamente. | ||
+ | # Mude o login do manoel para manoelsilva. <syntaxhighlight lang=text> usermod -l manoelsilva manoel </syntaxhighlight> | ||
+ | # Torne o usuário manoelsilva capaz de executar comandos com sudo | ||
+ | # Logue como manoelsilva | ||
+ | # Estando logado como manoelsilva, remova o usuário ''jose'' | ||
+ | # Ainda logado como manoelsilva, desative sua interface de rede | ||
+ | # Teste a comunicação pela rede, que não deve funcionar. Em seguida, reative a interface de rede. | ||
+ | # Deslogue de manoelsilva | ||
+ | # Remova os usuários criados, inclusive seus diretórios home | ||
+ | # Remova os grupos criados | ||
+ | |||
+ | {{Collapse bottom | Aula 6}} |
Edição das 16h35min de 6 de março de 2018
Projeto Integrador II
Professores: Ederson Luiz de Souza Santos (ederson.luiz@ifsc.edu.br) e Mayara de Sousa (mayara.sousa@ifsc.edu.br)
Encontros: 4a feira/19:00, 5a feira/19:00
Atendimento paralelo: 3a, 4a, 5a e 6a feira 17:30 h
Coordenadoria pedagógica (Graciane): graciane@ifsc.edu.br (3381-2890, 3381-2842)
Endereço encurtado: http://bit.ly/pji2-2018-1
Objetivo Geral
Implantar rede de dados e telefônica de pequeno porte, típica de um pequeno escritório.
Ementa
Introdução e histórico das telecomunicações e da Internet. Uso de serviços e aplicações oferecidos pelas redes de telecomunicações. Conceitos sobre redes de computadores: comutação de pacotes versus comutação de circuitos, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico: telefonia fixa e móvel, centrais de comutação, telefonia IP e convergência. Integração de serviços de voz convencionais e VoIP.
Bibliografia
- FOROUZAN, Behrouz A.; FEGAN, Sophia Chung. Comunicação de dados e redes de computadores. Tradução de Ariovaldo Griesi. 4. ed. São Paulo: McGraw-Hill, 2008. 1134 p., il. ISBN 9788586804885.
- KUROSE, J. e ROSS, K. Redes de Computadores e a Internet: Uma abordagem top-down. Tradução da 3a edição, Addison Wesley, 2006.
- COLCHER, Sérgio. VOIP: voz sobre IP. Rio de Janeiro: Elsevier, 2005.
Material de apoio
- Linux
- Redes
- Outros
Alguns textos interessantes
- A história dos telefones celulares
- Telebrasil (Associação Brasileira de Telecomunicações)
- Telecom no Brasil: um panorama
- Estatísticas sobre telecomunicações no Brasil
- Principais grupos de telecomunicações no Brasil
- Telecomunicações: O Novo Cenário (BNDES)
- Desafios e Oportunidades do Setor de Telecomunicações no Brasil (IPEA)
- Netflix abocanha 34% de todo o tráfego da internet na América do Norte
- Tráfego total VoIP na Internet
- Internet no Brasil 2014 (dados e fontes)
- Internet: como estão as velocidades nos principais países
- Apresentação sobre redes de computadores
- O Mundo Submarino da Internet
- Rede Ipê: a Rede Nacional de Pesquisa (RNP)
- Openwrt no RaspberryPi
Oportunidades para Técnicos em Telecomunicações
- Ofertas de vagas para técnico em Telecom
- Ofertas de vagas para técnico em Telecom no SINE
- Salário médio do Técnico em Telecomunicações no Brasil
Documentários sobre telecomunicações
- História das Telecomunicações
- Inventos: Telefones Celulares (video Discovery)
- Documentário É Logo Ali: parte 1 e parte 2
- Video da Petrobras
Curiosidades
- Telex: um serviço já extinto (?!)
- Submarine Cable Map
- Mapa de Ataques
- Panorama do Tráfego - RNP
- Uma semana na vida do Administrador de Suporte do "Inferno" (humor)
- Vaga de Técnico em Redes na RNP: um exemplo de oferta de emprego
- Empoderar, dar autonomia, não esconder o código
- Carrier Grade Linux (CGL): Linux para Telecomunicações
15/02/2018: Apresentação da disciplina
Aula 1 |
---|
Arquivo apresentação da disciplinaApresentação da disciplina 2018-1 Projeto Integrador IIO componente Curricular Projeto Integrador II deve tratar conceitos sobre redes de computadores, redes locais e rede Internet. Instalação de computadores e integração a uma rede local e a Internet. Sistema operacional Linux. Introdução ao sistema telefônico. Integração de serviços de voz convencionais e VoIP. |
21/02/2018: Sistema operacional e introdução ao Linux
Aula 2 |
---|
O que é GNU/LinuxLinux é o núcleo do sistema operacional, programa responsável pelo funcionamento do computador, que faz a comunicação entre hardware (impressora, monitor, mouse, teclado) e software (aplicativos em geral). O conjunto do kernel e demais programas responsáveis por interagir com este é o que denominamos sistema operacional. O kernel é o coração do sistema. Os principais programas responsáveis por interagir com o kernel foram criados pela fundação GNU. Por este motivo é mais correto nos referenciarmos ao sistema operacional como GNU/Linux ao invés de apenas Linux. Uma distribuição nada mais é que o conjunto de kernel, programas de sistema e aplicativos reunidos num único CD-ROM (ou qualquer outro tipo de mídia). Hoje em dia temos milhares de aplicativos para a plataforma GNU/Linux, onde cada empresa responsável por uma distro escolhe os aplicativos que nela deverão ser inclusos. Como o kernel trabalhaAssim que o computador é ligado, o kernel é acionado e começa a detectar todo o hardware que ele possui e o que precisa para funcionar. Após o carregamento, o núcleo assume outras funções: gerenciar os processos, os arquivos, a memória e os dispositivos periféricos, fazendo com que ele seja o “organizador” de tudo o que acontece na máquina. Após realizar todas essas etapas, o sistema operacional está pronto para funcionar. Ele carrega as funções responsáveis por checar o que deve ser inicializado em nível de software e processos, como, por exemplo, o conteúdo do arquivo /etc/init. Geralmente, o que é carregado é a tela de login do usuário. Com o usuário logado e o sistema operacional trabalhando, o kernel passa a executar suas funções, como a de controlar o uso da memória pelos programas ou a de atender a chamada de uma interrupção de hardware. É possível baixar o código-fonte e o próprio kernel do Linux a partir do site oficial. Nesse endereço não só é possível ter a última versão como também as um pouco mais antigas. Além disso, lá o usuário pode obter informações, reportar bugs e participar de listas de discussão. Distribuições LinuxO Linux possui vários sabores e estes são denominados distribuições. Uma distribuição nada mais é que um kernel acrescido de programas escolhidos a dedo pela equipe que a desenvolve. Cada distribuição possui suas particularidades, tais como forma de se instalar um pacote (ou software), interface de instalação do sistema operacional em si, interface gráfica, suporte a hardware. Então resta ao usuário definir que distribuição atende melhor suas necessidades. Interface gráficaUma das coisas que os usuários mais estranham quando migram para o Linux é a existência de diversas interfaces gráficas, coisa que não é comum no Windows nem no Mac OS X, a não ser quando o fabricante decide fazer alguma alteração.
Diferente do que acontece nesses outros sistema operacionais, no Linux é possível mudar a interface gráfica do sistema.
Mudando a interface gráfica do sistema, a distribuição Linux continua sendo a mesma mas toda a aparência é alterada.
Quem não conhece a diferença entre sistema operacional e interface gráfica pode pensar que se trata de outra distribuição ou até mesmo de outro sistema operacional.
As interfaces gráficas mais conhecidas são Unity, Gnome, KDE, XFCE, LXDE, Cinnamon e Mate. Unity KDE Cinnamon Mate Estrutura de diretórios no LinuxO primeiro choque para quem está vindo do Windows é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. Basicamente, no Windows temos os arquivos do sistema concentrados nas pastas Windows e Arquivos de programas e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório /home. Mas, as diferenças não param por aí. Para onde vão os programas que são instalados se não existe uma pasta central como a arquivos de programas? E para onde vão os arquivos de configuração se o Linux não possui nada semelhante ao registro do Windows? A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz. Dentro deste diretório temos não apenas todas as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos. Entendendo a estrutura de diretórios
Estrutura de diretórios Exercícios1 - Explique o que é:
2 - Qual a diferença entre os sistemas de arquivos do Windows e Linux? 3 - Mude a proteção de tela para Cosmos com tempo de espera de 10 minutos. 4 - Através da Central de programas do Ubuntu Mate, instale os seguintes programas:
5 - Crie um diretório dentro da pasta pessoal do aluno com o nome exercicios. 6 - Para todos os exercícios anteriores, deve-se usar o Libreoffice Writer para descrever os procedimentos, juntamente com a captura da tela no momento da execução da tarefa. Ao finalizar, salve o arquivo com o nome Exercicio aula 2 PJI2 - Seu_nome, no diretório exercicio criado anteriormente.
Envie o arquivo para os seguintes emails, com o título Aula 2 PJI2: 7 - Repasse esse conteúdo para o seu manual do projeto final, criado na aula anterior, via Google Documentos.
|
22/02/2018: Instalação de Sistema Operacional
Aula 3 |
---|
Instalando Sistema OperacionalSistemas operacionais baseados em Linux já foram complicados de usar, ao menos quando comparados ao Windows, mas avanços recentes têm deixado a plataforma mais amigável. No Linux, você vai encontrar alguns programas com os quais está acostumado, como Firefox, Chrome e outros. A maioria, entretanto, não está disponível porque o Linux possui uma comunidade de desenvolvedores que cria, gratuitamente, programas equivalentes para o OS. Não há Photoshop, por exemplo, mas há o GIMP. Não há Microsoft Office, mas há o LibreOffice. Não há Lightroom, mas há o Darktable. Alguns dos programas não são tão bons quanto os disponíveis para Windows, mas por outro lado alguns são até melhores. Cabe a você experimentar. Você não vai precisar digitar nenhum comando complexo ou adquirir conhecimento avançado prévio para fazer isso, mas o processo é longo e varia um pouquinho de computador para computador. É possível que você mexa com certas coisas que nunca viu. Este processo (e o sistema Ubuntu) é utilizado por milhões de pessoas no mundo. Iremos utilizar um software de virtualização chamado Virtualbox. o Virtualbox é fornecido pela Oracle, de forma gratuita. Caso você queira instalar o Virtualbox no seu computador, pode baixar deste site. Lembre-se de baixar a versão adequada para o seu sistema operacional, juntamente com o Extension Pack (software adicional para suporte a diversos dispositivos do seu computador). Para a criação da máquina virtual, deixaremos com a seguinte configuração:
A versão do sistema operacional que utilizaremos é o Ubuntu Mate 14. Ao iniciar a instalação, a primeira etapa é a escolha do idioma e se queremos somente experimentar o Ubuntu ou instalar. a próxima etapa nos dá algumas orientações e também permite escolhermos se queremos baixar atualizações e instalar programas de terceiros. Logo após, teremos que escolher entre a opção de apagar o disco inteiro de forma automatizada pelo instalador ou marcar a opção avançada. Neste momento iremos utilizar a opção de apagar o disco inteiro, pois estaremos entrando nos detalhes de particionamento, sistema de arquivos e tipos de partição em outra aula. Também escolhemos o local onde estamos. Devemos definir o layout do teclado. E por fim, escolhemos o nome, nome do computador, nome de usuário e senha. Agora é só aguardar... Terminada a instalação do sistema operacional, devemos instalar alguns pacotes necessários para que a nossa máquina virtual possa ser utilizada em modo de tela cheia. Para tanto iremos utilizar o terminal do mate e digitar os comandos a seguir:
Após esta instalação, podemos clicar em Dispositivos, e ir na opção Inserir imagem de CD dos adicionais para convidado e executar a aplicação que irá abrir. ExercíciosNeste exercício iremos efetuar a instalação de um sistema operacional diferente. Iremos instalar o Linux Mint. A configuração da máquina virtual deve ser a seguinte:
|
28/02/2018: Uso do SO: processo de boot, componentes do computador, manipulação do arquivos e diretórios
Aula 4 |
---|
Processo de bootQuando ligamos o computador, o primeiro software que é carregado se chama BIOS (Basic input/output system). Ele se encontra em um chip integrado na placa-mãe, que possui uma memória ROM e é a primeira coisa que começa a funcionar quando se liga o computador. A primeira etapa é a leitura das informações contidas no CMOS (Complementary Metal-Oxide-Semiconductor) com as configurações personalizadas pelo usuário no SETUP. O BIOS é responsável pela inicialização do hardware durante o processo de inicialização em computadores e o suporte básico a estes componentes. Sequência de funcionamento do BIOSQuando o computador é ligado, o BIOS opera na seguinte sequência:
MBR (Master Boot Record)Depois do Bios inicializar os componentes do computador, carrega o sistema operacional, lendo o primeiro setor do disco rígido o "Master Boot Record" (MBR), também conhecido como trilha zero ou trilha MBR. No MBR vai o gerenciador de boot. Os dois mais usados no Linux são o lilo e o grub. Na verdade, no MBR mesmo vai apenas um bootstrap, um pequeno software que instrui o BIOS a carregar o executável do lilo ou grub em um ponto específico do HD. Lembre-se que o MBR propriamente dito ocupa um único setor do HD, apenas 512 bytes. Não é possível armazenar muita coisa diretamente nele. O gerenciador de boot utiliza os primeiros 446 bytes do MBR. Os 66 bytes restantes são usados para armazenar a tabela de partições, que guarda informações sobre onde cada partição começa e termina. o gerenciador de boot tem a função de carregar o kernel e, a partir dele todo o restante do sistema. O lilo e o grub podem ser configurados ainda para carregar o Windows ou outros sistema instalados em dual boot. Muitas distribuições configuram isso automaticamente durante a instalação. Inicialmente, o kernel é um arquivo compactado e somente-leitura, o arquivo /boot/vmlinuz. Ele é descompactado em uma área reservada da memória RAM e roda a partir dalí, aproveitando o fato de que a memória RAM é muito mais rápida que o HD. Este executável principal do kernel nunca é alterado durante o uso normal do sistema, ele muda apenas quando você recompila o kernel manualmente ou instala uma nova versão. Depois de carregado, a primeira coisa que o kernel faz é montar a partição raiz, onde o sistema está instalado, inicialmente como somente-leitura. Neste estágio ele carrega o init, o software que inicia o boot normal do sistema, lendo os scripts de inicialização e carregando os módulos e softwares especificados neles. O arquivo de configuração do init é o "/etc/inittab". Ele é geralmente o primeiro arquivo de configuração lido durante o boot. A principal tarefa dele é carregar os demais scripts de inicialização, usados para carregar os demais componentes do sistema e fazer todas as operações de checagem, necessárias durante o boot. Todas essas etapas são realizadas por scripts, localizados na pasta "/etc/init.d", que executam os comandos apropriados para inicializar os serviços e executar as demais operações necessárias. Alguns deles são executados apenas durante o boot (verificando alguma configuração, por exemplo), enquanto outros inicializam serviços que ficam ativos continuamente.
Manipulação de arquivos e diretóriosUma tarefa usual em um sistema operacional é localizar arquivos. Essa procura pode ser baseada no nome ou parte do nome de arquivo, na data de criação ou última modificação, no nome do usuário ou grupo dono, ou outros atributos do arquivo. Pode ser inclusive baseada numa combinação dessas informações. Por exemplo, pode ser necessário procurar todos os arquivos de música ou video, ou então todos os programas (arquivos executáveis) que pertençam ao superusuário (usuário root). Existem programas capazes de fazer tais buscas tanto no ambiente gráfico quanto no modo texto. As buscas a serem realizadas são:
Para iniciar, vamos usar programas gráficos para fazer buscas. Usando o ambiente gráficoO primeiro programa gráfico a ser usado é o caja (ou nautilus em outras versões do Ubuntu que não o Mate), o gerenciador de arquivos disponível no Ubuntu Linux. Para usá-lo para fazer buscas selecione a opção de pesquisa:
Usando a linha de comando (modo texto)O caja funciona como um gerenciador de arquivos e diretórios, possibilitando investigar que arquivos existem em cada diretório, entre outras coisas. Com ele é simples listar o conteúdo de um ou mais diretórios, bastando navegar por sua interface. Mas na linha de comando não há essa facilidade. Nela devem-se usar alguns programas para obter um resultado parecido. Para começar a usar a linha de comando, devem-se conhecer e saber usar programas para navegar por diretórios, listar diretórios, procurar arquivos e diretórios e copiar arquivos. Árvore de diretóriosAntes de iniciarmos o estudo de comandos dos Linux é necessário entendermos como funciona a sua organização de arquivos e diretórios. Isso é importante para conseguirmos especificar adequadamente o caminho de arquivos e diretórios que desejamos manipular quando formos utilizar os mais diversos comandos. Na figura acima é mostrado um exemplo de como são organizados arquivos e diretórios no Linux. Como é possível notar arquivos e diretórios são organizados de forma hierárquica, formando o que se chama de Árvore de Diretórios. No Linux há um diretório de nível superior chamado root que é identificado como apenas uma barra (/). Abaixo deste diretório principal estão organizados hierarquicamente todos os demais diretórios e arquivos existentes. Os diretórios que estão contidos em / são chamados de sub-diretórios. No exemplo mostrado na Figura acima podemos perceber que em / está o sub-diretório home, dentro de home está o sub-diretórios user1 e dentro de user1 estão os sub-diretórios doc e videos.
Por exemplo, o caminho absoluto do diretório doc que aparece na figura é /home/user1/doc. Já se o diretório atual do usuário for /home, o caminho relativo do diretório doc é user1/doc. Diretório atualNa linha de comando existe o conceito de diretório atual ou corrente. Quando se acessa esse tipo de interface, existe um diretório em que operações sobre arquivos são realizadas. Para descobrir o diretório atual usa-se o programa pwd, como mostrado a seguir: msobral@turing:~$ pwd
/home/aluno
Listagem de diretórioNo exemplo anterior, o diretório atual é /home/aluno. Qualquer operação sobre arquivos ou diretórios será feita tendo como base esse diretório. A operação mais simples é a listagem de diretório, que se faz com o programa ls. Aproveitando o exemplo acima, a listagem do diretório atual teria este resultado: msobral@turing:~$ ls
001.jpg iperf-2.0.5.tar.gz prova4-2011-1.odt
002.jpg juliano.tgz prova4-2011-1-rec.odt
003.jpg klaus prr.log
004.jpg livros public_html
005.jpg Makefile.in quartus.cap
006.jpg nhrp.tar radiusd_test.py
007.jpg nohup.out rco2
008.jpg passwd.web rmu
msobral@turing:~$
Como já visto em uma seção anterior, o programa ls pode apresentar mais informações sobre arquivos e subdiretórios se for executado com a opção -l (listagem longa). Experimente executar o ls com esta opação. Para conhecer outras opções e obter mais detalhes, leia a página de manual do comando: man ls
... ou acesse isto. Mudança de diretórioA listagem apresentada revela vários arquivos e subdiretórios existentes no diretório atual. Sabendo que public_html é um subdiretório, pode-se desejar mudar o diretório atual de forma a entrar nesse subdiretório. Isso pode ser facilmente realizado com o programa cd: aluno@turing:~$ cd public_html
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
Diretório atual e diretório acimaO diretório imediatamente acima é referido com .. (dois pontos). Esse é um atalho que possibilita subir um nível de diretório sem conhecer o nome do diretório imediatamente superior. Assim, para voltar ao diretório imediatamente anterior ao diretório atual pode-se fazer isto: aluno@turing:~/public_html$ cd ..
aluno@turing:~$ pwd
/home/aluno
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
aluno@turing:~/public_html$ cd .
aluno@turing:~/public_html$ pwd
/home/aluno/public_html
... nada acontecerá (o diretório atual não será modificado). Criação e remoção de diretórioUm diretório pode ser criado com o comando mkdir. O uso desse comando pede apenas um argumento, que é o nome ou caminho do diretório a ser criado: aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ mkdir teste
aluno@M2:~$ cd teste
aluno@M2:~$ pwd
/home/aluno/teste
Para remover um diretório usa-se o comando rmdir. Esse diretório deve estar vazio para o comando consiga removê-lo: aluno@M2:~$ pwd
/home/aluno
aluno@M2:~$ rmdir teste
aluno@M2:~$ cd teste
cd: teste: Arquivo ou diretório não encontrado
aluno@M2:~$ rmdir Downloads
rmdir: falhou em remover “Downloads”: Diretório não vazio
Cópia de arquivosA cópia de arquivos na linha de comando envolve usar o programa cp. Com ele podem-se copiar um ou mais arquivos para um diretório de destino. Por exemplo, para copiar o arquivo 001.jpg para dentro do diretório public_html pode-se fazer o seguinte: aluno@M2:~$ cp 001.jpg public_html
O diretório de destino é sempre o último argumento passado ao programa cp. A cópia de múltiplos arquivos pode ser feita listando-os todos antes do diretório de destino: aluno@M2:~$ cp 001.jpg 002.jpg 003.jpg public_html
aluno@M2:~$ cp *.jpg public_html
aluno@M2:~$ cp 00*.jpg public_html
... em que todos os arquivos cujos nomes iniciem com 00 e terminem com .jpg serão copiados. Renomeação de arquivosArquivos podem ser renomeados com o comando mv. Ele pode ser usado de forma muito parecida com o comando cp. A diferença está na remoção do arquivo original, como se ele sumisse de seu diretório de origem e aparecesse no diretório de destino. aluno@M2:~$ mv mulher_de_40.mp3 Musicas
aluno@M2:~$ ls Musicas
mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
aluno@M2:~$ mv mulher_de_40.mp3 musica_romantica.mp3
aluno@M2:~$ ls musica_romantica.mp3
musica_romantica.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
Remoção de arquivosArquivos podem ser removidos com o comando rm. Cuidado ao utilizá-lo ! Uma vez removido, um arquivo não pode ser recuperado ! aluno@M2:~$ rm mulher_de_40.mp3
aluno@M2:~$ ls mulher_de_40.mp3
não é possível acessar mulher_de_40.mp3: Arquivo ou diretório não encontrado
Curingas (wildcards)Curingas são caracteres especiais usados para selecionar vários arquivos ou diretórios de uma só vez. Os curingas podem ser usados em qualquer comando para especificar nomes de arquivos e diretórios. Dois curingas bastante usados são:
Curingas são muito úteis para operações sobre arquivos e diretórios. Por exemplo, para copiar todos os arquivos de música MP3 pode-se usar o curinga *' da seguinte forma: aluno@M2:~$ cp *.mp3 Musica
aluno@M2:~$ mv *.mp? Videos
Procura por arquivosA procura de arquivos e diretórios pode ser realizada na linha de comando com o programa find. Por exemplo, para localizar todos os arquivos ou diretórios chamados default, e que estejam abaixo de /etc: aluno@D1:~$ find /etc -name default -print
/etc/default
/etc/calendar/default
/etc/X11/xinit/xinput.d/default
aluno@D1:~$
find diretório [opções]
... e muitas outras (consulte o manual do find). Exercícios
|
01/03/2018: Uso do SO: processo de boot, componentes do computador, manipulação do arquivos e diretórios - Continuação
Aula 5 |
---|
Uso do SO: processo de boot, componentes do computador, manipulação do arquivos e diretórios - ContinuaçãoContinuação da aula do dia 28/02/2018.
|
07/03/2018: Usuários e grupos
Aula 6 |
---|
Usuários e gruposUm usuário Linux é uma entidade que possui uma identificação no sistema onde os principais parâmetros são: login, senha, e número de identificação. Estas informações permitem ao Linux controlar como o acesso é garantido aos usuários e o que eles podem fazer depois de obter a permissão de acesso. Um grupo é um conjunto de usuários. Cada grupo também possui identificação única no sistema, um nome e um número. O administradores de sistemas normalmente fazem controle de acesso por meio dos grupos. Um usuário no Linux (e no Unix em geral) é definido pelo seguinte conjunto de informações:
As contas de usuários, que contêm as informações acima, podem ficar armazenadas em diferentes bases de dados (chamadas de bases de dados de usuários). Dentre elas, a mais simples é composta pelo arquivo /etc/passwd: root:x:0:0:root:/root:/bin/bash sshd:x:71:65:SSH daemon:/var/lib/sshd:/bin/false suse-ncc:x:105:107:Novell Customer Center User:/var/lib/YaST2/suse-ncc-fakehome:/bin/bash wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false man:x:13:62:Manual pages viewer:/var/cache/man:/bin/bash news:x:9:13:News system:/etc/news:/bin/bash uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash roberto:x:1001:100:Roberto de Matos:/data1/roberto:/bin/bash Acima um exemplo de arquivo /etc/passwd Cada linha desse arquivo define uma conta de usuário no seguinte formato: nome de usuário:senha:UID:GID:Nome completo:Diretório inicial:Shell O campo senha em /etc/passwd pode assumir os valores:
O arquivo /etc/shadow armazena exclusivamente as informações relativas a senha e validade da conta. Nele cada conta possui as seguintes informações:
Um exemplo do arquivo /etc/shadow segue abaixo: root:$2a$05$8IZNUuFTMoA3xv5grggWa.oBUBfvrE4MfgRDTlUI1zWDXGOHi9dzG:13922:::::: suse-ncc:!:13922:0:99999:7::: uucp:*:13922:::::: wwwrun:*:13922:::::: roberto:$1$meoaWjv3$NUhmMHVdnxjmyyRNlli5M1:14222:0:99999:7::: Exercício: quando a senha do usuário roberto irá expirar ? Um grupo é um conjunto de usuários definido da seguinte forma:
Assim como as contas de usuários, os grupos ficam armazenados em bases de dados de usuários, sendo o arquivo /etc/group a mais simples delas: root:x:0: trusted:x:42: tty:x:5: utmp:x:22: uucp:x:14: video:x:33:roberto www:x:8:roberto users:x:100: radiusd:!:108: vboxusers:!:1000: Os membros de um grupo são os usuários que o têm como grupo primário (especificado na conta do usuário em /etc/passwd), ou que aparecem listados em /etc/group. Gerenciamento de usuários e gruposPara gerenciar usuários e grupos podem-se editar diretamente os arquivos /etc/passwd, /etc/shadow e /etc/group, porém existem utilitários que facilitam essa tarefa:
AtividadeEsta parte da atividade cada aluno executa individualmente em sua máquina, fazendo uso da devida máquina virtual.
|