sexta-feira, 12 de dezembro de 2008

CURSO DE UNIX VII

CURSO DE UNIX VII por gato-bravo-e-brasileiro * Como Funciona Mais "Intimamente" o Filesystem do UNIX Quando falamos no filesystem do UNIX, nao podemos deixar de falar do mais importante: a palavra chave e "inode". O inode e a estrutura de dados que mantem todas as informacoes essenciais sobre os arquivos. Ele abriga: * UID e GID do dono do arquivo. * As permissoes do arquivo. * O timestamp do arquivo (informacoes sobre a ultima modificacao, ultimo acesso, etc). * O tipo do arquivo (arquivo de dados, device, imagem da memoria, etc). O comando "ls -l" mostra quase todas as informacoes acima, "ls -i" mostra o inode. Todos os filesystems tem um numero pre-definido de inodes, determinados na sua criacao; e isso que vai determinar o numero maximo de arquivos que o ele pode guardar. As vezes, mesmo nao sendo muito comum, voce tera ter bastante espaco livre entretanto nao podera criar novos arquivos. Este caso identifica o esgotamento de inodes livres. O numero de inodes nao pode ser redefinido sem que haja perda de dados, ou seja, o filesystem tem que ser recriado. * As Diversas Permissoes de Acesso a um Arquivo Como o UNIX e um sistema operacional multiusuario, seria impossivel administra-lo sem que se tivesse permissoes de arquivos. As permissoes sao baseadas em dois conceitos: o de usuario e grupo. Todo usuario tem uma unica conta, com um unico nome de login e um unico UID (o numero de identificacao do usuario - consulte as aulas anteriores para informacoes de como achar seu numero atraves do arquivo passwd) (*). Todo usuario tambem e membro de um ou mais grupos (no BSD e em algumas outras implementacoes do UNIX, voce e membro de todos os grupos os quais voce tem acesso, simultaneamente. Em outros sistemas, para mudar o grupo ativo voce devera usar o comando "newgrp"). O seu grupo primario e especificado no arquivo passwd (normalmente em "/etc/"). Caso o operador do sistema deseje lhe dar acesso a mais grupos, voce sera adicionado no arquivo group (tambem normalmente em "/etc/"). Quando voce cria um arquivo ele sera automaticamente setado para o seu grupo primario ou para o grupo do dono do diretorio em que ele esta sendo criado. Exeto em sistemas que possuem quota, voce pode mudar o dono (apenas o root) e o grupo (apenas para algum o qual voce pertenca) com o comando chown e/ou chgrp (veremos mais adiante). Por exemplo, eu pertenco aos grupos "users e "staff". Quero mudar o grupo do arquivo "planilha_jan96", que esta em "users", para "staff": $ chgrp staff planilha_jan96 Agora vejamos como e formada as permissoes de leitura, escrita e execucao. Todo arquivo possui tres diferentes sets de permissoes: um para o dono do arquivo, outro para o grupo o qual o arquivo pertence e outro para os outros (ou seja, todos exeto os usuarios que nao se enquadrarem em nenhuma das especificacoes anteriores). A permissao de escrita e simbolizada pela letra "w", a de leitura pela letra "r" e de execussao pela letra "x". Usando a saida do comando "ls -l", temos abaixo: -rw-r--r-- 1 feher users 0 Mar 29 17:12 planilha_dez94 O arquivo "planilha_dez94" possui um set de permissoes de "rw-r----". Desmembrando, temos: * "rw-" para o dono do arquivo. Significa: "tem acesso a escrita e leitura, porem nao pode executar o arquivo". * "r--" para os usuarios pertencentes ao grupo do arquivo. Significa: "tem acesso a leitura, porem nao pode escrever nem executar o arquivo". * "---" para os outros usuarios. Significa: "Nao tem acesso nem a leitura, nem a escrita e nem para a execucao do arquivo". Agora que voce ja conhece as permissoes, vejamos elas mais intimamente, a nivel de bits (parcialmente): execucao -----------+ escrita --------+ leitura ---+ +---+---+---+ 0 0 0 +---+---+---+ Agora (totalmente), englobando os tres sets de permissoes: dono do usuarios outros arquivo do grupo usuarios +---+---+---++---+---+---++---+---+---+ 0 0 0 0 0 0 0 0 0 +---+---+---++---+---+---++---+---+---+ Um bit setado ("1") significa "sim", caso contrario ("0") significa nao. Agora vejamos como vamos formar o set de permissoes na forma de numero em base octal: um bit setado para leitura soma 4, um bit setado para escrita soma 2 e um para execucao soma 1. Por exemplo, tenho acesso a leitura, para escrita mas nao para execucao. Fica 4 +2 + 0 = 6. Logo, concluimos a tabela abaixo: OctalPermissao0 "---"1"--x"2"-w-"3"-wx"4"r--"5"r-x"6"rw-"7"rwx" Sendo assim, um arquivo com permissao "rwxr-x--x" tera permissao 651. Ficou claro? A primeira vista isso nao teria ultilidade, porem voce ficara surpreso quando for usar o comando "chmod" (veremos brevemente).

ass:gato-bravo-e-brasileiro

Nenhum comentário: