quarta-feira, 31 de outubro de 2012

Aula 10 - Gerenciamento de Usuários e Grupos


Segue o resumo de comandos e conceitos vistos em Sala de Aula.
Este é um material de apoio aos meus alunos que tem todo embasamento durante as aulas presenciais.

Você pode fazer o exercício desta aula no seguinte link:
Em breve...

As respostas deste exercício estão no seguinte link:
Em breve...

Você pode encontrar todos os resumos de aula no link abaixo:
http://www.dailson.com.br/2009/05/indice-mini-tutoriais-usados-em-aula.html

Criar usuários
Existem dois comandos para fazer esta operação.o adduser e useradd.
Em algumas distribuições, o adduser e useradd tem o mesmo comportamento. Porém no Debian e derivados, são comandos diferentes. O adduser faz as seguintes operações:
  • Cria um grupo
  • Cria o usuário e coloca dentro deste grupo
  • Solicita a senha
  • Solicita informações como nome completo, telefones e comentários
  • Cria o diretório /home/nome-do usuário.

Caso você use Debian/Mint/Ubuntu e derivados, faça:
# adduser nome

 comportamento será este:



Mais informações sobre este comando, use o manual através do comando
# man adduser

O Outro comando (e mais comum) é o useradd. Vamos aprender um pouco mais sobre ele:
Opções:
-m --> Cria o diretório home
-s --> Informa o shell do usuário
-c --> Informa um comentário sobre o usuário
-g --> Informa o grupo primário do usuário
-G --> Informa o(s) grupo(s) secundário do usuário

Comando para criar usuário
# useradd dailson (desta forma ele cria o grupo dailson e coloca o usuário dailson dentro do grupo)

Cria o usuário e força a criação do diretório /home
# useradd -m dailson

Cria o usuário, força a criação do diretório /home e especifica o shell
# useradd -m -s /bin/bash dailson

Cria o usuário, força a criação do diretório /home, especifica o shell e adiciona a um grupo primário alunos
# useradd -m -s /bin/bash -g alunos dailson

Cria o usuário, força a criação do diretório /home, especifica o shell  e adiciona a um grupo primário alunos e aos grupo professores
# useradd -m -s /bin/bash -g alunos -G professores dailson

Cria o usuário, força a criação do diretório /home, especifica o shell e adiciona a um grupo primário alunos e aos grupo professores e auditores
# useradd -m -s /bin/bash -g alunos -G professores,auditores dailson

Sintaxe:
useradd -m -g GRUPOPRIMARIO -G GRUPOS1,GRUPO2... nome-usuário

Alterar o nome do usuário
# usermod dailson -l dailson2 (muda o nome de login de dailson para dailson2)

Alterar o grupo primário
# usermod -g root dailson (muda o grupo primário do usuário dailson para o grupo root)

Alterar o grupo secundário
# usermod -G root dailson (muda o grupo secundário do usuário dailson para o grupo root)

Alterar o grupo secundário
# usermod -G root,alunos,professores dailson (muda o grupo secundário do usuário dailson para os grupos root,professores e alunos)

Comando para atribuir uma senha para o usuário
# passwd dailson (cria uma senha para o usuário dailson)

Comando para alterar uma senha para o usuário
# passwd dailson (altera a senha do usuário dailson)

Comando para apagar um usuário
# userdel dailson (apaga o usuário dailson)

Comando para apagar um usuário e todo o conteúdo do diretório /home
# userdel -r dailson

Comando para exibir as informações de um usuário
# id dailson (exibe as informações do usuário dailson)


Legenda:
uid - User Identification (Identificação do usuário)
gid - Group Identification (Identificação do grupo que o usuário faz parte)
groups = Informação dos grupos secundários que o usuário faz parte.

Comando para criar um grupo chamado alunos
# groupadd alunos

Comando para excluir um grupo chamado alunos
# groupdel alunos

Renomeia um grupo (de alunos para alunos novos)
# groupmod alunos -n alunosnovos

Comando para incluir um usuário dentro do grupo
# gpasswd -a dailson alunos (o usuário dailson é incluido no grupo alunos)

Coloca uma senha no grupo. Use isto para evitar que usuários ingressem em um grupo aleatoriamente. Desta forma quando um usuário der o comando anterior, uma senha será solicitada).
# gpasswd alunos

Exibindo as informações de todos os usuários
# cat /etc/passwd



Obs: Cada linha exibe um usuário do sistema.

Legenda:
Este arquivo é delimitado pelo caracter dois pontos ":"
 As informações são as seguintes:
nomeusuario:senha:UID:GID:Comentarios:Local da Pasta home:SHELL
 
