segunda-feira, 25 de março de 2013

Aula 11 - Gerenciamento de Permissões no Linux

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


Ao executar um ls -l você visualiza algo como esta linha:

drwxr-xr-x 2 dailson alunos 4096 Jun 18 09:43 intranet

Vamos entender o que é cada dado deste:
drwxr-xr-x --> Permissões
2 --> A quantidade de ítens dentro deste diretório
dailson --> Usuário dono do diretório intranet
alunos --> Grupo dono do diretório intranet
4096 --> Tamanho em bytes
18   --> Dia da criação do diretório
09:43 --> Hora decriação do diretório
intranet --> Nome do diretório

Veja a figura abaixo que ilustra mais um exemplo:




O Primeiro caracter identifica o tipo do arquivo/objeto:

    * d => diretório;
    * b => arquivo de bloco;
    * c => arquivo especial de caractere;
    * p => canal;
    * s => socket;
    * - => arquivo normal.

Já os outros caracteres significam:

    * r => permissão de leitura (read);
    * w => permissão de gravação (write);
    * x => permissão de execução (execution);
    * - => permissão desabilitada.


Vamos aprender alterar as permissões de propriedade do objeto (arquivo, diretório ou link...) As permissões são propriedade de usuário  dono e grupo dono de um diretório e/ou arquivo.

Atribuir a propriedade de um diretório/arquivo para um determinado usuário
chown nome-usuario diretorio/arquivo
Exemplo:

Passar a propriedade do diretório /jogos para o usuário  dailson
# chown dailson /jogos

Passar a propriedade do diretório /jogos e todos os subdiretórios e arquivos para o usuário  dailson
# chown -Rvf dailson /jogos

Atribuir a propriedade de um diretório/arquivo para um determinado grupo
chgrp nome-grupo diretorio/arquivo
Exemplo:

Passar a propriedade do diretório /jogos para o grupo alunos
# chgrp alunos/jogos

Passar a propriedade do diretório /jogos e todos os subdiretórios e arquivos para o grupo alunos
# chgrp -Rvf alunos /jogos

Passar a propriedade de um diretório/arquivo para um usuário  e grupo ao mesmo tempo
# chown usuario:grupo diretorio/arquivo

Exemplo:
Passar para o usuário  dailson e grupo alunos o diretório /jogos
# chown dailson:alunos /jogos

Passar para o usuário  dailson e grupo alunos o diretório /jogos e todos os seus subdiretórios e arquivos
# chown -Rvf dailson:alunos /jogos


Alterando as Permissões com o chmod

Em relação as permissões:

Leitura (r):
Em arquivos, permite examinar o conteúdo do arquivo.
Em diretórios permite listar conteúdo do diretório.

Escrita (w):
Em arquivos, permite escrever, remover e alterar o arquivo.
Em diretórios, permite criar e remover arquivos dentro do diretório.

Execução (x):
Em arquivos, permite executar um arquivo como um programa.
Em diretório, permite ler e escrever em arquivos dentro do diretório.

Sendo que os três primeiros rwx pertencem ao Dono do arquivo, os outros três rwx pertencem ao Grupo e por fim os últimos três rwx pertencem aos outros usuários que não fazem parte do grupo.

Trabalhando com as permissões :
Poderemos trabalhar de duas formas. Usando as permissões  literais, ou usando o modo binário.
Para usar a forma literal são necessário saber que:

u : permissões  para o dono da pasta (user).
g : permissões  para o grupo (group).
o : permissões  para os demais (others).

+ : Adiciona a permissão
- : Remove a permissão
r : permissão de leitura
w : permissão de escrita
x : No caso dos arquivos indica permissão  de escrita e, no caso da pasta, permissão  para ver o conteúdo.

Veja a figura:




chmdo permissões  diretório/arquivo
Obs: Todos os exemplos serão em cima deste diretório:

drwxr-xr-x 2 dailson alunos 4096 Jun 18 09:43 intranet

Atribuir todas as permissões  ao usuário  dailson no diretório intranet
chmod

