Permissões Especias


Bits especiais

Além das permissões de leitura, escrita e execução, temos também três outros bits especiais de permissões que podemos usar:

SUID

Quando utilizado em um arquivo, faz com que todo usuário que executar este arquivo se transforme no usuário dono do arquivo durante a execução. Isto quer dizer que se um programa estiver com permissão de root e com o SUID ativado, qualquer usuário ao executar este programa, terá privilégios de root.
Este tipo de permissão deve ser sempre evitado. Use apenas quando realmente precisar, pois se um programa do root tiver alguma falha de segurança e estiver com o SUID habilitado, qualquer usuário poderia se tornar o root e conseguir poder total no sistema.

Um exemplo de aplicação que possui (e precisa) de SUID é o /usr/bin/passwd: o comando que muda a senha dos usuários. O arquivo de usuários e senhas do sistema tem permissões para que apenas o root possa ler, mas se um usuário normal quiser mudar a sua senha diretamente, sem a intervenção do usuário root, como ele poderia ler e modificar o arquivo de senhas se as permissões não deixam?

Quando o usuário executa o /usr/bin/passwd, o comando está com permissão de SUID, então é como se o usuário virasse o root temporariamente e por isso ele poderá ler o arquivo de senhas. Neste caso, o usuário estaria limitado a fazer apenas o que o programa /usr/bin/passwd permite: mudar senhas.

Vejamos as permissões do exemplo:

$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 30968 2008-04-02 20:57 /usr/bin/passwd

Podemos ver que há uma letra incomum nas permissões: o s. Quando o s está no campo de permissões ao usuário dono, quer dizer que está com SUID. Quando o s está minúsculo, indica que além do SUID, o programa também tem permissão de executável (x). Quando em maiúsculo, indica que apenas o SUID está ativo.

Adicionando e removendo o SUID de um arquivo:

$ ls -l arquivo
-rwxr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo
$ chmod u+s arquivo
$ ls -l arquivo
-rwsr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo
$ chmod u-s arquivo
$ ls -l arquivo
-rwxr-xr-x 1 coletivo coletivo 0 2008-08-30 12:42 arquivo

O SUID funciona apenas em executáveis, não funcionando em scripts shell. Em um script shell, o executável na verdade é o interpretador de comandos (a shell) e não o script. O SUID precisaria ser colocado na shell (o que não é nem um pouco recomendável).

SGID

Para arquivos, funciona como o SUID: quando executado por qualquer usuário, a execução acontece como se o grupo dono fosse o mesmo do arquivo, independente do usuário que estiver executando. Quando utilizado em diretórios, o SGID faz com que todos os arquivos criados tenham como grupo dono o grupo do diretório com o SGID. Isto é bastante usado em diretórios compartilhados.

Quando um arquivo ou diretório está com SGID, o ls -l irá mostrar a letra s (em maiúsculo ou minúsculo, que nem o SUID) na posição do campo do grupo.

Exemplo:

$ ls -ld apostila
drwxr-xr-x 2 coletivo coletivo 4096 2008-08-29 13:35 apostila
$ chmod g+s apostila
$ ls -ld apostila
drwxr-sr-x 2 coletivo coletivo 4096 2008-08-29 13:35 apostila
# cd apostila
# touch teste
# ls -l teste
-rw-r--r-- 1 root coletivo 0 2008-08-30 12:50 teste

Ao configurar o SGID no diretório apostila, o usuário coletivo forçou que qualquer usuário que criasse um arquivo dentro deste diretório o criaria como grupo-dono coletivo. Quando o root criou um arquivo vazio chamado teste, podemos ver que realmente o grupo deste arquivo ficou como coletivo.
O SGID, assim como o SUID, também não funciona diretamente em scripts, apenas em executáveis.

Sticky

Em tempos passados, quando aplicado em um arquivo, dizia ao sistema operacional que a execução deste arquivo não poderia utilizar a memória RAM do sistema, mas isto hoje em dia é completamente ignorado. Quando aplicado em um diretório, faz com que apenas o dono do arquivo e o dono do diretório possam remover o seu conteúdo. Isto é utilizado em diretórios temporários como o /tmp, onde qualquer pessoa pode criar arquivos, mas só podem remover seus próprios arquivos e não os dos outros usuários também.