Exemplo:
dailson:x:1001:0:Dailson Fernandes,Professor:/home/dailson:/bin/bash
dailson
--> nome do usuário
x --> senha criptografada
1001 --> Identificação do Usuário (UID)
0 --> Identificação do grupo primário do usuário, neste caso o grupo zero é o grupo root
Dailson Fernandes,Professor --> Comentário que foi passado na criação do usuário pelo parametro -c
/home/dailson --> Local do diretório home
/bin/bash --> Shell que será invocado quando o usuário fizer login.

Exibindo as informações de todos os grupos
# cat /etc/group



Legenda:
Este arquivo é delimitado pelo caracter dois pontos ":"
As informações são as seguintes
NOME DO GRUPO:SENHA:GID:MEMBROS   
 
Exemplo:
alunos2:x:1028:dailson2
alunos2
--> Nome do grupo
x --> Senha criptografada
1028 --> Identificação do grupo (GID)
dailson2 --> usuário dailson2 tem o grupo alunos2 como grupo secundário.

Exibindo informações de senhas dos usuários.
As senhas dos usuários ficam armazenados no arquivo /etc/shadow. As senhas são criptografadas com o algoritmo MD5 e usa recursos como SALT NUMBER.
# cat /etc/shadow

Exibindo as informações de senhas dos grupos
# cat /etc/gshadow

É possível deixar a senha dentro do arquivo /etc/passwd.
# pwunconv

Veja que a senha foi colocada no lugar do "X" no arquivo /etc/passwd
# cat /etc/passwd

Para devolver a senha para o arquivo /etc/shadow, use o seguinte comando:
# pwconv

Alguns truques:

Exibindo apenas os nomes do usuários:
# cut -f1 -d: /etc/passwd

Exibindo apenas os nomes dos usuários com pausa
# cut -f1 -d: /etc/passwd | less

Exibindo apenas os nomes dos usuários ordenado
# cut -f1 -d: /etc/passwd | sort | less

Exibindo apenas os nomes do usuários ordenados e numerado
# cut -f1 -d: /etc/passwd | sort | nl | less

Exibindo apenas os nomes dos grupos:
# cut -f1 -d: /etc/group

Exibindo apenas os nomes dos grupos com pausa
# cut -f1 -d: /etc/group | less

Exibindo apenas os nomes dos grupos ordenado
# cut -f1 -d: /etc/group | sort | less

Exibindo apenas os nome dos grupos ordenado e numerado
# cut -f1 -d: /etc/group | sort | nl | less

quarta-feira, 24 de outubro de 2012

Resposta do Exercício da Aula 9 - Gerenciamento de Processos no Linux


Respostas do Exercício relativo a aula 9 de Gerenciamento de Processos no Linux

Se você ainda não fez o Exercício, acesse ele neste link e faça antes de ver as respostas:
http://www.dailson.blogspot.com.br/2012/10/exercicio-da-aula-9-gerenciamento-de.html

Toda a teoria necessária para a realização deste exercício encontra-se no link abaixo:
http://www.dailson.blogspot.com.br/2012/05/gerenciamento-de-processos-no-linux.html

Você pode encontrar todos os resumos de aula no link abaixo:
http://www.dailson.com.br/2009/05/indice-mini-tutoriais-usados-em-aula.html


1º Liste apenas os processos que estão em execução no terminal atual
# ps

2º Liste os processos que estão em execução em todos os terminais
# ps –a

3º Liste todos os processos do Linux
# ps –A

4º Liste todos os processos do Linux, exibindo o nome dos usuários que iniciaram os processos
# ps –aux

5º Liste os processos em forma de árvore
# pstree 

6º Liste todos os processos do sistema em forma de árvore exibindo o número do processo
# pstree –p

7º Liste todos os processos do sistema em forma de árvore exibindo o nome do usuário
# pstree  -u 

8º Quais os passos necessários para matar um processo chamado openoffice que está travado no console tty1. Este processo não responde de forma alguma. Como encerrá-lo ?

Maneira 1:
Muda para outro console
# ps  -a (para pegar o número do processo do openoffice)
# kill –SIGKILL 1111 (supondo que 1111 seja o número do processo do openoffice)

Maneira 2:
Muda para outro console
# killall  –SIGKILL openoffice
 
9º Qual comando exibe detalhe sobre os processos que estão sendo executados em tempo real no servidor ?
# top
# htop

10º Diferencie kill de killall
Kill envia sinais para os aplicativos pelo número do processo
Killall envia sinais para os aplicativos pelo seu nome

11º) Explique os sinais e qual o número que equivale  a eles