Atribui todas as permissões apenas para o usuário dono do diretório intranet (usuário dailson)
# chmod u=+rwx intranet
ou
# chmod u=+r+w+x intranet

Atribui todas as permissões apenas para o grupo dono do diretório intranet  (grupo alunos)
# chmod g=+rwx intranet
ou
# chmod g=+r+w+x intranet

Atribui todas as permissões apenas para os outros usuários do diretório intranet 
# chmod o=+rwx intranet
ou
# chmod o=+r+w+x intranet

Atribui todas as permissões apenas para o usuário dono, grupo dono e os outros usuários do diretório intranet
# chmod u=+rwx,g=+rwx,o=rwx intranet
ou
# chmod u=+r+w+x,g=+r+w+x,o=r+w+x intranet

Retira todas as permissões apenas para o usuário dono do diretório intranet (usuário dailson)
# chmod u=-rwx intranet
ou
# chmod u=-r-w-x intranet

Retira todas as permissões apenas para o grupo dono do diretório intranet  (grupo alunos)
# chmod g=-rwx intranet
ou
# chmod g=-r-w-x intranet

Retira todas as permissões apenas para os outros usuários do diretório intranet 
# chmod o=-rwx intranet
ou
# chmod o=-r-w-x intranet

Retira todas as permissões do usuário dono, grupo dono e os outros usuários do diretório intranet
# chmod u=-rwx,g=-rwx,o=-rwx intranet
ou
# chmod u=-r-w-x,g=-r-w-x,o=-r-w-x intranet

Você pode usar estes sinais a vontade, conforme os exemplos abaixo, sabendo que o + atribui e o - retira a permissão

# chmod u=+r-w+x,g=+r-w-x,o=r+w-x intranet
# chmod u=+r-w+x,g=+r+w-x,o=r+w+x intranet

Obs:
Lembre-se que o parâmetro -R de recursividade (ou seja: aplicar a todos os arquivos e subdiretórios também pode ser usado nos comandos chmod)
...

Você também pode atribuir os direitos de leitura, gravação e execução aos três níveis (usuário, grupo e outros) de uma só vez.

Atribuir o direito de leitura aos três níveis (usuário, grupo e outros)
# chmod +r intranet

Atribuir o direito de gravação aos três níveis (usuário, grupo e outros)
# chmod +w intranet

Atribuir o direito de execução aos três níveis (usuário, grupo e outros)
# chmod +x intranet

Utilizando o Modo Octal

No modo Octal as letras assumem valores:

r=4
w=2
x=1

Em qualquer posição, seja ela para usuário, grupo ou outros...


Os valores permanecem o mesmo
r=4
w=2
x=1

E para alterar as permissões, poderemos usar a soma destes valores para cada um dos objetos das permissões: usuário, grupo e outros.

Veja:




No exemplo abaixo, veja como aplicar a soma dos números para atribuir uma permissão:




Veja mais exemplos abaixo:

Obs: Todos os exemplos serão em cima deste diretório:

drwxr-xr-x 2 dailson alunos 4096 Jun 18 09:43 intranet

Atribui todas as permissões apenas para o usuário dono do diretório intranet (usuário dailson)
# chmod 700 intranet

Atribui todas as permissões apenas para o grupo dono do diretório intranet  (grupo alunos)
# chmod 070 intranet

Atribui todas as permissões apenas para os outros usuários do diretório intranet 
# chmod 007 intranet

Atribui todas as permissões apenas para o usuário dono, grupo dono e os outros usuários do diretório intranet
# chmod 777 intranet

Retira todas as permissões apenas para o usuário dono do diretório intranet (usuário dailson)
# chmod 077 intranet

Retira todas as permissões apenas para o grupo dono do diretório intranet  (grupo alunos)
# chmod 070 intranet

Retira todas as permissões apenas para os outros usuários do diretório intranet 
# chmod 770 intranet

Retira todas as permissões apenas para o usuário dono, grupo dono e os outros usuários do diretório intranet
# chmod 000 intranet

Você pode usar estes parametros da maneira que bem entender.

# chmod 123 intranet
# chmod 234 intranet
# chmod 345 intranet
# chmod 456 intranet
# chmod 567 intranet
# chmod 755 intranet
# chmod 644 intranet


