http://www.zago.eti.br/chmod.txt FAQ e dicas sobre o chmod, controlar acesso aos arquivos e diretórios. Use CTRL+F para refinar a pesquisa. *************************************** veja também chown.txt user.txt direitos.txt http://focalinux.cipsga.org.br/guia/iniciante/ch-perm.htm dicas e exemplos do uso de chmod e chown chmod - altera permissões (deve ter origiem em CHange MODe) chown - altera o dono do arquivo (deve ter origiem em CHange OWNer) Lembre que somente quem tem permissão no arquivo ou diretório podera alterar as permissões, quando ocorrer erros verifique seus direitos sobre o arquivo ou faça com poderes de root. *************************************** chown O comando chown executado pelo root permite alterar o proprietário ou grupo do arquivo ou diretorio #chown usuário arquivo #chown usuário diretorio exemplo passar o diretorio pedidos que pertece a antonio mas quero que o novo dono seja zago então digite: #chown zago pedidos para incluir os sub-diretorios acrescente -R e exibir o resultado -c #chown -c -R zago pedidos #chown usuário:grupo arquivo chmod com -R altera as permissões recusivamente no diretorio e seus sub-diretorio # chmod -R 744 /diretorio # chmod -Rv 777 diretorio acrescentando a opção "v= verbose" -Rv exibe o resultado do comando em cada arquivo. # chmod -Rv 777 diretorio > logdocomando Neste comando será gravado no arquivo logdocomando o resultado aplicado em cada arquivo, que poderá ser analizado por um script ou editor. Antonio Francisco Zago zagolinux@uol.com.br *************************************** Dê permissões aos usuários no pppd! Curto e grosso: # chmod a+rwsx /sbin/pppd *************************************** Comando chmod --------------------------------------------------------------------- Autor: Manoel Netto Só pra dar uma mãozinha ao pessoal que não consegue decorar os números. Aprendendo fica mais fácil. Primeiro vamos fazer uma pequena tabela de associação dos números DECIMAIS com os números BINÁRIOS respectivos : [usaremos 3 casas por convenção] 0 - 000 1 - 001 2 - 010 3 - 011 4 - 100 5 - 101 6 - 110 7 - 111 Tendo em mente que o conceito de binário na eletrônica [e consequentemente na computação] significa 0 = desligado e 1 = ligado, adicionamos mais um elemento a tabela acima : rwx 0 - 000 1 - 001 2 - 010 3 - 011 4 - 100 5 - 101 6 - 110 7 - 111 Onde "rwx" são as permissões de um arquivo, ou seja, r=read (leitura) w=write (gravação,alteração,deleção) e x=execute (execução). Feito isso, sabemos que um arquivo ou diretório possui 3 modos de permissão. Uma permissão para o DONO do arquivo ou seja, quem o criou, uma outra permissão para o GRUPO do usuário dono do arquivo, e outra permissão para QUALQUER outro usuário ou grupo. Sabendo disso, temos a tabela final abaixo : dono grupo outros rwx rwx rwx 0 - 000 000 000 1 - 001 001 001 2 - 010 010 010 3 - 011 011 011 4 - 100 100 100 5 - 101 101 101 6 - 110 110 110 7 - 111 111 111 Ok ! Vamos ver se estamos afiados . Eu tenho um arquivo qualquer chamado abc.doc que eu quero permissão total para o dono [eu], permissao de apenas leitura para o meu grupo e nenhuma permissao para o resto do mundo. O comando para executar essa ação é o CHMOD (em minúsculo mesmo). $ chmod 740 abc.doc [acompanhem na tabela que o 7=rwx, 4=r e 0=nada] Ok ! Se todos entenderam, parabéns. Vocês estão formados em chmod. --------------------------------------------------------------- As mensagens da lista Dicas-L são veiculadas diariamente para 15624 assinantes. Para sair ou assinar a lista Dicas-L, consulte o documento que se encontra em http://www.Dicas-l.com.br/FAQ.html. A redistribuição desta e outras mensagens da lista Dicas-L pode ser feita livremente, deste que o conteúdo, inclusive esta nota, não sejam modificados. --------------------------------------------------------------- *************************************** Os Modos de Permissao no Unix Introducao Quem ja usou o TELNET ou o FTP para ter acesso a computadores remotos, ja percebeu que as listagens dos comandos "dir" ou "ls -l" sao compostas de varias colunas de informacoes. E facil identificar nessas listagens o nome, tamanho, data e dono dos arquivos. Mas o que sao estes 10 caracteres do inicio das linhas? Para que servem? -rw-r--r-- 1 lna ftp-adm 181830 May 16 11:26 AAResources -rw-r--r-- 1 lna ftp-adm 53104 May 16 11:26 FAQ drwxr-xr-x 2 lna ftp-adm 512 Oct 18 1995 Info drwxr-xr-x 2 lna ftp-adm 1024 Oct 18 1995 Software -rw-r--r-- 1 lna ftp-adm 61905 Apr 15 05:37 Welcome E possivel altera-los a vontade? Procuraremos responder a estas pergun- tas ao longo deste texto. Geralmente os usuarios conectados a Internet tem conta em uma maquina executando Unix ou Linux, mas os sistemas de janelas, ampla- mente utilizados atualmente, muitas vezes impedem que estes caracte- res sejam vistos. Verificando quem pode ter acesso aos arquivos Tres classes de usuarios podem ter acesso aos arquivos: o dono (a pessoa que criou o arquivo), o grupo (usuarios que sao agru- pados pelo administrador do sistema) e os outros (todos os usuarios conectados a rede). Os 10 primeiros caracteres das linhas listadas pelo "ls -l" ou "dir" definem precisamente o que os usuarios de cada classe podem fazer com seus arquivos. Esses caracteres sao cha- mados de modos de permissao dos arquivos. Para entender o que esses caracteres significam, separe-os em 4 grupos com 1, 3, 3 e 3 carac- teres: [ ] [ ][ ][ ] [ ][ ][ ] [ ][ ][ ] | | | | tipo dono grupo outros O primeiro caracter define o tipo de arquivo: se for um "-" entao E um arquivo normal. Se for um "d", E o nome de um direto- rio. Se for um "l" entao E um 'link' simbolico. Outras possibilida- des raramente utilizadas sao "b", "c", "p" ou "s". Os outros 9 caracteres devem ser separados em 3 grupos de 3 caracteres: o primeiro grupo define as permissoes do dono do arquivo, o segundo grupo as permissoes do grupo de usuarios e o terceiro define as permissoes de todos os outros usuarios. Em cada grupo, as permissoes sempre aparecem na ordem leitura- escrita-execucao. A permissao de leitura E sempre indicada com um "r", a permissao de escrita com um "w" e a permissao de execucao com um "x". Permissao negada E indicada com um "-". Exemplo: Entre as linhas que aparecem na listagem de diretorio que apresentamos no inicio deste texto, temos as duas linhas seguintes: -rw-r--r-- 1 lna ftp-adm 53104 May 16 11:26 FAQ drwxr-xr-x 2 lna ftp-adm 512 Oct 18 1995 Info Correspondendo ao nome "FAQ" temos as permissoes -rw-r--r-- , que podem ser separadas da seguinte forma - rw- r-- r-- tipo dono grupo outros O primeiro "-" significa que FAQ E um arquivo comum. As permissoes do dono de FAQ sao "rw-", o que significa que o dono pode ler e es- crever no arquivo. As permissoes do grupo ou dos outros usuarios E "r--" o que significa que eles podem apenas ler (ou copiar) o arqui- vo. Correspondendo ao nome "Info" temos as permissoes drwxr-xr-x. O tipo do arquivo E "d", ou seja, E um diretorio. As permissoes do dono sao "rwx", isto E, o dono pode ler, escrever e executar o diretorio. "Executar o diretorio" significa poder "entrar" nele e e- ventualmente utilizar seus arquivos. As permissoes do grupo e de to- dos os outros usuarios E "r-x", isto E, eles podem ler e executar mas nao podem escrever nada no diretorio. Exemplo: Todos as mensagens que chegam para determinado usuario, via correio eletronico, sao guardadas em um unico arquivo com nome igual ao nome de 'login' no subdiretorio /var/spool/mail (ou nome de cami- nho parecido). No meu caso, a listagem deste arquivo com o comando "ls -l" mostra a seguinte linha -rw-rw---- 1 ccendm03 mail 18750 Jul 2 13:59 ccendm03 Isto significa que o dono (rw-) tem permissao de leitura e escrita neste arquivo, o grupo "mail" tambem tem as mesmas permissoes (rw-). Os outros usuarios (---) nao podem ter acesso a ele. Resta saber quem sao os usuarios do grupo "mail" definidos pelo admistrador do sistema. Alterando as permissoes de acesso a um arquivo Use o comando 'chmod' para alterar as permissoes de um arquivo seu. Este comando pode ser usado de duas maneiras: (1) chmod atribuicao arquivo onde "atribuicao" E uma sequencia de caracteres formada por: - pelo menos um dos caracteres "u" (dono), "g" (grupo) ou "o" (outros), indicando a(s) classe(s) que tera(ao) permissao alterada; - os sinais "+", "-" ou "=" indicando se a permissao sera adicionada (+), retirada (-) ou definida (=); - pelo menos um dos caracteres "r" (leitura), "w" (escri- ta) ou "x" (execucao) indicando as permissoes. Exemplo: % chmod ugo=rw texto.doc Este comando determina que o dono, o grupo e todos os outros usuarios tenham permissao de leitura e escrita no arquivo texto.doc. Desse modo, o comando "ls -l" mostrara algo parecido com -rw-rw-rw- 1 ccendm03 users 1200 Jul 5 20:09 teste.doc % chmod go-w texto.doc Neste comando, sao retiradas as permissoes de escrita no arquivo texto.doc para os usuarios do grupo e tambem para todos os outros usuarios: -rw-r--r-- 1 ccendm03 users 1200 Jul 5 20:09 teste.doc % chmod g+w texto.doc Agora, o grupo de usuarios tambem tera permissao de escrita no arquivo texto.doc: -rw-rw-r-- 1 ccendm03 users 1200 Jul 5 20:09 teste.doc (2) Outra forma de usar o 'chmod': chmod numero arquivo onde "numero" E um numero octal (base 8) formado por 3 algarismos, todos no intervalo de 0 a 7, de tal forma que a representacao binaria com 9 digitos deste numero esteja relacionada aos modos de permissao da seguinte forma: 0 corresponda a permissao negada, 1 corresponda a permissao concedida. Exemplo: chmod 644 Teste 644 em octal corresponde na representacao binaria a 110100100. Logo as permissoes de Teste ficarao sendo rw-r--r--. O comando chmod nao altera o tipo: arquivo continua sendo arquivo e diretorio conti- nua sendo diretorio. Por exemplo, se Teste fosse um arquivo antes da aplicacao do chmod, entao suas permissoes depois do uso do coman- do ficariam sendo -rw-r--r--. Essa conversao octal <---> permissoes E feita facilmente se vo- ce observar a seguinte tabela --------------------------------------- numero binario equiv. permissoes --------------------------------------- 0 000 --- 1 001 --x 2 010 -w- 3 011 -wx 4 100 r-- 5 101 r-x 6 110 rw- 7 111 rwx --------------------------------------- Exemplo: chmod 625 teste.txt Observando a tabela, o 6 corresponde a "rw-", o 2 corresponde a "-w-" e o 5 corresponde ao "r-x". Portanto, se texte.txt for um arquivo (tipo "-") as permissoes apos o chmod serao -rw--w-r-x . Exemplos diversos ===================================================================== Permissoes Comando Descricao ---------------------------------------------------------------------------------------------------------------------------------------- -r-------- chmod 400 arquivo Somente o dono pode ler o arqui- vo, ninguem pode screver. ------------------------------------------------------------------------------------------------- -r--r--r-- chmod 444 arquivo Todos podem ler o arquivo, nin- guem pode escrever. ------------------------------------------------------------------------------------------------- -rw-rw-rw- chmod 666 arquivo Todos podem ler e escrever no arquivo. ---------------------------------------------------------------------------------------------------------------------------------------- drwxrwxrwx chmod 777 diretorio Todos podem ler, escrever, criar ou apagar arquivos do diretorio. ---------------------------------------------------------------------------------------------------------------------------------------- drwx------ chmod 700 diretorio Somente o dono pode ler, escre- ver, criar ou apagar arquivos. Ninguem mais pode ter acesso a este diretorio. ---------------------------------------------------------------------------------------------------------------------------------------- drwx-wx-wx chmod 733 diretorio O dono pode ler ou escrever no diretorio. Todos os outros usu- arios podem apenas screver. ===================================================================== Epilogo -------------------------------------------------------------------------- Este texto foi adaptado em julho/1996 por Lenimar N. Andrade (endereco eletronico: lenimar@mat.ufpb.br) de uma apostila intitulada "Curso de Introducao ao Unix". Esta apostila foi elaborada em 1993 pela Coordenacao de Informatica da Faculdade de Engenharia Mecanica da UNICAMP. Alem da apostila da F.E.M., foram acrescentados alguns fragmentos de informacoes obtidas com os comandos "man ls" e "man chmod". *************************************** *************************************** *************************************** Permissoes de arquivos e diretorios em Sistemas Unix (setgid, setuid,sticky) A ultima linha de defesa contra invasores do sistema sao as permissoes oferecidas pelo sistema. Cada arquivo ou diretorio possui tres grupos de bits de permissao a ele associados: um grupo para o usuario ao qual o arquivo pertence, um grupo para os usuarios do grupo ao qual o arquivo esta associado e um grupo para todos os demais usuarios. Cada grupo contem tres grupos de bits identicos que controlam: Acesso de leitura(read): Se este bit estiver ligado, o arquivo ou diretorio possui acesso de leitura. Em se tratando de um diretorio, esta permissao permite a um usuario ver o conteudo de um diretorio mas nao lhe permite acessa-lo. Acesso de gravacao (write): Se este bit estiver ligado, o arquivo ou diretorio pode ser modificado. Em se tratando de um diretorio, a permissao de escrita implica a capacidade de criar, apagar ou renomear arquivos. Note que a permissao para remover um arquivo nao e determinada pelas permissoes do arquivo mas sim pelas permissoes do diretorio que o contem. Acesso de execucao (execute): Se este bit estiver ligado, o arquivo ou diretorio pode ser executado (pesquisado). No caso de um diretorio, a permissao de execucao implica que os arquivos nele contidos podem ser acessados Alem destas permissoes, existe um quarto bit que se ligado atribui as seguintes propriedades aos arquivos e diretorios: setuid: Este bit, se ativado no grupo de permisscoes do dono do arquivo, indica que todos os que executarem este programa o estarao fazendo com os privilegios do proprietario do arquivo. Por exemplo, o programa sendmail e setuid root, o que lhe permite gravar arquivos na fila de mensagens do sistema, o que e vedado a usuarios normais. Este bit nao possui significado em arquivos nao executaveis setgid Este bit atua da mesma forma que o setuid bit, com a diferenca que o programa sera executado com as permissoes do grupo ao qual pertence sticky O sticky bit informa ao sistema operacional a atuar diferentemente com relacao a imagem executavel do arquivo. E remanescente de versoes antigas do Unix e possui pouco uso hoje. Diretorios que possuem modo 777 que tem este bit ligado nao podem ser removidos (/tmp por exemplo). Shell scripts que possuem os bits setuid ou setgid ligados nao sao seguros, nao importa quantas precaucoes tenham sido tomadas ao escreve-los. Tais scripts nunca devem ser permitidos em qualquer sistema Unix. Nas versoes mais recentes de sistemas Unix foi acrescentado um novo significado ao sticky bit quando aplicado a diretorios. Quando este bit e ativado em um diretorio, usuarios nao podem apagar ou renomear arquivos pertencentes a outros usuarios. Isto e tipicamente util no caso de diretorios como /tmp. Normalmente o diretorio /tmp possui acesso universal para gravacao, permitindo que qualquer usuario remova arquivos pertencentes a qualquer outro usuario. Ativando o sticky bit no diretorio /tmp, os usuarios podem remover apenas seus proprios arquivos. Para ativar o sticky bit em um diretorio, use o comando: # chmod o+t /tmp ou # chmod 1777 /tmp Ao emitirmos o comando: # ls -ld /tmp drwxrwxrwt 4 bin bin 3584 May 5 14:17 /tmp O caracter "t" em drwxrwxrwt indica que o sticky bit deste diretorio esta ligado. Ao se criar um arquivo normalmente todas as permissoes sao ativadas. Como isto raramente e o desejado, o valor do umask e usado para modificar o grupo de permissoes com as quais um arquivo e criado. Ou seja, da mesma forma com que o comando chmod especifica quais bits devem ser ligados, o comando umask especifica quais bits devem ser desligados. umask 022 Para impedir a criacao acidental de arquivos pertencentes ao superusuario com permissao 777. *************************************** Entendendo as propriedades e permissões dos arquivos: Para obter uma segurança no sistema, o Linux utiliza propriedades e permissões nos arquivos e diretórios. Este controle é usado para não permitir que um usuário leia ou modifique um arquivo de outro usuário. Um arquivo só poderá ser acessado por um usuário se ele for o proprietário ou se pertencer ao grupo em questão, e ainda terá que respeitar as permissões atribuídas no arquivo. As propriedades e as permissões são mostradas quando se listam os arquivos usando o formato longo do comando ls (ls -l). Veja um exemplo: # ls -l drwxr-xr-x 2 usuario grupo 1024 Dec 7 16:39 nome_do_dir -rwxrwxr-- 1 usuario grupo 29845 Dec 12 21:55 nome_do_arq1 lrwxrwxrwx 1 usuario grupo 12 Dec 9 01:33 nome_da_lig -> nome_do_arq2 -rw-r--r-- 1 usuario grupo 7563 Dec 2 22:30 nome_do_arq2 A primeira coluna da esquerda mostra o tipo e as permissões do arquivo em uma seqüencia de 10 caracteres, a terceira e quarta coluna mostram a qual usuário e grupo pertence o arquivo. O tipo do arquivo é mostrado no primeiro caracter da seqüencia. Existem vários tipos de arquivos, mas os mais comuns são: b -> dispositivo de blocos c -> dispositivo de caracteres d -> diretório l -> ligação simbólica Quando há um hífem em vez de uma letra, significa que é um arquivo normal. As permissões são mostradas em uma seqüencia de 9 caracteres divididos em três níveis: usuário, grupo, outros. Existem três tipos de permissões, a permissão de leitura (read), a permissão de gravação (write) e a permissão de execução (execute). Em cada nível deverá ser especificada estas três permissões. Quando há um hífem em vez de uma letra, significa que não há permissão para acessar ao arquivo. Veja: /-------> O grupo pode ler e executar. / \ -rwxr-xr-x \ / \ / | \-----> Os outros usuários podem ler e executar. | \-----------> O proprietário pode ler, gravar e executar. As permissões tem significados diferentes para arquivos e diretórios. Para um arquivo, a permissão de leitura significa que pode ser lido o conteúdo do arquivo, a permissão de gravação significa que o arquivo pode ser alterado ou apagado e a permissão de execução significa que o arquivo pode ser executado como um programa. Para os diretórios, a permissão de leitura significa que pode ser listado o seu conteúdo, a permissão de gravação significa que arquivos podem ser acrescentados ou removidos dentro do diretório e a permissão de execução significa que os arquivos podem ser lidos ou executados. Existem ainda os atributos especiais, que são: setuid -> Definido nos arquivos executáveis, faz com que seja executado com as permissões do proprietário daquele arquivo. setgid -> Faz com que o arquivo seja executado com as permissões do grupo do arquivo, mesmo que o usuário não participe dele. Todo arquivo criado em um diretório setgid é criado com o mesmo grupo do diretório. sticky -> Em diretórios compartilhados por vários usuários, faz com que um arquivo só possa ser apagado por seu proprietário. Você poderá alterar as permissões dos arquivos e diretórios, além de alterar o proprietário e o grupo que o arquivo pertence. Os utilitários usados são, respectivamente: chmod, chown e chgrp. O comando chmod pode ser usado de duas maneiras diferentes, o modo simbólico e o modo absoluto. No modo simbólico o comando chmod tem a seguinte sintaxe: chmod [ugoa][+-=][rwxXst] arquivo u -> permissões para o proprietário. g -> permissões para o grupo. o -> permissões para outros usuários. a -> permissões para todos: proprietário, grupo e outros. + -> adiciona a permissão às permissões existentes. - -> remove a permissão das permissões existentes. = -> define uma nova permissão, cancelando as existentes. r -> permissão de leitura. w -> permissão de gravação. x -> permissão de execução. X -> permissão de execução se for um diretório. s -> setuid se for atribuído ao proprietário, setgid se atribuído ao grupo. t -> sticky. Exemplos: # chmod u+x arquivo -> adiciona a permissão de execução para o proprietário do arquivo. # chmod ug+rw arq -> adiciona a permissão de leitura e gravação para o proprietário e grupo. # chmod u+wx,g-w,o=r arq -> adiciona a permissão de gravação e execução para o proprietário, retira a permissão de gravação para o grupo e atribui apenas a permissão de leitura para os outros usuários. No modo absoluto o comando chmod usa a notação octal, com a seguinte sintaxe: chmod [[e]ugo] arquivo Onde se utiliza um número octal de três dígitos, com cada dígito correspondendo a um dos três níveis de permissão (usuário, grupo e outros), mais um quarto dígito opcional, que é o atributo especial. Cada dígito dos níveis de permissão é formado pela soma dos valores de cada tipo de permissão (leitura, gravação e execução), onde leitura tem o valor 4, gravação tem o valor 2 e execução 1. Veja abaixo: 0 -> nenhuma permissão. 1 -> permissão de execução. 2 -> permissão de gravação. 3 -> permissão de gravação e execução. 4 -> permissão de leitura. 5 -> permissão de leitura e execução. 6 -> permissão de leitura e gravação. 7 -> permissão de leitura, gravação e execução. Para o atributo especial usa-se a soma dos valores de setuid, setgid e sticky, que também são 4, 2 e 1 respectivamente. Veja então os seguintes valores: 0 -> nenhum atributo especial ligado. 1 -> sticky ligado. 2 -> setgid ligado. 3 -> setgid e sticky ligados. 4 -> setuid ligado. 5 -> setuid e sticky ligados. 6 -> setuid e setgid ligados. 7 -> setuid, setgid e sticky ligados. Exemplos: # chmod 400 arquivo -> atribui apenas a permissão de leitura para o proprietário e nenhuma permissão para o grupo e outros usuários. # chmod 750 arquivo -> atribui permissão de leitura, gravação e execução para o proprietário, permissão de leitura e execução para o grupo e nenhuma permissão para os outros usuários. # chmod 1777 arquivo -> liga o atributo sticky e atribui permissão de leitura, gravação e execução para todos os usuários. O comando chown, usado para alterar o proprietário do arquivo, só pode ser usado pelo administrador do sistema. Este comando também pode alterar o grupo. Ele tem a seguinte sintaxe: chown usuário arquivo chown usuário:grupo arquivo Veja um exemplo: # chown joao arquivo.ext -> define joao como proprietário do arquivo.ext. # chown joao:familia arquivo -> define o arquivo como propriedade de joao e do grupo familia. O comando chgrp, como já dito, altera o grupo que o arquivo pertence. E só pode ser usado pelo proprietário do arquivo ou pelo administrador do sistema. Veja a sintaxe: chgrp grupo arquivo Exemplo: # chgrp familia arquivo.ext -> define o arquivo.ext como pertencente ao grupo familia. *************************************************************** Todo arquivo/diretório tem um owner, um group e um conjunto de permissões associado, que define as operações que cada usuário pode realizar com relação ao arquivo/diretório. Default: rwx r-x r-x ---- --- ---- | | others: read, execute | group: read, execute owner: read, write, execute onde, r: permissão para ler w: permissão para escrever x: permissão para executar Para alterar as permissões de um arquivo # chmod onde, who: u (owner), g (group), o (others), a (all) sinal: + (dar permissão), - (remover permissão) protection: r (read), w (write), x (execute) Exemplo: chmod u+wx arquivo1 atribui ao dono do arquivo as permissoes para escrever e gravar *************************************************************** Para dar setuid root para um programa basta fazer: # chmod 4xxx SeuPrograma No seu caso específico, seria algo como : chmod 4755 artswrapper Mas lembre-se: Fazer um programa rodar como root abre uma brecha na segurança de sua máquina. Em casa, eu fiz isso para que meu usuário usasse o LinNeighborhood (o "ambiente de rede" Win-Linux). No caso, foram nos smbmount e smbumount. mas como a máquina é doméstica, de um único usuário (eu)... Subject: (linux-br) setuid de root? > Olá Pessoal! > > Estou tentando utilizar o artswrapper mas, ele pede para ser executado > como root ou setuid de root! *************************************************************** tem q dar a permissão para os "outros" usuários: "chmod 776 /mnt/hdb*" vai ficar rwx rwx rw- > consegui montar o segundo hd, e configurei o arquivo > exports no /etc > so que quando vou acessar ele no outro micro, ele > diz que nao tem permissao > *************************************************************** Voce pode fazer o seguinte entrar na pasta onde estao os arquivos e digitar la chmod 770 - Rf * - chmod é o comando para mudar as permissões - 770 é a permissão propriamente dita no caso do 770 é rwxrwx--- - Rf significa recursivamente em todas as pastas e subpastas - * significa, tanto pastas como arquivos ou seja tudo mas devo avizalo que se voce não especificar no samba, direitos e permissões, sempre que um usuario entrar em um arquivo, modificalo, e salvalo o arquivo vai ficar com o direito somente para este usuario. *************************************************************** Para tornar um arquivo executavel basta você digitar no diretório em que ele se encontra o seguinte comando: chmod a+x "nome-do-arquivo" após isto basta digitar ./"nome-do-arquivo" (sempre sem as aspas) *************************************************************** Bom, na verdade as permissões do linux são uma espécie muito primitiva de Access Control List (ACL). Acontece que com esta ACL o Linux não satisfaz os requisitos de accounting para C2 Security, de acordo com o Orange Book. Existe então, um (na verdade q eh mais de um) projeto para criar ACLs estendidas no Linux. Desta forma, vc pode definir permissões para um arquivo (leia-se arquivo, dir, socket, pipe, link, or whatever) com a granularidade de até um único usuário, ou um ou mais grupos, ou todos exceto o grupo, etc... Links (a parte que interessa mesmo): http://trustees.sourceforge.net/ (algumas definições, POSIX-ACL) http://acl.bestbits.at/ (projeto de ACL estendida com manuais e tudo mais, fontes e binarios pra download, funcionando em ext2 e ext3) Temos também, se pensarmos em outro fs, XFS for linux (sgi.com) com ACLs - http://rpmfind.net/linux/RPM/SGI/xfs/testing/Release-1.0.1-PR3/cmd_rpms/acl-1.0.7-0.i386.html Please note: jamais testei algum desses. Conheço as ferramentas de ACL estendida do Tru64 UNIX e funcionam às pampas, não sei como foi implementado no Linux. *************************************************************** De: Piter Punk Para: Maicon Radeschi Cc: LINUX BR Assunto: Re: (linux-br) Ajuda com Shell Script para password Data: 22 Jul 2002 11:35:43 -0300 Maicon Radeschi wrote: bom.. primeiramente , olá pessoal meu "problema" eh que eu utilizo o mplayer com a opcao -vo svga, e essa opcao soh eh disponivel para o root, pois soh o root pode usar a svgalib, entao eu uso o sudo pra nao ter que assistindo videos como root, mas toda hora que inicio o mplayer tenho que digitar a minha senha, gostaria de saber se alguem pode me ajudar a criar um script que jah coloque a senha tipo assim... Jah pensou em fazer algo mais simples do tipo: chmod 4755 `which mplayer` Com isso você deixa o mplayer sendo executado sempre como root*. Falous, Piter PUNK *Aliás, é o que se costuma fazer nos aplicativos que usem a svgalib -- om.br *************************************************************** De: Wagner Ikeda Responder-a: Wagner Ikeda Para: Marcus Cavalcanti , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) mudar permissoes de uma vez Data: 24 Jul 2002 09:31:58 -0300 Bom dia, ----- Original Message ----- From: "Marcus Cavalcanti" > Estou querendo alterar as permissoes de todos os arquivos pertencentes a um > diretório e dos arquivos pertencentes aos subdiretórios abaixo e assim por > diante... como são muitos os subdiretórios abaixo do diretório principal, eu > gostaria de saber se existe alguma forma de alterar todas as permissoes de > uma vez... ou o jeito é mesmo ter que entrar de diretório em diretório e alterar > as permissões dos arquivos ? cd /o_diretorio find . -exec chmod 755 {} \; (use no lugar de 755 a permissão que você quer atribuir) *************************************************************** De: Marcus Lima Responder-a: marcuslima@marcuslima.eti.br Para: Fernando Correa Da Conceição Cc: Fernando , linux-br@bazar.conectiva.com.br Assunto: (linux-br) RES: (linux-br) chown e chmod Data: 01 Dec 2002 16:08:15 -0200 > Aproveitando a pergunta do colega e tua resposta, poderia explicar o que > são estes bits(bit suid, bit sgid e stick bit) e o que fazem? Vou dar um pequeno exemplo do que cada um faz, para maior detalhes aconselho uma leitura mais específica e testes num sistema Linux. Documentação: man page do chmod O bit suid (r-sr-xr--) faz com que aqueles que tenham direito de execução neste comando (no caso o grupo), tenham permissões do dono durante a execução do programa. O bit sgid (r-xr-sr-x) faz com que aqueles que tenham direito de execução neste comando (no caso o dono e outros), tenham permissões do grupo durante a execução do programa. Existe o S maiúsculo, neste caso significa que o bit suid ou bit sgid foi incluido quando já existia a permissão de execução para o dono ou grupo (dependendo da localização do bit 'S'). O Stick bit tem duas utilizações: - Arquivos com stick bit: Este arquivo será executado em área reservada (protegida) de memória; - Diretórios com stick bit (/tmp): Significa que apesar das permissões serem iguais e completas (rwxrwxrwt) para todos os usuários, somente os donos dos arquivos e o root podem excluir os mesmos. É uma espécie de limitador. O stick bit tem a função de 'proteger' o sistema contra utilização imprópria, digamos assim. - Marcus Lima. *************************************************************** De: Jorge Godoy Para: marcuslima@marcuslima.eti.br Cc: ARP , linux-br@bazar.conectiva.com.br Assunto: Re: (linux-br) RES: (linux-br) Nome do grupo por default Data: 07 Dec 2002 09:09:00 -0200 "Marcus Lima" writes: >> Minha pergunta é justamente essa, como fazer com que todos os arquivos >> gravados dentro desse diretório, sejam gravados como pertencentes ao > usuário >> e a um grupo especifico (nesse caso alpires:financeiro) ? > > Você terá que alterar o grupo padrão do usuário de alpires para financeiro. Isso não é necessário. chmod g+s diretório/ Todos os arquivos e diretórios ali criados pertencerão ao grupo que está configurado para o diretório. Se já existirem arquivos ali, você terá que mudar as permissões manualmente. -- Godoy. *************************************************************** De: Davi Para: linux-br@bazar.conectiva.com.br Assunto: (linux-br) Re: Impedir usuario de usar chmod Data: 23 Apr 2003 18:59:23 -0300 De um chmod 700 (claro que como root) no exec do chmod e acabe com a festa!!!! :)) []s Davi Olá!!! Tenho uma rede NIS/NFS com Conectiva 8. O que está acontecendo é que alguns usuários estão mexendo nas permissões de suas pastas no home e com isso permitindo outras pessoas de entrarem nelas. Gostaria de evitar isso. Dei uma olhada no /bin/chmod e as permissões dele são - rwx r-x r-x: basta tirar a permissão de execução para estes usuários outra há outra forma aconselhada? *************************************************************** De:  Anderson da Luz Responder-a:  andersondaluz@yahoo.com.br Para:  qrd@uol.com.br, linux-br Assunto:  Re: (linux-br)Umask X Chmod Data:  Thu, 22 Jan 2004 16:10:43 -0300 O chmod é usado para alterar permissões de arquivos e pastas. O umask é o nivel de permissão que um arquivo ou diretorio vai receber quando for criado. se vc digitar umask vai ver como esta o valor do seu umask. O chmod usa esse tabela para permissões.. O umask interpreta ao contrario. R       W       X       Decimal 0       0       0       0 0       0       1       1 0       1       0       2 0       1       1       3 1       0       0       4 1       0       1       5 1       1       0       6 1       1       1       7 Ex: chmod 555 arquivo.  => Todos vão poder ler e executar..      umask 555      quando criado o arquivo => Todos so vão poder escrever. O umask tem uma proteção que qualquer arquivo independente do umask criado ele não o torna executavel.. deixa execuxão em 0 ... Espero ter ajudado... --------------------------------------- Anderson da Luz --------------------------------------- > Prezados Companheiros: > > > Gostaria de saber qual a diferença básica entre o umask e chmod. > Para mudar as permissões só utilizo o chmod. Lendo fiquei sabendo que é > possivel fazer esta operação pelo umask, mas gostaria de saber qual é a > vantagem e /ou desvantagem de ambos > > > Obrigado > *************************************************************** De:  Antonio César Assunção Moura Para:  qrd@uol.com.br, linux-br Assunto:  Re: (linux-br)Umask X Chmod Data:  Thu, 22 Jan 2004 16:04:52 -0300 > Prezados Companheiros: > > > Gostaria de saber qual a diferença básica entre o umask e chmod. > Para mudar as permissões só utilizo o chmod. Lendo fiquei sabendo que é > possivel fazer esta operação pelo umask, mas gostaria de saber qual é a > vantagem e /ou desvantagem de ambos > > > Obrigado > O chmod muda as permissões de arquivos e diretórios conforme você especifica o próprio comando na console... O umask define (seta) uma máscara padrão de permissão na criação de arquivos e diretórios... Na maioria das distribuições a mácara vem setada para os usuários com uid menor que 15 em 022 e  uid acima de 14 com 022. Isso serve para facilitar a criação de arquivos e diretórios com permissões padrões... P.S. - A máscara é setada quando o usuário faz login no sistema, onde         geralmente é lida no script /etc/profile As vantagens e desvantagens variam... Depende como irá trabalhar com as permissões em seu filesystem... -- [ ]`s  Antonio César Assunção Moura  Laboratório Tajara - ISO 9001  Departamento de Tecnologia da Informação  cesar@labtajara.com.br  www.labtajara.com.br  São José do Rio Preto - SP / Brasil  (17) 3214-7100  °v°  /(_)\  Registered Linux User Number 282481  ^ ^ *************************************************************** De:  Viktor Mota Responder-a:  Viktor Mota Para:  Loghan , linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)CHMOD Data:  Thu, 1 Apr 2004 14:08:36 -0300 Olá Loghan, quinta-feira, 1 de abril de 2004, 11:30:00, você escreveu: L> Como dar o comando chmod automatico em varios arquivos de uma determinada L> lista?? L> Alguém tem algum script que faça isso?? L> o maior problema em fazer isso esta em arquivos com espaços no nome..... L> exemplo: L> chmod 755 arquivo com espaço no nome.doc L> ele acha que esse arquivo na verdade são vários arquivos. L> Alguém me da uma luz!!! Aqui no ES quem da luz eh a Escelsa... Bom brincadeiras a parte, ja tentou digitar o seguinte: chmod 755 arq (da um tab depois das 3 primeiras letras do arquivo que o BASH preenche o resto) ou simplesmente coloque contra barras \ ficaria assim chmod 755 arquivo\ com\ espaço\ no\ nome.doc Pelo  que  entendi  do  seu  problema,  espero  que  isso  resolva sua duvida... []s Viktor Mota fulano2001@terra.com.br *************************************************************** De:  Anderson Lizardo Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)CHMOD Data:  Thu, 1 Apr 2004 18:32:50 -0400 Em Qui 01 Abr 2004 10:30, Loghan escreveu: > o maior problema em fazer isso esta em arquivos com espaços no nome..... > > exemplo: > > chmod 755 arquivo com espaço no nome.doc > > ele acha que esse arquivo na verdade são vários arquivos. Use: chmod 755 'arquivo com espaço no nome.doc' -- Anderson Lizardo *************************************************************** De:  Loghan Para:  Salviano A. Leão Cc:  Linux - Lista Assunto:  Re: (linux-br)CHMOD Data:  Mon, 5 Apr 2004 09:28:20 -0300 Finalmente alguém inteligente entendeu o que preciso. Mas não funciona...... Bom, vou explicar exatamete o que eu preciso: 1 - preciso de um script que de um chmod 555 recursivamente em um determinado diretório, porém ele não pode mudar a permissão dos diretórios, então complicou um pouco, porém ainda é facil. 2 - existem nomes de arquivos com espaço. (esse é o problema, o script 2 resolve ele, porém como pergar o numero total de linhsa de um arquivo?) Meu script 1(esse não muda permissão para nomes compostos) #!/bin/bash ls -R --quoting-style=literal > teste for j in `cat teste`; do         if [ ! -d $j ]; then                 chmod $1 "$j" # já tentei com aspas simples, com crase, sem aspas, com o escambal e nada...         else                 cd $j         fi done Meu script 2(esse não faz recursivo, porem muda a permissao para nomes compostos) #/bin/bash # lista tudo no diretorio acima especificado e grava no arquivo teste ls --quoting-style=literal > teste # Pega o numero da linha no arquivo teste linhas=`wc -l teste | cut -d' ' -f6` #aqui esta o problema, não conheço outra maneira de pegar o número total de linhas do arquivo (só o número) se eu conseguir isso esse script funciona...... #com o numero da linha agora faz mudar a permissao #dos arquivos listados no arquivo teste while [ $i -le $linhas ]; do        arquivo=`awk NR==$i teste` # Extrai o arquivo da linha i        i=$(($i + 1)) # Soma +1 para pular para a proxima linha        # Verifica se e diretorio        if [ ! -d $arquivo ]; then                chmod 555 "$arquivo"        fi done rm -rf teste # Apaga o arquivo teste criado exit 0 Obrigado pela ajuda mesmo assim. Loghan ----- Original Message ----- #!/bin/sh # Muda a permisao dos arquivos regulares #echo $PWD #DIR=$PWD for x in `ls -al`    do       if [ -f $x ]; then         chmod -c $1 $x       fi    done ls -al e chamo o mesmo da seguinte forma: ./Permisao 0644 e ele irá alterar a permisao de todos os arquivos para 0644. --- *************************************************************** De:  Piter Punk Para:  Linux-BR Assunto:  Re: (linux-br)CHMOD Data:  Mon, 05 Apr 2004 11:37:08 -0300 Loghan wrote: > Finalmente alguém inteligente entendeu o que preciso. > Mas não funciona...... > > Bom, vou explicar exatamete o que eu preciso: > 1 - preciso de um script que de um chmod 555 recursivamente em um > determinado diretório, porém ele não pode mudar a permissão dos diretórios, > então complicou um pouco, porém ainda é facil. > 2 - existem nomes de arquivos com espaço. (esse é o problema, o script 2 > resolve ele, porém como pergar o numero total de linhsa de um arquivo?) find . ! -type d -exec chmod 555 {} \; Acho que isso deve dar certo. Número total de linhas de um arquivo vc pega com o wc -l                             Piter PUNK --   ____________  / Piter PUNK \_____________________________________________________ |                                                                   | |      |        E-Mail: piterpk@terra.com.br         (personal)     | |     .|.               roberto.freires@gds-corp.com (professional) | |     /V\                                                           | |    // \\      UIN:116043354 Homepage:www.piterpunk.hpg.ig.com.br  | |   /(   )\                                                         | |    ^`~'^         ----> Slackware Linux - The Best One! <----      | |   #105432                                                         | `-------------------------------------------------------------------' *************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)CHMOD Data:  Mon, 5 Apr 2004 11:50:03 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Loghan wrote: >Bom, vou explicar exatamete o que eu preciso: >1 - preciso de um script que de um chmod 555 recursivamente em um >determinado diretório, porém ele não pode mudar a permissão dos > diretórios, então complicou um pouco, porém ainda é facil. >2 - existem nomes de arquivos com espaço. (esse é o problema, o script > 2 resolve ele, porém como pergar o numero total de linhsa de um > arquivo?) Qualquer uma das alternativas: find -type f | xargs chmod 555   # Só funciona se não houver espaços find -type f -print0 | xargs -0 chmod 555 find -type f | while read file; do chmod 555 $file; done find -type f -exec chmod 555 '{}' \; - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info *************************************************************** De:  Julio Henrique Para:  Loghan Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)CHMOD Data:  Mon, 5 Apr 2004 12:27:22 -0300 uma solução de apenas uma linha de alguem "nao mto inteligente": find /diretorio -type f -exec chmod 0555 {} \; (como diria o meu professor de desenho técnico:\" facil, direto e imediato\") [ ]s, julio *************************************************************** De:  Daniel F.Gomes Para:  Lista LinuxBR Assunto:  Re: (linux-br)CHMOD Data:  05 Apr 2004 12:33:22 -0300 Oi, Loghan eu acho que o seu problema pode ser resolvido em uma linha eval "$(find DIR -type f -printf "chmod 555 \"%f\";\n")" Onde DIR é o diretório que vc quer aplicar recursivamente as permissões Ok.                                         Daniel F.Gomes Em Seg, 2004-04-05 às 09:28, Loghan escreveu: > Finalmente alguém inteligente entendeu o que preciso. > Mas não funciona...... > > Bom, vou explicar exatamete o que eu preciso: > 1 - preciso de um script que de um chmod 555 recursivamente em um > determinado diretório, porém ele não pode mudar a permissão dos diretórios, > então complicou um pouco, porém ainda é facil. > 2 - existem nomes de arquivos com espaço. (esse é o problema, o script 2 > resolve ele, porém como pergar o numero total de linhsa de um arquivo?) *************************************************************** De:  Julio Henrique Para:  Otavio Augusto Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br)CHMOD Data:  Mon, 5 Apr 2004 16:17:45 -0300 é que segundo umas experiencias vistas na dicas-L, alguma coisa mais inteligente que mandar o find executar o comando, seria passar o resultado via pipe para o xargs fazer isso, porem, antes teria que passar pelo sed para os casos que o loghan falou, de arquivos com espaco no nome. note que eu somente tenho este problema se passar os resultados para o xargs, se eu mandar o find fazer o servico sujo ele mesmo, nao teria este problema. uma solucao mais elegante do ponto de vista do "comer processamento" seria: find /diretorio -type f  | sed "s/ /\\\ /g" | xargs chmod 0555 essa seria a solução, escrita em uma linha, por alguem inteligente...rs... e nao por um preguicoso como eu que nao ligo a minima para o processamento do exec do  find sentar a maquina (ou nao) ....rsrsrsrssr abaixo segue a mensagem original do problema. [ ]s, julio Arqueólogos descobriram antigos alfarrábios  de Seg 05 Abr 2004 15:59, escritos por Otavio Augusto, e leram a seguinte mensagem: #desculpe mas o q vc quer dizer com isto : #Em Seg 05 Abr 2004 12:27, Julio Henrique escreveu: #> uma solução de apenas uma linha de alguem "nao mto inteligente": # ---- --- -- - - - - - ##Finalmente alguém inteligente entendeu o que preciso. ##Mas não funciona...... ## ##Bom, vou explicar exatamete o que eu preciso: ##1 - preciso de um script que de um chmod 555 recursivamente em um ##determinado diretório, porém ele não pode mudar a permissão dos diretórios, ##então complicou um pouco, porém ainda é facil. ##2 - existem nomes de arquivos com espaço. (esse é o problema, o script 2 ##resolve ele, porém como pergar o numero total de linhsa de um arquivo?) *************************************************************** De:  Manoel Pinho Para:  marcos@inso.com.br Cc:  linux-br@bazar2.conectiva.com.br Assunto:  Re: (linux-br) Permissões emoctal Data:  Sun, 06 Jun 2004 21:07:15 -0300 Marcos Antonio de Assis escreveu: alguém sabe onde posso encontrar algum texto que explique detalhadamente com > funcionam as permissões em octal usando chmod ? >   > http://focalinux.cipsga.org.br na seção 13.10 do guia iniciante+intermediário *************************************************************** De:  Thiago Macieira Para:  linux-br@bazar2.conectiva.com.br, Jugleni Jr Assunto:  Re: (linux-br)Permissao em massa Data:  Mon, 1 Nov 2004 22:17:10 -0300 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jugleni Jr wrote: >Como eu faço para trocar a permissao em massa, tipo tenho uma serie de >diretorios e arquivos dentro um  dos outros... quero dar a permissao >sobente de leitura e execucao...  chmod 555 em todos chmod -R 555 /diretorio/que/contem/todos - --   Thiago Macieira  -  Registered Linux user #65028    thiago (AT) macieira (DOT) info *************************************************************** De: Marcelo Magno T Sales Para: linux-br@bazar2.conectiva.com.br Assunto: Re: (linux-br) Alterar permissões em diretórios Data: Tue, 11 Apr 2006 10:32:51 -0300 Roberto, Em Segunda 10 Abril 2006 19:56, Roberto Warstat escreveu: > Lista, > > O meu problema é o seguinte: > Tenho um servidor samba e estou precisando mudar as permissões nos > diretórios, mas não gostaria de fazer isso em cada um dos > diretórios. Para cada diretório eu tenho um grupo, e dentro de cada > diretório eu tenho n outros diretórios e arquivos. > Sei que o chmod 2770 dá permissão total para o dono e o grupo > daquele diretório e faz com que os diretórios criados naquele > diretório herdem as permissões. > Como poso fazer isso a partir de um diretório só, sem ter que > entrar em cada um dos sub-diretórios? No diretório pai de todos esses que você quer modificar, execute os seguintes comandos: chmod -R ug+rwX,o-rwx * find -type d -exec chmod g+s {} \; Só uma observação: o fato de você habilitar o SGID num diretório não faz com que as permissões definidas nesse diretório sejam herdadas pelos arquivos e diretórios criados dentro dele. O que é herdado é o grupo associado ao arquivo ou diretório criado, que será o mesmo do diretório onde ele foi criado, ao invés de ser o grupo primário do usuário que o criou (que seria o comportamento padrão). As permissões do arquivo ou diretório criado continuam sendo definidas pela umask, não sendo herdadas do diretório pai. []'s Marcelo *************************************************************** ***************************************************************