O Sticky é representado pela letra t no terceiro campo de permissões: outros, no lugar do x. Exemplo:

$ ls -ld /tmp
drwxrwxrwt 11 root root 4096 2008-08-30 07:35 /tmp

Todos os usuários do sistema podem listar o conteúdo, criar, apagar arquivos e entrar no diretório. Porém, como existe o Sticky bit, estes usuários só poderão apagar seus próprios arquivos.

Forma Octal dos Bits Especiais

Vimos as formas extendidas de se configurar os bits especiais. Mas também há a forma octal, que funciona da mesma maneira que os bits de leitura, escrita e execução: cada bit é representado por um número e a soma destes números permite uma combinação de permissões especiais:

  • Número 1 – Sticky
  • Número 2 – SGID
  • Número 4 – SUID

O resultado destes números precedem os outros três números no comando chmod. Exemplo:

$ chmod 4755 arquivo
$ ls -l arquivo
-rwsr-xr-x 1 coletivo coletivo 0 2008-08-30 13:05 arquivo

Além das permissões normais (755), o SUID foi adicionado neste arquivo através do número 4.

$ chmod 6755 arquivo
$ ls -l arquivo
-rwsr-sr-x 1 coletivo coletivo 0 2008-08-30 13:05 arquivo

Os bits de SUID e SGID foram adicionados neste arquivo (2 + 4 = 6).

$ chmod 3755 apostila
$ ls -ld apostila
drwxr-sr-t 2 coletivo coletivo 4096 2008-08-30 13:05 apostila

Os bits de Sticky e SGID foram adicionados neste diretório (1 + 2 = 3).

 

Fonte: http://www.devin.com.br

Publicado em Linux

Material de Redes


Amigos,

Navegando na internet, descobri um link com um bom material de redes. Segue o link:

http://www.portalgsti.com.br/2010/08/material-completo-de-redes-de.html

 

Até mais.

Abraços.

Publicado em Linux

Entrevista de Emprego


Este texto com pérolas de entrevistas de emprego chegou ao meu email. Afirma que são situações reais retratadas por entrevistadores à uma revista especializada em carreira. Se são verdadeiras ou não eu não sei, mas são divertidas. Ficam como dica de que se elas acontecerem com você, então a entrevista de emprego já acabou.

Entrevistador – Você tem algum e-mail para contato? Candidato – Sim, anota aí: gostosinha_da_zonaleste@hotmeil.com

Entrevistador – Como você está na questão das línguas estrangeiras? Candidato – Tenho português básico.

Entrevistador – Qual curso universitário você deseja fazer? Candidato – Ah, to pensando em Nutricionismo, Letras ou Engenharia.

Entrevistador – Então, você está construindo um networking? Candidato – Veja bem, eu não sou engenheiro, sou administrador.

Entrevistador – Como você administra a pressão? Candidato – Ah, tranquilo. 11 por 7, no máximo 12 por 8.

Entrevistador – Manter sempre o foco é muito importante. E me parece que você tem alguns lapsos de concentração. Candidato – O senhor poderia repetir a pergunta?

Entrevistador – Como você se sente trabalhando em equipe? Candidato – Bom, desde que não tenha gente dando palpite, me sinto muito bem.

Entrevistador – Como você se definiria em termos de flexibilidade? Candidato – Ah, eu faço academia. Sou capaz de encostar o cotovelo na nuca.

Entrevistador – Nós somos uma empresa que nunca pára de perseguir objetivos. Candidato – Que ótimo. E já conseguiram prender algum?

Entrevistador – Vejo que você demonstra uma tendência para discordar. Candidato – Muito pelo contrário..

Entrevistador – Em sua opinião, quais seriam os atributos de um bom líder? Candidato – Ah, são várias coisas. Mas a principal é ter liderança.

Entrevistador – Noto que você não mencionou a sua idade aqui no currículo. Candidato – É que eu uso óculos, e isso me faz parecer mais velho. Entrevistador – E qual é a sua idade? Candidato – Com óculos ou sem óculos?

Entrevistador – Quais seriam seus pontos fracos? Candidato – Ah, é o joelho. Até tive de parar de jogar futebol.