Obs:
Lembre-se que o parâmetro -R de recursividade (ou seja: aplicar a todos os arquivos e subdiretórios também pode ser usado nos comandos chmod)

O Parâmetro UMASK
Toda vez que você cria um diretório ou arquivo, as permissões padrões já aparecem. Estas permissões vem de um parâmetro chamado umask.
Faça o teste
Crie um diretório e um arquivo e veja quais são as permissões.

A umask (user mask) são 3 números que definem as permissões iniciais do dono, grupo e outros usuários que o arquivo/diretório receberá quando for criado ou copiado para um novo local. Digite umask sem parâmetros para retornar o valor de sua umask atual.

A umask tem efeitos diferentes caso o arquivo que estiver sendo criado for binário (um programa executável) ou texto . Veja a tabela a seguir para ver qual é a mais adequada a sua situação:




Um arquivo texto criado com o comando umask 012;touch texto.txt receberá as permissões -rw-rw-r--, pois 0 (dono) terá permissões rw-, 1 (grupo), terá permissões rw- e 2 (outros usuários) terão permissões r--. Um arquivo binário copiado com o comando umask 012;cp /bin/ls /tmp/ls receberá as permissões -r-xr--r-x (confira com a tabela acima).

Por este motivo é preciso atenção antes de escolher a umask, um valor mal escolhido poderia causar problemas de acesso a arquivos, diretórios ou programas não sendo executados. O valor padrão da umask na maioria das distribuições atuais é 022. A umask padrão no sistema Debian é a 022 .

A umask é de grande utilidade para programas que criam arquivos/diretórios temporários, desta forma pode-se bloquear o acesso de outros usuários desde a criação do arquivo, evitando recorrer ao chmod.

Geralmente o umask é configurado no arquivo /etc/bash.bashrc ou /etc/profile

Dica:
Para saber qual é o resultado do umask:
Em binários e diretórios = Subtraia de 7
Em Arquivos = Subtraia de 6

Faça o teste na tabela acima.

Fontes:

terça-feira, 19 de março de 2013

Frase do Dia

"Deus constrói o seu templo no nosso coração sobre as ruínas das igrejas e das religiões."
Ralph Waldo 

segunda-feira, 18 de fevereiro de 2013

A História do Linux - Um breve relato em um vídeo da Antiga Conectiva

Estou republicando este documentário. Que apesar de desatualizado, vale a pena vê-lo.

"Este documentário, apesar de bastante desatualizado, mostra toda a escalada do Mundo Linux desde a criação do Kernel por Linus Torvalds até o início dos anos 2000.

Vale a pena você conferir, com uma excelente produção do pessoal da Conectiva na Época.

Mesmo para você que não é da área, vale a pena ver. São apenas 7 minutos de muita história."



Inproprietário - O Documentário do Mundo do Software Livre


 
 Tive o prazer de ver o excelente trabalho de conclusão de curso dos alunos  Daniel Pereira Bianchi e Johnata Rodrigo de Souza do Curso de Comunicação Social e Jornalismo da Unifieo.
O Trabalho desses dois jovens está excelente. Em aproximadamente 30 minutos eles fazem um bom resumo da história do software livre, com entrevistas de peso com Stalmann e Sérgio Amadeu, além de trazer depoimentos de usuários, administradores de sistemas e também do caso de sucesso do Exército Brasileiro. O Roteiro está muito bom, a sequência lógica dos fatos e a qualidade das imagens supera as expectativas. E eles usaram um lance muito interessante de colocar trecho de filmes muito antigos que casam com o assunto abordado, além de uma hilariante aparição de Bill Gates em um episódio dos Simpsons.
Recomendo a todos que vejam este trabalho, inclusive vou usar em minhas aulas.
O Trabalho está tão de alto nível, que além do arquivo que  você baixa no torrent, vem a capa do DVD e o impresso da bolacha.
Daniel e Johnata: Parabéns!! É assim que se faz!
Se quiserem ver o post original do br-linux sobre este filme, clique em:
Se quiserem baixar, o torrent é esse: http://www.mininova.org/tor/2571016