SIGKILL  - Sinal que encerra o aplicativo de qualquer forma. Este sinal  não pode ser ignorado pelo aplicativo.
SIGTERM – Solicita ao aplicativo que encerre. Se possível, os dados são salvos e nenhum dado é perdido. Este sinal é semelhante a encerrar um programa normalmente. de
SIGSTOP – Congela (pausa) a execução de um aplicativo na memória.
SIGCONT  - Retoma a execução de um aplicativo que foi congelado (pausado) na memória
SIGHUP  -  Usado para reinciar daemons (programas residentes em memória)

12º - Qual a diferença entre os comandos nice e renice ?
nice – Inicia um aplicativo com a prioridade desejada
renice – Muda a prioridade de um aplicativo já em execução

13º Como executar o updatedb com a prioridade -10 ?
# nice –n -10 updatedb

14º Como mudar a prioridade do updatedb (que já está em execução) para a prioridade 15 positivo ?
# ps –a (para pegar o número do processo do updatedb)
# renice –n +15 1111 (supondo que 1111 seja o número do processo do updatedb)

15º Que comando produz este resultado ?
[1]   Stopped        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim


# jobs

17º De acordo com o cenário da questão E,  se for executado o comando fg, quem será trazido para primeiro plano?
top

18º Se for executado novamente o comando fg quem será trazido para primeiro plano?
nano

19º Qual combinação de tecla coloca um programa em segundo plano?
CTRL+Z

20º Qual comando coloca um processo em background que está parado em execução? (Cite 2)
# bg
# ps -a
# kill –SIGCONT 1111 (supondo que 1111 seja o número do processo deste processo)

 21º – O Aplicativo de backup copia.sh acaba de ser executado

./backup.sh



a) De acordo com o quadro abaixo, algum comando foi executado:


b) Que comando foi este, e o que aconteceu?
# renice –n -10 1350
A prioridade do script backup.sh foi alterada para -10

22º Observe o resultado do comando jobs
[1]   Stopped        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim


a) Que comando torna o quadro abaixo verdadeiro?
[1]   Running        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim

# bg 1

Exercício da Aula 9 - Gerenciamento de Processos no Linux

Exercício relativo a aula 9 de Gerenciamento de Processos no Linux

Toda a teoria necessária para a realização deste exercício encontra-se no link abaixo:
http://www.dailson.blogspot.com.br/2012/05/gerenciamento-de-processos-no-linux.html

As respostas deste exercício está no seguinte link:
http://www.dailson.blogspot.com.br/2012/10/resposta-do-exercicio-da-aula-9.html

Você pode encontrar todos os resumos de aula no link abaixo:
http://www.dailson.com.br/2009/05/indice-mini-tutoriais-usados-em-aula.html


1º Liste apenas os processos que estão em execução no terminal atual

2º Liste os processos que estão em execução em todos os terminais

3º Liste todos os processos do Linux

4º Liste todos os processos do Linux, exibindo o nome dos usuários que iniciaram os processos

5º Liste os processos em forma de árvore

6º Liste todos os processos do sistema em forma de árvore exibindo o número do processo

7º Liste todos os processos do sistema em forma de árvore exibindo o nome do usuário

8º Quais os passos necessários para matar um processo chamado openoffice que está travado no console tty1. Este processo

não responde de forma alguma. Como encerrá-lo ?

9º Qual comando exibe detalhe sobre os processos que estão sendo executados em tempo real no servidor ?

10º Diferencie kill de killall

11º) Explique os sinais e qual o número que equivale  a eles

SIGKILL
SIGTERM
SIGCONT
SIGHUP

12º - Qual a diferença entre os comandos nice e renice ?

13º Como executar o updatedb com a prioridade -10 ?

14º Como mudar a prioridade do updatedb (que já está em execução) para a prioridade 15 positivo ?

15º Que comando produz este resultado ?
[1]   Stopped        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim

17º De acordo com o cenário da questão E,  se for executado o comando fg, quem será trazido para primeiro plano?

18º Se for executado novamente o comando fg quem será trazido para primeiro plano?

19º Qual combinação de tecla coloca um programa em segundo plano?

20º Qual comando coloca um processo em background que está parado em execução? (Cite 2)

21º – O Aplicativo de backup copia.sh acaba de ser executado

./backup.sh



a) De acordo com o quadro abaixo, algum comando foi executado:



b) Que comando foi este, e o que aconteceu?

22º Observe o resultado do comando jobs
[1]   Stopped        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim

a) Que comando torna o quadro abaixo verdadeiro?
[1]   Running        programa.sh
[2]-  Stopped        nano 
[3]+  Stopped        top 
[4]   Stopped        htop 
[5]   Stopped        vim