Entrevistador – Há alguma pergunta que você queria me fazer? Candidato – Eu parei meu carro lá na rua. Será que eu vou ser multado?

Entrevistador – Por que, dentre tantos candidatos, nós deveríamos contratá-lo? Candidato – Eu pensei que responder a isto fosse seu trabalho.

Entrevistador – Como você pode contribuir para melhorar nosso ambiente de trabalho? Candidato – Bem, eu começaria trocando a recepcionista, que é muito feia.

Entrevistador – Várias pessoas que se sentaram aí nessa mesma cadeira hoje são gerentes. Candidato – Puxa, o fabricante da cadeira vai ficar muito feliz em saber disso.

Entrevistador – Quando digo ‘Sucesso’, qual a primeira palavra que lhe vem à mente? Candidato – Pode ser duas palavras? Entrevistador – Pode. Candidato – Milho. Nário.

Publicado em Linux

Manual do Debian


Amigos,

Hoje adiciono um post ao blog, bem simples porém muito útil. As informações na internet são um pouco vagas, com idéias perdidas e nada como consultar uma fonte confiável para uma busca perfeita.

Então, segue o link com a documentação do Debian em português para consulta.

http://www.debian.org/releases/stable/amd64/index.html.pt

Publicado em Debian, Linux

Comando CHROOT


Caros amigos,

Após um questionamento de uma aluno, tive a idéia de explicar um pouco mais sobre o comando chroot. O comando chroot permite que você, administrador do sistema, defina um diretório como sendo a “nova raíz”.

Isto é útil para mountar a partição raíz de uma outra instalação de Linux que haja no computador, e executar os programas a partir dela.

Suponhamos que queiramos editar o arquivo /etc/fstab da outra partição, ou dar um grub-install para restaurar o grub a partir daquela partição, porém através dela mesmo, não conseguimos, tendo de recorrer a outra partição funcional (geralmente nem isso é possível, sendo necessário o uso de um disco de recuperação, ou um live-cd com alguma distribuição GNU/Linux.

Vamos aos testes:

1) Montamos a partição de teste:

root@fabricio: /# mount /dev/sda1 /mnt

2) Acesso à partição:

root@fabricio: /# cd /mnt

3) Modificando o diretório /mnt para ser a raiz a partir de agora:

root@fabricio: /mnt

root@fabricio: /# chroot /mnt/teste

O que esperamos como resultado e prova de que fizemos a coisa certa:

root@fabricio: /#

Aí, se você precisar editar o arquivo /etc/fstab da partição /dev/sda1, não precisará digitar vim /mnt/etc/fstab, somente vim /etc/fstabPara voltar ao normal, basta digitar:root@fabricio: /# exit

root@fabricio: /mnt/#

Espero que tenha ajudado!

Até mais…Linux é o poder!

Publicado em Linux

Comandos no Linux


Comandos básicos do Linux

Alguns comandos que você verá nesta página, equivalem aos utilizados no DOS. Se você não conhece o DOS, clique aqui e veja um tutorial que ensina a trabalhar com ele. No entanto, saiba que conhecendo ou não o DOS, você poderá estranhar bastante os comandos do Linux ou simplesmente não ter dificuldade alguma. Tudo depende de você. Essencialmente, trabalhar com o Linux é uma questão de prática e logo você ficará bem familiarizado.

[root@localhost /root]# 

Você sabe o que signfica isso aí em cima? O Linux usa uma estrutura diferente de organização em seu sistema de arquivos*. Por isso, em vez da sua pasta ser c:arquivospastaarquivo.txt, simplesmente no Linux, pode ser /home/pasta/arquivo.txt. Para você entender melhor, vamos analisar o prompt do Linux:

[root@localhost /root]#

usuário – diretório / local (PC ou rede) – modo usuário

Usuário: No Linux, cada pessoa precisa ter uma conta de usuário. Uma conta de usuário indica um nome e senha que devem ser utilizados para se conectar no sistema. Se o nome escolhido por você for, por exemplo, Fulano, em vez de root aparecerá fulano no lugar.

