PJI11103-2015-1: mudanças entre as edições
Linha 150: | Linha 150: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
{{Collapse top |Aula 2 - 6/2/15: Formatação, instalação e início da configuração do servidor | {{Collapse top |Aula 2 - 6/2/15: Formatação, instalação e início da configuração do servidor principal}} | ||
O objetivo inicial é instalar e configurar basicamente o sistema operacional na máquina que atuará como principal servidor da rede. | |||
==Instalando o sistema operacional== | |||
As etapas básicas consistem em: | |||
#Conectar todos os periféricos mínimos na torre recebida e ligá-la à tomada. | |||
#Instalar o sistema operacional lendo com atenção todas as mensagens recebidas e escolhendo adequadamente as opções, com as seguintes características: | |||
##Na etapa de formação escolha formatação manual ou avançada e crie a seguinte tabela de partição: i) / 30 GB ext4; i) /home 30 GB ext4; i) swap 4 GB swap; /var "espaço restante" ext4. | |||
##Se necessário configure manualmente os IPs, conforme passado pelo prof. | |||
##Opte por atualizar automaticamente e baixar aplicativos de terceiros. | |||
##Crie uma conta (que será definitiva) para um dos usuários da equipe, com o respectivo login e senha. | |||
##Aguarde a finalização da instalação e reinicie a máquina. | |||
#Logue na máquina com a conta criada. | |||
==Conferindo e aprendendo sobre instalação de pacotes== | |||
[http://wiki.sj.ifsc.edu.br/images/4/47/InstalacaoPacotes.pdf Slide]). [http://wiki.ubuntu-br.org/AptGet Página oficial do apt-get] | |||
É necessário estar com e rede funcional. Teste com o comando: | |||
ping www.ifsc.edu.br | |||
# Com o '''apt-get --help''' veja quais as opções possíveis que o instalador de pacotes do Ubuntu fornece. | |||
# Sincronize o sistema. | |||
# Atualize as versões de todos os pacotes instalados no sistema. | |||
# Com o '''apt-cache search''' procure por '''sudoku''', escolha o '''sudoku''' (nenhum outro) e instale-o. Após a instalação execute o programa instalado (digite o nome do pacote instalado) e veja se foi instalado corretamente (se rodou). | |||
# Remova o programa instalado no item anterior. Confira se ele realmente foi removido. | |||
==Usuários e grupos== | |||
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. | |||
Slides Aula Tulio: [[Media:SlidesAulaUserGroupPerms.pdf|Slides Aula Usuários, Grupos e Permissões ]] | |||
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 === | |||
Obs.: Na máquina virtual (ARC-2-servidor) é possível ter vários usuários logados simultaneamente, para isto basta logar o primeiro usuário (aluno) normalmente e, para os demais usuários, abrir novos terminais com as teclas: <Alt> + <F2>, <Alt> + <F3>, <Alt> + <F4> .... Para retornar a um dos usuários logados basta digitar o conjunto de teclas (<Alt> + <F?>) do respectivo usuário. | |||
# Crie o grupo turma. | |||
# Crie o diretório /home/contas. | |||
# Copie dos arquivos /etc/login.defs, /etc/default/useradd e /etc/adduser.conf para o /home/aluno. | |||
# Modificando os arquivos /etc/login.defs, /etc/default/useradd e/ou /etc/adduser.conf, faça com que os usuários sejam criados com o seguinte perfil, por padrão: | |||
## O diretório home dos usuários seja /home/contas; | |||
## 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. | |||
{{Collapse bottom}} | {{Collapse bottom}} |
Edição das 13h54min de 6 de fevereiro de 2015
1 Diário de aula de PJI - 2015-1 - Prof. Odilson T. Valle
1.1 Dados Importantes
Professor: Odilson Tadeu Valle
Email: odilson@ifsc.edu.br
Atendimento paralelo: ????? . Local: Lab. de Desenvolvimento.
- Avaliação
- Avaliações individuais em cada etapa do projeto com conceito numérico: 1, 2, ..., 9, 10. Conceito mínimo necessário em cada avaliação: 6.
- Um ou mais conceitos abaixo de 6 implica na realização da reavaliação: uma única avaliação a ser realizada no último dia de aula.
IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação e aguardar o parecer da coordenação.
1.2 Plano de Ensino
2 Diário de aulas
Aula 1 - 3/2/15: Apresentação da disciplina |
---|
|
Aula 1 - 3/2/15: Revisão dos comandos básicos |
---|
Objetivo: Revisão dos comandos básicos, familiarização e fixação do conteúdo. Material Auxiliar (Comandos básicos 01) (Comandos básicos 02 ) ( Slides Aula Introdução ao Linux Tulio.)
Editor VI Objetivo: Familiarização com o editor e ser capaz de executar comandos simples, porém úteis para manipulação de arquivos.
|
Aula 2 - 6/2/15: Formatação, instalação e início da configuração do servidor principal |
---|
O objetivo inicial é instalar e configurar basicamente o sistema operacional na máquina que atuará como principal servidor da rede. 2.1 Instalando o sistema operacionalAs etapas básicas consistem em:
2.2 Conferindo e aprendendo sobre instalação de pacotesSlide). Página oficial do apt-get É necessário estar com e rede funcional. Teste com o comando: ping www.ifsc.edu.br
2.3 Usuários e gruposCriaçã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. Slides Aula Tulio: Slides Aula Usuários, Grupos e Permissões 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. 2.3.1 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. 2.3.2 AtividadeObs.: Na máquina virtual (ARC-2-servidor) é possível ter vários usuários logados simultaneamente, para isto basta logar o primeiro usuário (aluno) normalmente e, para os demais usuários, abrir novos terminais com as teclas: <Alt> + <F2>, <Alt> + <F3>, <Alt> + <F4> .... Para retornar a um dos usuários logados basta digitar o conjunto de teclas (<Alt> + <F?>) do respectivo usuário.
|