Mudanças entre as edições de "GAR12503-2014-2"
Linha 63: | Linha 63: | ||
== Aulas == | == Aulas == | ||
− | === Aula 01 | + | === Aula 01 (06/08) - Introdução. SO Linux. Shell e comandos básicos === |
Conteúdo: | Conteúdo: | ||
*Apresentação da disciplina | *Apresentação da disciplina | ||
Linha 105: | Linha 105: | ||
*[[Media:03-Shell.pdf | Questionário sobre Shell]] | *[[Media:03-Shell.pdf | Questionário sobre Shell]] | ||
− | === Aula 02 | + | === Aula 02 (07/08) - Instalação de aplicativos e Sistemas de arquivos === |
Conteúdo: | Conteúdo: | ||
*Gerenciador de pacotes apt | *Gerenciador de pacotes apt | ||
Linha 410: | Linha 410: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | + | ||
− | === Aula | + | === Aula 03 (12/08) - Gerenciamento de usuários e grupos e Cotas de disco === |
Continuação de Sistemas de arquivos. Gerenciamento de usuários e grupos. Cotas de usuário. | Continuação de Sistemas de arquivos. Gerenciamento de usuários e grupos. Cotas de usuário. | ||
− | [[Media: | + | {{Collapse top | Roteiro}} |
+ | Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional. | ||
+ | [[Media:Gerencia_de_redes.pdf|Apostila]], páginas 61 a 65. | ||
+ | |||
+ | 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 -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 -u 5000 -d /usuarios/roberto -s /bin/tcsh -m roberto'' : cria o usuário ''roberto'' com nome completo "Roberto de Matos", UID 5000, 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 -u 5001 roberto'' : modifica o UID do usuário ''roberto'' | ||
+ | ** 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 ...) | ||
+ | * '''groupadd:''' adiciona um grupo | ||
+ | ** Ex: ''groupadd -g 4444 ger'': cria o grupo ''ger'' com GID 4444 | ||
+ | * '''groupdel:''' remove um grupo | ||
+ | ** Ex: ''groupdel ger'': remove o grupo ''ger'' | ||
+ | * '''groupmod:''' modifica um grupo | ||
+ | ** Ex: ''groupmod -g 5555 ger'': modifica o GID do grupo ger | ||
+ | ** Ex: ''groupmod -A roberto ger'': adiciona o usuário ''roberto'' ao grupo ger | ||
+ | ** Ex: ''groupmod -R roberto ger'': remove o usuário ''roberto'' do 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. | ||
+ | === Permissões === | ||
+ | |||
+ | Há uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa. | ||
+ | |||
+ | Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos. | ||
+ | |||
+ | O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes. | ||
+ | |||
+ | Quando se executa ''ls -l'' em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte: | ||
+ | |||
+ | > ls -l | ||
+ | total 403196 | ||
+ | drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/ | ||
+ | -rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2 | ||
+ | -rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2 | ||
+ | -rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe | ||
+ | -rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe | ||
+ | > | ||
+ | |||
+ | As colunas que aparecem na listagem são: | ||
+ | # Esquema de permissões; | ||
+ | # Número de ligações do arquivo; | ||
+ | # Nome do usuário dono do arquivo; | ||
+ | # Nome do grupo associado ao arquivo; | ||
+ | # Tamanho do arquivo, em bytes; | ||
+ | # Mês da criação do arquivo; Dia da criação do arquivo; | ||
+ | # Hora da criação do arquivo; | ||
+ | # Nome do arquivo; | ||
+ | |||
+ | O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10). | ||
+ | |||
+ | Existem três modos distintos de permissão de acesso: leitura (read), escrita (write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito (de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de execução somente se aplica a arquivos que podem ser executados, obviamente, como programas já compilados ou script shell. Os valores válidos para cada uma das colunas são os seguintes: | ||
+ | *1 d se o arquivo for um diretório;-se for um arquivo comum; | ||
+ | *2,5,8 r se existe permissão de leitura;-caso contrário; | ||
+ | *3,6,9 w se existe permissão de alteração;-caso contrário; | ||
+ | *4,7,10 x se existe permissão de execução;-caso contrário; | ||
+ | |||
+ | A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório. | ||
+ | |||
+ | A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários: | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/chmod.1.html chmod]:''' muda as permissões de acesso (também chamado de modo de acesso). Somente pode ser executado pelo dono do arquivo ou pelo superusuário | ||
+ | ** Ex: ''chmod +x /home/usuario/programa'' : adiciona para todos os usuários a permissão de execução ao arquivo /home/usuario/programa | ||
+ | ** Ex: ''chmod -w /home/usuario/programa'' : remove para todos os usuários a permissão de escrita do arquivo /home/usuario/programa | ||
+ | ** Ex: ''chmod o-rwx /home/usuario/programa'' : remove todas as permissões de acesso ao arquivo /home/usuario/programa para todos os usuários que não o proprietário e membros do grupo proprietário | ||
+ | ** Ex: ''chmod 755 /home/usuario/programa'' : define as permissões rwxr-xr-x para o arquivo /home/usuario/programa | ||
+ | * '''[http://manpages.ubuntu.com/manpages/karmic/en/man1/chown.1.html chown]:''' muda o proprietário de um arquivo. Somente pode ser executado pelo superusuário. | ||
+ | ** Ex: ''chown roberto /home/usuario/programa'': faz com que o usuário ''roberto'' seja o dono do arquivo | ||
+ | * '''[http://manpages.ubuntu.com/manpages/hardy/pt/man1/chgrp.1.html chgrp]''': muda o grupo dono de um arquivo. Somente pode ser executado pelo superusuário. | ||
+ | ** Ex: ''chgrp users /home/usuario/programa'': faz com que o grupo ''users'' seja o grupo dono do arquivo /home/usuario/programa | ||
+ | |||
+ | Há também o utilitário [http://manpages.ubuntu.com/manpages/karmic/en/man1/umask.1posix.html umask], que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos: | ||
+ | |||
+ | * ''umask 022'': tira a permissão de escrita para group e demais usuários | ||
+ | * ''umask 027'': tira a permissão de escrita para group, e todas as permissões para demais usuários | ||
+ | |||
+ | === Atividade === | ||
+ | |||
+ | # Crie o grupo turma. | ||
+ | # Crie o diretório /home/contas. | ||
+ | # Faça cópia dos arquivos a serem alterados: /etc/login.defs e /etc/default/useradd. | ||
+ | # Faça com que o diretório home dos usuários, a serem criados a partir de agora, seja por padrão dentro de /home/contas. | ||
+ | # Faça com que os usuários sejam criados com o seguinte perfil, por padrão: | ||
+ | ## Expiração de senha em 15 dias a partir da criação da conta; | ||
+ | ## Usuário possa alterar senha a qualquer momento; | ||
+ | ## Data do bloqueio da conta em 7 dias após a expiração da senha. | ||
+ | ## Inicie os avisos de expiração da senha 4 dia antes de expirar. | ||
+ | ## Iniciar a numeração de usuários (ID) a partir de 1500. | ||
+ | # Crie um usuário com o nome de manoel, pertencente ao grupo turma. | ||
+ | # Dê ao usuário manoel a senha mane123. | ||
+ | # Acrescente ao perfil do usuário seu nome completo e endereço: Manoel da Silva, R. dos Pinheiros, 2476666. | ||
+ | # Verifique o arquivo /etc/passwd. | ||
+ | # Mude, por comandos, o diretório home do manoel de /home/contas/manoel para /home/manoel. | ||
+ | # Mude o login do manoel para manoelsilva. | ||
+ | # Logue como manoelsilva. | ||
+ | # Recomponha os arquivos originais do item 3. | ||
+ | |||
+ | Permissionamento de arquivos e grupos de usuários | ||
+ | # Crie a partir do /home 3 diretórios, um com nome aln (aluno), outro prf (professor) e o último svd (servidor). | ||
+ | # Crie 3 grupos com os mesmos nomes acima. | ||
+ | # Crie 3 contas pertencentes ao grupo aln: aluno1, aluno2, aluno3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/aln/. Por exemplo para o aluno1 teremos /home/aln/aluno1. | ||
+ | # Crie 3 contas pertencentes ao grupo prf: prof1, prof2, prof3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/prf/. | ||
+ | # Crie 3 contas pertencentes ao grupo svd: serv1, serv2, serv3. Estas contas deverão ter seus diretórios homes criados por comando dentro do diretório /home/svd/. | ||
+ | # Os diretórios dos alunos, e todo o seu conteúdo, devem ser visíveis e editáveis aos membros do próprio grupo, visíveis mas não apagáveis a todos os demais usuários da rede. | ||
+ | # Já os diretórios dos professores e servidores, devem ser mutuamente visíveis, mas não apagáveis, entre os membros dos grupos professores e servidores mas não deve ser sequer visível aos membros do grupo alunos. | ||
+ | {{Collapse bottom | Roteiro}} | ||
+ | |||
+ | <!-- | ||
=== Aula 6 - 27/02 === | === Aula 6 - 27/02 === | ||
Exercícios. | Exercícios. |
Edição das 15h20min de 12 de agosto de 2014
Informações da disciplina
- Professor: Tomas Grimm
- Turma: 1250331
- Encontros: terças e quintas das 18:30 às 20:20 e quartas das 18:30 às 22:30
- Atendimento paralelo:
- terças das 13:30 às 15:20
Plano de aula
Cronograma | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Material auxiliar
- Apostila de Gerência de Redes do Prof. Odilson Tadeu Valle
- Guia rápido de comandos básicos
- Guia rápido de manipulação de diretórios
- Comandos essenciais do VI
- Lista completa de comandos do VI
Aulas
Aula 01 (06/08) - Introdução. SO Linux. Shell e comandos básicos
Conteúdo:
- Apresentação da disciplina
- Introdução a Gerência de Redes de Computadores (slides)
- Sistema Operacional Linux e Redes (slides)
- Shell
- Comandos básicos de Linux
- Editor VI
Comandos básicos Linux |
---|
# Comandos de navegação e interação com arquivos:
ls # listar arquivos
cd # mudar diretório
rm # remover arquivos
cp # copiar arquivos
mv # mover arquivos ou renomeá-los
cat # mostra o conteúdo de um arquivo ou concatena com outro arquivo
more # exibe o conteúdo de um artigo de forma paginada
pwd # mostra o caminho para o diretório atual
rmdir # deleção de diretório
mkdir # criação de diretório
clear # limpa a tela
# Comandos relacionados aos usuários:
who # mostra as sessões abertas na máquina
whoami # mostra o nome do usuário atual
finger # mostra informações de usuário
# Comandos relacionados ao status da memória e do disco:
df # informações de espaço em disco
du # utilização do disco
free # informações de memória
top # mostra processos
|
Atividades:
Aula 02 (07/08) - Instalação de aplicativos e Sistemas de arquivos
Conteúdo:
- Gerenciador de pacotes apt
- Sistemas de arquivos
Instalação de aplicativos |
---|
A instalação de software pode ser feita de diversas formas, dentre as quais serão destacadas três:
Exemplo de uso do apt-get:
lynx http://www.ifsc.edu.br/
Exemplo de uso:
wget ftp://ftp.cn.debian.org/ubuntu-old-releases/ubuntu/pool/main/l/lynx-cur/lynx_2.8.7pre6-1_all.deb wget ftp://mirror.linux.org.au/ubuntu/pool/main/l/lynx-cur/lynx-cur_2.8.7pre6-1_i386.deb
lynx ...
|
Atividades:
Respostas exercício apt |
---|
|
Aula 03 (12/08) - Gerenciamento de usuários e grupos e Cotas de disco
Continuação de Sistemas de arquivos. Gerenciamento de usuários e grupos. Cotas de usuário.
Roteiro |
---|
Criação de contas de usuários e de grupos, e seu uso para conferir permissões de acesso a arquivos, diretórios e recursos do sistema operacional. Apostila, páginas 61 a 65. 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:
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. PermissõesHá uma maneira de restringir o acesso aos arquivos e diretórios para que somente determinados usuários possam acessá-los. A cada arquivo e diretório é associado um conjunto de permissões. Essas permissões determinam quais usuários podem ler, e escrever (alterar) um arquivo e, no caso de ser um arquivo executável, quais usuários podem executá-lo. Se um usuário tem permissão de execução para um diretório, significa que ele pode realizar buscas dentro daquele diretório, e não executá-lo como se fosse um programa. Quando um usuário cria um arquivo ou um diretório, o LINUX determina que ele é o proprietário (owner) daquele arquivo ou diretório. O esquema de permissões do LINUX permite que o proprietário determine quem tem acesso e em que modalidade eles poderão acessar os arquivos e diretórios que ele criou. O super-usuário (root), entretanto, tem acesso a qualquer arquivo ou diretório do sistema de arquivos. O conjunto de permissões é dividido em três classes: proprietário, grupo e usuários. Um grupo pode conter pessoas do mesmo departamento ou quem está trabalhando junto em um projeto. Os usuários que pertencem ao mesmo grupo recebem o mesmo número do grupo (também chamado de Group Id ou GID). Este número é armazenado no arquivo /etc/passwd junto com outras informações de identificação sobre cada usuário. O arquivo /etc/group contém informações de controle sobre todos os grupos do sistema. Assim, pode -se dar permissões de acesso diferentes para cada uma destas três classes. Quando se executa ls -l em um diretório qualquer, os arquivos são exibidos de maneira semelhante a seguinte: > ls -l total 403196 drwxr-xr-x 4 odilson admin 4096 Abr 2 14:48 BrOffice_2.1_Intalacao_Windows/ -rw-r--r-- 1 luizp admin 113811828 Out 31 21:28 broffice.org.2.0.4.rpm.tar.bz2 -rw-r--r-- 1 root root 117324614 Dez 27 14:47 broffice.org.2.1.0.rpm.tar.bz2 -rw-r--r-- 1 luizp admin 90390186 Out 31 22:04 BrOo_2.0.4_Win32Intel_install_pt-BR.exe -rw-r--r-- 1 root root 91327615 Jan 5 21:27 BrOo_2.1.0_070105_Win32Intel_install_pt-BR.exe > As colunas que aparecem na listagem são:
O esquema de permissões está dividido em 10 colunas, que indicam se o arquivo é um diretório ou não (coluna 1), e o modo de acesso permitido para o proprietário (colunas 2, 3 e 4), para o grupo (colunas 5, 6 e 7) e para os demais usuários (colunas 8, 9 e 10). Existem três modos distintos de permissão de acesso: leitura (read), escrita (write) e execução (execute). A cada classe de usuários você pode atribuir um conjunto diferente de permissões de acesso. Por exemplo, atribuir permissão de acesso irrestrito (de leitura, escrita e execução) para você mesmo, apenas de leitura para seus colegas, que estão no mesmo grupo que você, e nenhum acesso aos demais usuários. A permissão de execução somente se aplica a arquivos que podem ser executados, obviamente, como programas já compilados ou script shell. Os valores válidos para cada uma das colunas são os seguintes:
A permissão de acesso a um diretório tem outras considerações. As permissões de um diretório podem afetar a disposição final das permissões de um arquivo. Por exemplo, se o diretório dá permissão de gravação a todos os usuários, os arquivos dentro do diretório podem ser removidos, mesmo que esses arquivos não tenham permissão de leitura, gravação ou execução para o usuário. Quando a permissão de execução é definida para um diretório, ela permite que se pesquise ou liste o conteúdo do diretório. A modificação das permissões de acesso a arquivos e diretórios pode ser feita usando-se os utilitários:
Há também o utilitário umask, que define as permissões default para os novos arquivos e diretórios que um usuário criar. Esse utilitário define uma máscara (em octal) usada para indicar que permissões devem ser removidas. Exemplos:
Atividade
Permissionamento de arquivos e grupos de usuários
|