quinta-feira, 13 de dezembro de 2012

Frase do Dia

"Podem morrer as pessoas, mas nunca suas ideias."
Che Guevara

quarta-feira, 12 de dezembro de 2012



Produzindo Animações com Softwares Livres”  é o primeiro livro que trata de produção de animações com softwares livres. Escrito por Ricardo Graça; tem por objetivo apresentar as soluções em softwares livres para a criação de uma animação.

O livro aborda conceitos técnicos como, composição de imagem, iluminação de cenas  e operação dos seguintes softwares livres: Libre Office, Celtx, Inkscape, Gimp, Synfig, Tupi, Audacity, Kdenlive, Blender.

O livro apresenta cada software e mostra como utilizá-lo no processo de produção de uma animação, abordando as técnicas de animação 2D e 3D. 112 páginas. ISBN 978-85-66084-00-9

Este livro é o primeiro de uma série de livros voltados para o mundo da animação.

E você tem a opção de pagar por ele ou simplesmente baixá-lo.

Veja aqui! 

terça-feira, 11 de dezembro de 2012

Frase do Dia

"Meu trabalho não tem importância, nem a arquitetura tem importância para mim. Para mim, o importante é a vida, a gente se abraçar, conhecer as pessoas, haver solidariedade, pensar em um mundo melhor, o resto é conversa fiada."

Oscar Niemeyer

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

sexta-feira, 28 de setembro de 2012

Lançamento da Pós-Graduação em Linux e Windows da Uninassau

Aconteceu mo sábado 22 de Setembro de 2012, na Uninassau o Lançamento Oficial de duas novas Pós-graduações.

Pós-Graduação em Administração de Redes Linux

Pós-Graduação em Administração de Redes Windows.

Além dos alunos interessados, estiveram presentes o corpo docente que está a frente de toda a parte acadêmica da Pós-graduação sob a coordenação de Eduardo Arruda. Coordenador de Cursos da Universidade.

Os professores presentes foram:
Dailson Fernandes
Eduardo Neves
Fred Madeira
Alberto Viegas
Eduardo Arruda


Apresentação do Evento com o Professor Eduardo Arruda, 
Coordenador de Curso da Uninassau.


Os professores responsáveis: (Da esquerda pra direita) 
Prof. Fred Madeira, Eduardo Neves, Alberto Viegas e Dailson Fernandes.




Corpo Docente.



Foto com alguns alunos presentes.

terça-feira, 25 de setembro de 2012

Frase do Dia

"Quando você perceber que, para produzir, precisa obter a autorização de quem não produz nada; quando comprovar que o dinheiro flui para quem negocia não com bens, mas com favores; quando perceber que muitos ficam ricos pelo suborno e por influência, mais que pelo trabalho, e que as leis não nos protegem deles, mas, pelo contrário, são eles que estão protegidos de você; quando perceber que a corrupção é recompensada, e a honestidade se converte em auto sacrifício; então poderá afirmar, sem temor de errar, que sua sociedade está condenada".

Frase da filósofa russo-americana Ayn Rand (judia, fugitiva da revolução russa, que chegou aos Estados Unidos na metade da década de 1920), mostrando uma visão com conhecimento de causa:

segunda-feira, 17 de setembro de 2012

Frase do Dia

"É preciso ser duro, mas sem perder a ternura, jamais..."
Che Guevara

sexta-feira, 14 de setembro de 2012

Glances - Um Excelente Software de Monitoramento de Processos e Perfomance

screenshot
Olho em Seu Sistema!

Este é o lema principal do glances. Em uma tela só, números sobre processos, cpu, memória e outros parâmetros que são essenciais para um Sysadmin manter o monitoramento dos seus servidores ao alcance dos seus olhos.

Glances é um software de monitoramento CLI (Command Line Interface) baseado em Curses. Não espere gráficos, imagens e animações... É um software de monitoramento presencial. ;)

A página oficial é esta: http://nicolargo.github.com/glances/ e é mantido pelo  programador Nicolas Hennion. O Software é feito em Python

A Interface dele trás  dados imediatos sobre:
  • O uso do processador (por core, por processador);
  • Carga do Sistema 
  • Uso da Memória RAM;
  • Uso da Memória SWAP;
  • Quantidade de processos (ordenado por uso de CPU, Memória ...);
  • Uso das placas de rede;
  • Uso dos HDs e partições (Inputs e Outputs);
  • Uso de espaço das partições e dispositivos de armazenamento.

A Tela é simples, mas é atualizada a cada segundo e tem tudo que um Sysadmin precisa.

Veja este exemplo numa interface de 80x24 linhas (Uma tela típica de console)

screenshot


Outro exemplo ele em uma tela maior (wide) de 90x24.

screenshot

Note no exemplo da figura acima, que  ele gera alertas quando alguns limites são alcançados.

Dica:
Não espere gerenciar processos com o Glances, para isso use o HTOP que abordei neste tópico: http://www.dailson.blogspot.com.br/2012/05/gerenciamento-de-processos-no-linux.html

Instalação:

Pré-requesitos:
  • Python 2.6 ou superior;
  • Para Distribuições baseadas em Debian, o Pacote build-essential  (para instalação  via Pypi e setup.py);
  • Para Distribuições baseadas em Redhat/Fedora/CentOS, o Pacote Development Tool  (para instalação  via Pypi e setup.py);
  • python-dev (para instalação via Pypi);
  • python-setuptools (para instalação via setup.py);
  • python-psutil 0.4.1 ou superior;
  • python-jinja2 2.0 ou superior (opcional para exportar HTML );
Se você for instalar via apt-get ou yum não se preocupe, todas estas dependências são resolvidas automaticamente.

Método 1: Instalando em Distribuições Debian.

$ sudo apt-get install python-pip build-essential python-dev
$ sudo pip install glances

Método 2: Utilizando os repositório PPA no Ubuntu/Mint...

$ sudo add-apt-repository ppa:arnaud-hartmann/glances-stable
$ sudo apt-get update
$ sudo apt-get install glances



Método 3: Compilando através do código fonte

$ wget -O /tmp/glances-last.tgz https://github.com/nicolargo/glances/tarball/master
$ sudo apt-get install python-setuptools build-essential python-dev
$ cd /tmp
$ tar zxvf glances-last.tgz
$ cd nicolargo-glances-*
$ sudo python setup.py install



 Para executar, basta apenas digitar

$ glances

 Por padrão, o glances atualiza a tela a cada segundo, se quiser mudar o tempo, use o parâmetro -t

$ glances -t 5

O Status das Cores
É importante ressaltar aqui o que cada cor representa no glances
VERDE: Tudo Certo!
AZUL: Atenção ...
MAGENTA: Cuidado ...
VERMELHO: Estado Crítico!

Durante o uso do Glances, você pode utilizar algumas teclas de atalho para mudar o comportamento dele.
h --> exibe ajuda
c --> ordena os processos por consumo do processador
d --> habilita/desabilita a exibição do Status de I/O do Disco
f --> habilita/desabilita a exibição do Status de I/O dos arquivos
I --> habilita/desabilita os logs (alertas no fim da tela quando algum limite é alcançado).
n --> habilita/desabilita a exibição do Status de I/O das placas de rede
p --> ordena pelo nome dos processsos
q --> sai


As colunas exibidas pelo Glances são:

  • VIRT: Memória virtual em bytes
  • REST: Total residente em memória em bytes
  • CPU%: % de CPU utilizada
  • MEM%: % de MEM utilizada
  • PID: Identificador do Processo
  • USER: Usuário dono do Processo
  • NI: Prioridade do processo.
  • S: Status do processo:
    • R - Running
    • D - Sleeping (não pode ser interrompido)
    • S - Sleeping (pode ser interrompido)
    • T - Traced ou Stopped
    • Z - Zombie
    • IO Read and Write
    • TIME+: Uso total da CPU em tempo
    • NAME: Nome do processo
Fonte:
 http://nicolargo.github.com/glances/

Este software foi uma dica de Luciano Domingues, da Suporte Informática.