Usuário “root” (ou super-usuário): é quem tem acesso irrestrito ao sistema. Quando você se conecta como usuário root, você poderá fazer qualquer operação no Linux, como alterações de configuração do sistema, apagar ou modificar arquivos importantes, etc. Por isso, se conectar como root é muito arriscado, já que você pode causar algum dano sem querer.

Tendo isso em mente, nunca se conecte como root a não ser que seja mesmo necessário. Para usar o Linux no dia-a-dia, conecte-se com uma conta de usuário comum, assim não haverá risco de danos. Também não se esqueça de guardar muito bem a senha do root, pois se alguém descobrir, poderá destruir o sistema.

localhost /root : é o local (diretório) onde você está no momento (/root é padrão e equivale a C: no DOS).
Modo usuário: indica quem está usando a máquina, se um usuário comum ou o super-usuário. Veja:

# - modo super-usuário $ - modo usuário

* Sistema de arquivos é um local onde os arquivos é diretórios são guardados. Consiste em uma área formatada em um dispositivo como um HD. Exemplos de sistema de arquivo: ext2/ext3 (Linux), FAT (DOS/Windows), NTFS (Windows NT/2000/XP), etc.
LINHA DE COMANDO

Antes de vermos os comandos em si, é necessário saber o que é Linha de Comando. Trata-se de um modo de trabalho com caracteres, onde você digita o comando e o executa pressionando “Enter” no teclado. Mas você também pode usar uma linha de comando em um ambiente gráfico. Se você usar o KDE por exemplo, pode procurar o aplicativo KDE Terminal para abrir uma janela com linha de comando. Mas isso vária de acordo com a versão do seu Linux. Mesmo assim não se preocupe, pois a linha de comando é muito fácil de se achar.

