Mudanças entre as edições de "ARC60808-2014-2"
Linha 422: | Linha 422: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | {{collapse top | Aula 12 - 25/8/14: Primeira avaliação}} | + | {{collapse top | Aula 12 - 25/8/14: Usuários, 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. | ||
+ | |||
+ | 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 -d /usuarios/roberto -s /bin/tcsh -m 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 === | ||
+ | |||
+ | # Crie o grupo turma. | ||
+ | # Crie o diretório /home/contas. | ||
+ | # Copie dos arquivos /etc/login.defs, /etc/default/useradd e/ou /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 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. | ||
+ | |||
+ | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Aula 13 - 27/8/14: Primeira avaliação}} | ||
{{collapse bottom}} | {{collapse bottom}} | ||
Edição das 16h42min de 25 de agosto de 2014
Professores: Odilson Tadeu Valle e Tulio Alberton Ribeiro
Encontros: 2ª feira, 4ª feira e 6ª feira entre 13h30 às 15h20 turma A e 15h40 às 17h30 turma B
Atendimento paralelo: Odilson 3ª feira das 9h40 às 10h35 e 4ª das 14h25 às 15h20. Local: Lab. de Desenvolvimento.
Email: odilson@ifsc.edu.br e tulio.alberton@ifsc.edu.br
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.
Referências bibliográficas
- Odilson T. Valle . Administração de Redes com Linux: Fundamentos e Práticas. 1. ed. Florianópolis: Publicação do IF-SC, 2010. v. 1000. 302p .
- Valle, Odilson Tadeu. Gerência de Redes. IFSC - Unidade São José. 2009.
- Guia Foca Linux (intermediário ou avançado)
- Demais referências contidas na página principal de GER.
Material de Apoio
Site para treinar comandos básicos. Simula um terminal shell do Linux. Não apresenta todas as funcionalidades do shell normal.
Site para treinar desenvolvimento de shell scripts.
Cronograma de atividades
Aula | Data | Horas | Conteúdo | Recursos | |
---|---|---|---|---|---|
1 | 30/7 | 2 | Apresentação da Disciplina | Sala de Aula, projetor multimídia, wiki | |
2 | 1/8 | 2 | Revisão comandos básicos em Linux | Sala de Aula/Lab, Projetor Multimídia, máquinas virtuais | |
3 | 4/8 | 2 | Revisão comandos básicos em Linux | Lab, Projetor multimídia, máquinas virtuais | |
4 | 6/8 | 2 | Revisão comandos básicos em Linux | Lab, Projetor multimídia, máquinas virtuais | |
5 | 11/8 | 2 | Editor VI | Lab, Projetor multimídia, máquinas virtuais | |
6 | 13/8 | 2 | Lógica de programação | Lab, Projetor multimídia, máquinas virtuais | |
7 | 15/8 | 2 | Shell Script | lab, Projetor multimídia, máquinas virtuais | |
8 | 18/8 | 2 | Shell Script | lab, Projetor multimídia, máquinas virtuais | |
9 | 20/8 | 2 | Exercícios: revisão e esclarecimento de dúvidas para a primeira avaliação. | lab, Projetor multimídia, máquinas virtuais | |
10 | 22/8 | 2 | Avaliação 1 | lab, Projetor multimídia, máquinas virtuais | |
11 | 25/8 | 2 | Administração de usuários e grupos. | lab, Projetor multimídia, máquinas virtuais | |
12 | 27/8 | 2 | Administração de usuários e grupos. | lab, Projetor multimídia, máquinas virtuais | |
13 | 29/8 | 2 | Permissão de acesso à arquivos. | lab, Projetor multimídia, máquinas virtuais | |
14 | 1/9 | 2 | Instalação de Programas. | lab, Projetor multimídia, máquinas virtuais | |
15 | 3/9 | 2 | Sistemas de Arquivos. | lab, Projetor multimídia, máquinas virtuais | |
16 | 5/9 | 2 | Sistemas de Arquivos. | lab, Projetor multimídia, máquinas virtuais | |
17 | 8/9 | 2 | Cotas em disco para usuários e grupos. | lab, Projetor multimídia, máquinas virtuais | |
18 | 10/9 | 2 | Agendamento de Tarefas. | lab, Projetor multimídia, máquinas virtuais | |
19 | 12/9 | 2 | Arquivos de registros de logs. | lab, Projetor multimídia, máquinas virtuais | |
20 | 15/9 | 2 | Políticas de backup. | lab, Projetor multimídia, máquinas virtuais | |
21 | 17/9 | 2 | Configuração de interface de rede. | Lab, Projetor multimídia, máquinas virtuais | |
22 | 19/9 | 2 | Ferramentas de caprura de pacotes. | lab, Projetor multimídia, máquinas virtuais | |
23 | 22/9 | 2 | Configuração de sub-redes. | lab, Projetor multimídia, máquinas virtuais | |
24 | 24/9 | 2 | NAT. | lab, Projetor multimídia, máquinas virtuais | |
25 | 26/9 | 2 | Exercícios. Revisão antes da avaliação e esclarecimento de dúvidas. | lab, Projetor multimídia, máquinas virtuais | |
26 | 29/9 | 2 | Avaliação 2. | lab, Projetor multimídia, máquinas virtuais | |
27 | 1/10 | 2 | DNS. | lab, Projetor multimídia, máquinas virtuais | |
28 | 3/10 | 2 | DNS. | lab, Projetor multimídia, máquinas virtuais | |
29 | 6/10 | 2 | Servidor correio eletrônico (Postfix). | lab, Projetor multimídia, máquinas virtuais | |
30 | 8/10 | 2 | Servidor correio eletrônico (Postfix). | lab, Projetor multimídia, máquinas virtuais | |
31 | 10/10 | 2 | Webmail (RoundCUbe). | lab, Projetor multimídia, máquinas virtuais | |
32 | 13/10 | 2 | Servidor web (Apache). | lab, Projetor multimídia, máquinas virtuais | |
33 | 15/10 | 2 | FTP. | lab, Projetor multimídia, máquinas virtuais | |
34 | 17/10 | 2 | SMB e NFS. | lab, Projetor multimídia, máquinas virtuais | |
35 | 20/10 | 2 | SMB e NFS. | lab, Projetor multimídia, máquinas virtuais | |
36 | 22/10 | 2 | DHCP. | lab, Projetor multimídia, máquinas virtuais | |
37 | 24/10 | 2 | Exercícios. Revisão antes da avaliação e esclarecimento de dúvidas. | lab, Projetor multimídia, máquinas virtuais | |
38 | 27/10 | 2 | Avaliação 3. | lab, Projetor multimídia, máquinas virtuais | |
39 | 29/10 | 2 | SSH. | lab, Projetor multimídia, máquinas virtuais | |
40 | 31/10 | 2 | Proxy/Cache (squid) | lab, Projetor multimídia, máquinas virtuais | |
41 | 3/11 | 2 | Proxy/Cache (squid) | Lab, Projetor multimídia, máquinas virtuais | |
42 | 5/11 | 2 | Firewall com iptables | Lab, Projetor multimídia, máquinas virtuais | |
43 | 7/11 | 2 | Firewall com iptables | Lab, Projetor multimídia, máquinas virtuais | |
44 | 10/11 | 2 | VPN. | Lab, Projetor multimídia, máquinas virtuais | |
45 | 12/11 | 2 | Exercícios. Revisão antes da avaliação e esclarecimento de dúvidas. | Lab, Projetor multimídia, máquinas virtuais | |
46 | 14/11 | 2 | Avaliação 4. | Lab, Projetor multimídia, máquinas virtuais | |
47 | 17/11 | 2 | Projeto Integrador | ||
48 | 19/11 | 2 | Projeto Integrador | ||
49 | 21/11 | 2 | Projeto Integrador | ||
50 | 24/11 | 2 | Projeto Integrador | ||
51 | 26/11 | 2 | Projeto Integrador | ||
52 | 28/11 | 2 | Projeto Integrador | ||
53 | 1/12 | 2 | Projeto Integrador | ||
54 | 3/12 | 2 | Projeto Integrador | ||
55 | 5/12 | 2 | Projeto Integrador | ||
56 | 8/12 | 2 | Projeto Integrador | ||
57 | 10/12 | 2 | Projeto Integrador | ||
58 | 12/12 | 2 | Projeto Integrador | ||
59 | 15/12 | 2 | Projeto Integrador | ||
TOTAL | 118 |
Diário de aulas
Aula 1 - 30/7/14: Apresentação da disciplina |
---|
|
Aula 2,3,4 - 1,4,6/8/14: 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.)
|
Aula 5 - 8/8/14: Editor VI |
---|
Objetivo: Familiarização com o editor e ser capaz de executar comandos simples, porém úteis para manipulação de arquivos. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula.
|
Aula 6 - 11/8/14: Lógica de Programação |
---|
Introdução à Lógica de Programação Introdução ao Shell (Slides Prof. Gustavo Introdução ao Shell, Slides Prof. Glauco Introdução ao Shell). Objetivo: Criar um script Shell com comandos básicos e que seja capaz de executar tarefas simples. Este roteiro não é para entregar, mas é para fazer e guardar consigo, pois poderá servir de consulta para exercícios futuros, e as provas serão baseadas naquilo feito em sala de aula. ROTEIRO:
Gabarito:
|
Aula 7,8,9 - 13,15,18/8/14: Shell Script |
---|
Objetivo: Ser capaz de implementar as estruturas de teste if, while e for, para a execução de tarefas simples no Linux. ROTEIRO:
Gabarito Ex. 3:
|
Aula 10 - 20/8/14: Dúvidas e preparação para avaliação |
---|
Aula 11 - 22/8/14: Dúvidas e Festival de Música |
---|
Aula 12 - 25/8/14: Usuários, 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. 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. Atividade
|
Aula 13 - 27/8/14: Primeira avaliação |
---|
Exercícios de fixação / Desafios
Exercício / Desafio 1 |
---|
Crie os arquivos abaixo na pasta ~/meusLogs e preencha com conteúdo aleatório. tail -n 1 ~/meusLogs/arq1 head -n 1 ~/meusLogs/outroArq ls -lat ~/meusLogs/ A saída dos comandos devem ser colocados em variáveis e só então redirecionados para o arquivo. Ex.: VAR1=` comando a ser executado` Ex.: VAR2=`...` Para acessar uma variável utiliza o caracter $ Ex.: echo $VAR1 Sendo que, você irá identificar a cada chamada do script, em qual dia, mês, ano, hora, minuto e segundo o script foi chamado e colocar no topo de cada saída gerada a seguinte informação: Log gerado em: 07-08-2014_17:25:36, olhar exemplo no final do exercício. Dicas: você irá utilizar o comando 'date' para gerar a saída no formato desejado e redirecionar a saída para o arquivo em questão com >>. O arquivo monitorSaidaLog.txt deve estar em ~/meusLogs/monitorSaidaLog.txt, ou seja, dentro do home do usuário criar a pasta meusLogs e redirecionar a saída do script para lá...
d-m-Y_HMS d = dia atual, 0-31 m = mês atual, 1-12 Y = ano atual, 1900 - hoje H = hora atual, 0-23 M = minuto atual, 0-59 S = segundo atual, 0-59
Log gerado em: 07-08-2014_17:25:36 Aug 7 17:13:22 wrl -- MARK -- Aug 7 13:15:01 wrl kernel: [ 111.330006] eth0: no IPv6 routers present Aug 7 16:13:42 wrl su[8856]: + /dev/pts/1 worm:root Log gerado em: 07-08-2014_17:26:34 Aug 7 17:13:22 wrl -- MARK -- Aug 7 13:15:01 wrl kernel: [ 111.330006] eth0: no IPv6 routers present Aug 7 16:13:42 wrl su[8856]: + /dev/pts/1 worm:root
Se tudo correr bem, a cada 60 segundos, o arquivo deve ser incrementado com o novo conteúdo.
|
Exercício / Desafio 2 |
---|
Fazer um Script com o nome scriptBackupDir.sh para gerar o backup de um diretório. O script de backup deve ser executado a cada 2 minutos. Você deve salvar informações sobre o backup em um arquivo de log. Você deve a cada nova execução, se tudo correr bem, apagar o penúltimo backup feito, de tal forma que só o último backup gerado permaneça salvo. Você deve solicitar ao usuário de qual diretório deve ser feito backup.
read DIR_BKP_NOME #ou através de parâmetros A variável DIR_BKP_NOME deve ser colocada no topo do script, na primeira linha. diretório de destino do backup. DIR_DEST="~/Backup_Dir/" nome do backup com esse formato: BKP_NOME=15-08-2014-12-47-22.tar.gz" echo "Backup salvo em:" NOME_SALVAR= echo $NOME_SALVAR colocar lógica aqui...
tar -cvvzf $NOME_SALVAR $DIR_BKP_NOME > /dev/null 2> /dev/null REMOVE_LAST=`cat $DIR_DEST"NomeArquivoLog.log"` echo $VAR_COM_NOME_COMPLETO > $DIR_DEST"NomeArquivoLog.log" |
Exercício / Desafio 3 |
---|
Faça um shellScript que compacte todos arquivos passados como parâmetros (separadamente). Seu script deve ter no máximo 5 linhas. Utilize o gzip para compactar. Exemplo de chamada do script: meuScriptCompactador.sh aqruivo1 outroArquivo file3 |
Exercício / Desafio 4 |
---|
Faça um shellScript que a partir de um arquivo de entrada, leia linha a linha desse arquivo e retorne a média. Exemplo Arquivo entrada: João 7 8 9 Marcelo 6 8 10 Maria 5 9 8 Fernando 4 7 9 Exemplo saída esperada: João 8 Marcelo 8 ... Dica, utilizar o comando awk. |
Exercício / Desafio 5 - Calculadora |
---|
Faça um shellScript chamado calcular.sh que a partir de três parâmetros, faça o cálculo desejado, exemplo: ./calcular.sh valor1 + valor2 ./calcular.sh 10 + 3 Após fazer o cálculo o shellScript deve perguntar se o usuário quer fazer outra operação ou terminar.
|