OS COMANDOS BÁSICOS
Vejamos agora os comandos básicos do Linux, seguidos de uma breve explicação:
• (qualquer comando) –help: mostra o HELP (arquivo de ajuda) do comando que você digitou;
• ls: lista os arquivos e diretórios da pasta (DIR no DOS);
• clear: limpa a tela (CLS no DOS);
• cd ___ : entra em um diretório (igual ao DOS);
• cd: vai direto para o diretório raiz do usuário conectado;
• : abre uma linha de comando “livre” , onde você pode digitar um comando extenso (digite q e clique em enter para sair);
• pwd: mostra o diretório inteiro que você está;
• cat: igual ao TYPE no DOS;
• df: Mostra as partições usadas ou livres do HD;
• |more: lista o arquivo com pausa de linha em linha (exemplo: CAT leiame |more)
• |lpr: imprime o arquivo listado;
• free: mostra a memória do computador (MEM no DOS);
• shutdown: desliga o computador:
• shutdown -r now : reinicia o computador;
• shutdown -h now : desliga o computador (só desligue quando aparecer escrito “system halted” ou algo equivalente);
• OBS.: O NOW pode ser mudado. Por exemplo: shutdown -r +10 e o sistema irá reiniciar daqui a 10 minutos).
• Reboot: reinicia o sistema instantaneamente (pouco recomendável, preferível shutdown -r now). Use somente em emergências;
• startx: inicia o X-Windows (interface gráfica) do Linux;
• kde: Inicia a Interface gráfica K Desktop Enviroment;
• mkdir: cria um diretório (MD no DOS);
• rmdir: destrói um diretório VAZIO (RD no DOS);
• rm: apaga um arquivo (DEL no DOS);
• rm –r: apaga um diretório;
• who: mostra quem está usando a máquina;
• wc: conta a quantidade de:
• wc -c arquivo : quantidade de bytes
• wc -w arquivo : quantidade de palavras
• wc -l arquivo : quantidade de linhas;
• date: mostra data e hora;
• telnet: inicia a TELNET;
• m: abre o MINICOM e permite configurar o modem;
• type: explica um determinado arquivo do sistema;
• file: descreve um determinado arquivo;
• find / – name ____ : procura arquivo “____”;
• useradd nome_do_novo_usuário: cria uma nova conta usuário;
• passwd nome_do_usuário: cria ou modifica a senha do usuário;
• userdel -r nome_do_usuário: apaga um usuário;
• su: passa para o superusuário (perceba que no prompt irá mudar o $ pelo #);
• sndconfig: permite configurar a placa de som;
• TAR: arquivo para criar Backups:
• TAR –c: cria
• TAR –x: restaura
• TAR –v: lista cada arquivoTAR –t: lista os arquivos de backups;
• write: escreve mensagens para outro usuário em rede;
• mv: move arquivos;
• linuxconf: configuração do Linux;
• alias: possibilita a criação de comandos simples;
• &: coloca o comando desejado em background, ou seja, trabalha enquanto você faz outra coisa no computador;
• ps: relata os processos em execução;
• kill: encerra um ou mais processos em andamento;
• history: mostra os comandos que o usuário já digitou;
• lpr: imprime um arquivo (exemplo: lpr arquivo);
• lpq: mostra o status da fila de impressão;
• lprm: remove trabalhos da fila de impressão;
• mtools: permite o uso de ferramentas compatíveis com DOS. Após digitar o comando, você verá que todo comando do DOS terá um M na frente. Isso é normal.

Tagged with:
Publicado em Linux

História do Linux


O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual contarei sua história agora, para que você entenda melhor a do Linux.

A origem do Unix tem ligação com o sistema operacional Multics, projetado na década de 1960. Esse projeto era realizado pelo Massachusets Institute of Technology (MIT), pela General Eletric (GE) e pelos laboratórios Bell (Bell Labs) e American Telephone na Telegraph (AT&T). A intenção era de que o Multics tivesse características de tempo compartilhado (vários usuários compartilhando os recursos de um único computador), sendo assim, o sistema mais arrojado da época. Em 1969, já exisita uma versão do Multics rodando num computador GE645.

Ken Thompsom era um pesquisador do Multics e trabalhava na Bell Labs. No entanto, a empresa se retirou do projeto tempos depois, mas ele continuou seus estudos no sistema. Desde então, sua idéia não era continuar no Multics original e sim criar algo menor, mas que conservasse as idéias básicas do sistema. A partir daí, começa a saga do sistema Unix. Brian Kernighan, também pesquisador da Bell Labs, foi quem deu esse nome.

Entre 1977 e 1981, a AT&T, alterou o Unix, fazendo algumas mudanças particulares e lançou o System III. Em 1983, após mais uma série de modificações, foi lançado o conhecido Unix System IV, que passou a ser vendido. Até hoje esse sistema é usado no mercado, tornando-se o padrão internacional do Unix. Esse sistema é comercializado por empresas como IBM, HP, Sun, etc. O Unix, é um sistema operacional muito caro e é usado em computadores poderosos (como mainframes) por diversas multinacionais.

Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds?

Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix “em casa”. No entanto, vale citar que ele foi escrito do “zero” e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente.

A partir daí, “entra em cena” Linus Torvalds. Ele era um estudante de Ciências da Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994 disponibilizou a versão 1.0. Até o momento em que este artigo estava sendo escrito, a versão atual era a 2.6.

O Linux é um sistema operacional livre e é uma re-implementação das especificações POSIX (padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com extensões System V e BSD. Isso signfica que o Linux é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma.

Mas porque o Linux é gratuito?

Linus Torvalds, quando desenvolveu o Linux, não tinha a inteção de ganhar dinheiro e sim fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de desenvolvimento que foi adotado foi o de ajuda coletiva. Ou seja, ele coordena os esforços coletivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor.

Licença GPL

O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que estão sob ela, com o compromisso de não tornar os programas fechados e comercializados. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercialiazá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo.

GNU

Mas a história do Linux não termina por aqui. É necessário também saber o que é GNU. GNU é um projeto que começou em 1984 com o objetivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da idéia, resolveu deixar seu kernel dentro da mesma licença.

Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo  e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional.

Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU? Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há quem defenda o uso de GNU/Linux).

Finalizando, o projeto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à “mistura” de seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro sistema.


Até o próximo post!

Publicado em Linux
BLOG do Aureliano

Por: AURELIANO MARTINS PEIXOTO

rafaelbernardes.wordpress.com/

O seu portal de estudos

FRC Info Consultoria

Agende uma visita com o consultor: (21) 9199-7687

The WordPress.com Blog

The latest news on WordPress.com and the WordPress community.