Estações de trabalho on-line OnWorks Linux e Windows

Logotipo

Hospedagem online grátis para estações de trabalho

<Anterior | Conteúdo | Próxima>

3.4.2. As ferramentas


3.4.2.1. O comando chmod


Uma consequência normal da aplicação de permissões de arquivo estritas, e às vezes um incômodo, é que os direitos de acesso precisarão ser alterados por todos os tipos de razões. Nós usamos o chmod comando para fazer isso e, eventualmente, para chmod tornou-se um verbo inglês quase aceitável, significando a mudança do modo de acesso de um arquivo. O chmod O comando pode ser usado com opções alfanuméricas ou numéricas, como você preferir.


O exemplo abaixo usa opções alfanuméricas para resolver um problema que normalmente ocorre com novos usuários:


asim: ~> ./Olá

bash: ./hello: mau intérprete: permissão negada


asim: ~> olá gato

#! / Bin / bash

echo "Olá, mundo"


asim: ~> ls -l olá

-rw-rw-r-- 1 asim asim 32 de 15 de janeiro 16:29 olá asim: ~> chmod u + x olá

asim: ~> ./Olá

Olá Mundo


asim: ~> ls -l olá

-rwxrw-r-- 1 asim asim 32 de 15 de janeiro de 16:29 olá *

asim: ~> ./Olá

bash: ./hello: mau intérprete: permissão negada


asim: ~> olá gato

#! / Bin / bash

echo "Olá, mundo"


asim: ~> ls -l olá

-rw-rw-r-- 1 asim asim 32 de 15 de janeiro 16:29 olá asim: ~> chmod u + x olá

asim: ~> ./Olá

Olá Mundo


asim: ~> ls -l olá

-rwxrw-r-- 1 asim asim 32 de 15 de janeiro de 16:29 olá *

A + e - operadores são usados ​​para conceder ou negar um determinado direito a um determinado grupo. Combinações separadas por vírgulas são permitidas. As páginas Info e man contêm exemplos úteis. Aqui está outro, que torna o arquivo do exemplo anterior um arquivo privado para o usuário assim:


imagem

asim: ~> chmod u + rwx, go-rwx olá


asim: ~> ls -l

Olá

-rwx ------

1 sim

assim

32 de 15 de janeiro de 16:29 olá *

O tipo de problema que resulta em uma mensagem de erro informando que a permissão foi negada em algum lugar geralmente é um problema com direitos de acesso na maioria dos casos. Além disso, comentários como "Funcionou ontem" e "Quando executo como root, funciona" são provavelmente causados ​​por permissões de arquivo incorretas.


Ao usar chmod com argumentos numéricos, os valores para cada direito de acesso concedido devem ser contados juntos por grupo. Assim, obtemos um número de 3 dígitos, que é o valor simbólico das configurações chmod tem que fazer. A tabela a seguir lista as combinações mais comuns:


Tabela 3-9. Proteção de arquivo com chmod


Command

Significado

chmod 400 lima

Para proteger um arquivo contra sobregravação acidental.

chmod 500

anuário

Para se proteger de remover, renomear ou mover arquivos acidentalmente deste diretório.


chmod 600 lima

Um arquivo privado que só pode ser alterado pelo usuário que inseriu este comando.

chmod 644 lima

Um arquivo publicamente legível que só pode ser alterado pelo usuário emissor.

chmod 660 lima

Os usuários pertencentes ao seu grupo podem alterar este arquivo, outros não têm nenhum acesso a ele.

chmod 700 lima

Protege um arquivo contra qualquer acesso de outros usuários, enquanto o usuário emissor ainda tem acesso total.

chmod 755

anuário

Para arquivos que devem ser lidos e executáveis ​​por outras pessoas, mas apenas alteráveis ​​pelo usuário emissor.

chmod 775 lima

Modo padrão de compartilhamento de arquivos para um grupo.

chmod 777 lima

Todos podem fazer tudo com este arquivo.

Se você inserir um número com menos de três dígitos como argumento para chmod, os caracteres omitidos são substituídos por zeros a partir da esquerda. Na verdade, há um quarto dígito nos sistemas Linux, que precede os três primeiros e define modos de acesso especiais. Tudo sobre esses e muitos outros está localizado nas páginas de informações.


imagem

3.4.2.2. Conectando-se a outro grupo


Quando você digita id na linha de comando, você obtém uma lista de todos os grupos aos quais você possivelmente pode pertencer, precedida por seu nome de usuário e ID e o nome do grupo e ID ao qual você está conectado no momento. No entanto, em muitos sistemas Linux, você só pode estar conectado ativamente a um grupo por vez. Por padrão, este ativo ou grupo primário é aquele que você recebe do / Etc / passwd Arquivo. O quarto campo deste arquivo contém o ID do grupo primário dos usuários, que é pesquisado no / etc / group Arquivo. Um exemplo:


asim: ~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


asim: ~> grep assim / Etc / passwd

asim: x: 501: 501: Asim El Baraka: / home / asim: / bin / bash


asim: ~> grep 501 / etc / group

asim: x: 501:

asim: ~> id

uid=501(asim) gid=501(asim) groups=100(users),501(asim),3400(web)


asim: ~> grep assim / Etc / passwd

asim: x: 501: 501: Asim El Baraka: / home / asim: / bin / bash


asim: ~> grep 501 / etc / group

asim: x: 501:

O quarto campo na linha de / Etc / passwd contém o valor "501", que representa o grupo assim no exemplo acima. A partir de / etc / group podemos obter o nome correspondente a este ID de grupo. Ao conectar-se inicialmente ao sistema, este é o grupo que assim pertencerá a.


imagemEsquema de grupo privado do usuário

A fim de permitir mais flexibilidade, a maioria dos sistemas Linux seguem os chamados esquema de grupo privado do usuário, que atribui cada usuário principalmente a seu próprio grupo. Este grupo é um grupo que contém apenas este usuário em particular, daí o nome "grupo privado". Normalmente, este grupo tem o mesmo nome que o nome de login do usuário, o que pode ser um pouco confuso.

Além de seu próprio grupo privado, o usuário assim também pode estar nos grupos usuários e web. Como esses grupos são secundários para esse usuário, ele precisará usar o novogrp para entrar em qualquer um desses grupos (use gpasswd para definir a senha do grupo primeiro). No exemplo, assim precisa criar arquivos que são propriedade do grupo web.


asim: / var / www / html> novogrp web


asim: / var / www / html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

asim: / var / www / html> novogrp web


asim: / var / www / html> id

uid=501(asim) gid=3400(web) groups=100(users),501(asim),3400(web)

Quando assim cria novos arquivos agora, eles serão propriedade do grupo web em vez de ser propriedade do grupo assim:


imagem


asim: / var / www / html> teste de toque


asim: / var / www / html> ls -l teste

-rw-rw-r-- 1 asim web 0 Jun 10 15:38 teste

asim: / var / www / html> teste de toque


asim: / var / www / html> ls -l teste

-rw-rw-r-- 1 asim web 0 Jun 10 15:38 teste

O login em um novo grupo evita que você tenha que usar chown (consulte a Seção 3.4.2.4) ou ligando para o administrador do sistema para alterar suas propriedades.


Veja a página de manual para novogrp para obter mais informações.


imagem

3.4.2.3. A máscara de arquivo


Quando um novo arquivo é salvo em algum lugar, primeiro é submetido ao procedimento de segurança padrão. Arquivos sem permissões não existem no Linux. A permissão de arquivo padrão é determinada pelo máscara para a criação de um novo arquivo. O valor desta máscara pode ser exibido usando o umask comando:


bert: ~> umask

0002

bert: ~> umask

0002

Em vez de adicionar os valores simbólicos uns aos outros, como acontece com chmod, para calcular a permissão em um novo arquivo, eles precisam ser subtraídos do total de direitos de acesso possíveis. No exemplo acima, no entanto, vemos 4 valores exibidos, mas existem apenas 3 categorias de permissão: usuário, grupo e de outros. O primeiro zero faz parte das configurações especiais de atributos de arquivo, que discutiremos na Seção 3.4.2.4 e na Seção 4.1.6. Pode ser que este primeiro zero não seja exibido em seu sistema ao entrar no umask comando, e que você vê apenas 3 números que representam a máscara de criação de arquivo padrão.


Cada sistema do tipo UNIX possui uma função de sistema para a criação de novos arquivos, que é acionada sempre que um usuário utiliza um programa que cria novos arquivos, por exemplo, ao baixar um arquivo da Internet, ao salvar um novo documento de texto e assim por diante. Esta função cria novos arquivos e novos diretórios. A permissão total de leitura, gravação e execução é concedida a todos ao criar um novo diretório. Ao criar um novo arquivo, esta função concederá permissões de leitura e gravação para todos, mas definirá as permissões de execução como nenhuma para todas as categorias de usuário. Isso, antes de a máscara ser aplicada, um diretório tem permissões 777 or rwxrwxrwx, um arquivo simples 666 or rw-rw-rw-.


imagem

A umask o valor é subtraído dessas permissões padrão depois que a função cria o novo arquivo ou diretório. Assim, um diretório terá permissões de 775 por padrão, um arquivo 664, se o valor da máscara for (0) 002. Isso é demonstrado no exemplo abaixo:


bert: ~> mkdir novodir


bert: ~> ls -ld novodir

drwxrwxr-x 2 bert bert

4096 28 de fevereiro 13:45 newdir /

bert: ~> mkdir novodir


bert: ~> ls -ld novodir

drwxrwxr-x 2 bert bert


bert: ~> toque em newfile


bert: ~> ls -l novo arquivo

-rw-rw-r-- 1 bert bert

0 28 de fevereiro 13:52 newfile

bert: ~> toque em newfile


bert: ~> ls -l novo arquivo

-rw-rw-r-- 1 bert bert


imagemArquivos versus diretórios

Um diretório obtém mais permissões por padrão: ele sempre tem o executar permissão. Se não fosse assim, não seria acessível. Experimente fazer o chmodding em um diretório 644!

Se você entrar em outro grupo usando o novogrp comando, a máscara permanece inalterada. Portanto, se for definido como 002, os arquivos e diretórios que você criar enquanto estiver no novo grupo também estarão acessíveis aos outros membros desse grupo; você não tem que usar chmod.


A raiz o usuário geralmente tem permissões de criação de arquivo padrão mais restritas:


[root @ estoban root] # umask 022

[root @ estoban root] # umask 022

Esses padrões são definidos em todo o sistema nos arquivos de configuração de recursos do shell, por exemplo / Etc / bashrc or

/ etc / profile. Você pode alterá-los em seu próprio arquivo de configuração de shell, consulte o Capítulo 7 sobre como personalizar seu ambiente de shell.


imagem

3.4.2.4. Alterar a propriedade do usuário e do grupo


Quando um arquivo pertence a um usuário ou grupo errado, o erro pode ser reparado com o chown (alterar proprietário) e chgrp (alterar grupo) comandos. Alterar a propriedade do arquivo é uma tarefa administrativa frequente do sistema em ambientes onde os arquivos precisam ser compartilhados em um grupo. Ambos os comandos são muito flexíveis, como você pode descobrir usando o --Socorro opção.


A chown pode ser aplicado para alterar a propriedade do usuário e do grupo de um arquivo, enquanto chgrp apenas muda a propriedade do grupo. Obviamente, o sistema verificará se o usuário que está emitindo um desses comandos tem permissões suficientes para o (s) arquivo (s) que deseja alterar.


Para alterar apenas a propriedade do usuário de um arquivo, use esta sintaxe:


chown novo_usuário lima


Se você usar dois-pontos após o nome do usuário (consulte as páginas de informações), a propriedade do grupo também será alterada para o grupo primário do usuário que está emitindo o comando. Em um sistema Linux, cada usuário tem seu próprio grupo, portanto, este formulário pode ser usado para tornar os arquivos privados:


jacky: ~> id

uid = 1304 (jacky) gid = (1304) grupos = 1304 (jacky), 2034 (pprojeto)


jacky: ~> ls -l meu_report

-rw-rw-r-- 1 projeto jacky 29387 15 de janeiro 09:34 my_report jacky: ~> chown jacky: meu_relatório

jacky: ~> chmod ou my_report


jacky: ~> ls -l meu_report

-rw-rw ---- 1 jacky jacky 29387 15 de janeiro 09:34 meu_report

jacky: ~> id

uid = 1304 (jacky) gid = (1304) grupos = 1304 (jacky), 2034 (pprojeto)


jacky: ~> ls -l meu_report

-rw-rw-r-- 1 projeto jacky 29387 15 de janeiro 09:34 my_report jacky: ~> chown jacky: meu_relatório

jacky: ~> chmod ou my_report


jacky: ~> ls -l meu_report

-rw-rw ---- 1 jacky jacky 29387 15 de janeiro 09:34 meu_report

If jacky gostaria de compartilhar este arquivo, sem ter que dar permissão a todos para gravá-lo, ele pode usar o

comando chgrp:


jacky: ~> ls -l relatório-20020115.xls

-rw-rw ---- 1 jacky jacky 45635 15 de janeiro 09:35 relatório-20020115.xls jacky: ~> relatório do projeto chgrp-20020115.xls

jacky: ~> chmod o = report-20020115.xls


jacky: ~> ls -l relatório-20020115.xls

-rw-rw ---- 1 projeto jacky 45635 15 de janeiro 09:35 relatório-20020115.xls

jacky: ~> ls -l relatório-20020115.xls

-rw-rw ---- 1 jacky jacky 45635 15 de janeiro 09:35 relatório-20020115.xls jacky: ~> relatório do projeto chgrp-20020115.xls

jacky: ~> chmod o = report-20020115.xls


jacky: ~> ls -l relatório-20020115.xls

-rw-rw ---- 1 projeto jacky 45635 15 de janeiro 09:35 relatório-20020115.xls

Dessa forma, os usuários do grupo projeto poderá trabalhar neste arquivo. Os usuários que não estão neste grupo não têm nenhuma relação com ele.


Ambos chown e chgrp pode ser usado para alterar a propriedade recursivamente, usando o -R opção. Nesse caso, todos os arquivos e subdiretórios subjacentes de um determinado diretório pertencerão ao determinado usuário e / ou grupo.


imagemrestrições

Na maioria dos sistemas, o uso do chown e chgrp os comandos são restritos para usuários não privilegiados. Se você não for o administrador do sistema, você não pode alterar as propriedades do usuário ou grupo por razões de segurança. Se o uso desses comandos não fosse restrito, usuários mal-intencionados poderiam atribuir a propriedade de arquivos a outros usuários e / ou grupos e alterar o comportamento dos ambientes desses usuários e até mesmo causar danos aos arquivos de outros usuários.


imagem

3.4.2.5. Modos especiais


Para que o administrador do sistema não se preocupe em resolver problemas de permissão o tempo todo, direitos especiais de acesso podem ser concedidos a diretórios inteiros ou a programas separados. Existem três modos especiais:


• Modo sticky bit: Após a execução de um trabalho, o comando é mantido na memória do sistema. Originalmente, esse era um recurso muito usado para economizar memória: grandes trabalhos são carregados na memória apenas uma vez. Mas hoje em dia a memória é barata e existem técnicas melhores para gerenciá-la, por isso ela não é mais usada por seus recursos de otimização em arquivos únicos. Quando aplicado a um diretório inteiro, entretanto, o sticky bit tem um significado diferente. Nesse caso, um usuário só pode alterar arquivos neste diretório quando for o proprietário do arquivo ou quando o arquivo tiver as permissões apropriadas. Este recurso é usado em diretórios como

imagem

/ var / tmp, que devem ser acessíveis a todos, mas onde não é apropriado que os usuários alterem ou excluam os dados uns dos outros. O bit pegajoso é indicado por um t no final do campo de permissão de arquivo:


marca: ~> ls -ld / var / tmp

drwxrwxrwt 19 raiz raiz

8192 16 de janeiro 10:37 / var / tmp /

marca: ~> ls -ld / var / tmp

drwxrwxrwt 19 raiz raiz

O sticky bit é definido usando o comando chmod o + t anuário. A origem histórica do "t" está no UNIX ' salvar acesso de texto recurso.

. SUID (definir ID do usuário) e SGID (definir ID do grupo): representado pelo caractere s no campo de permissão do usuário ou grupo. Quando este modo é definido em um arquivo executável, ele será executado com as permissões do usuário e do grupo no arquivo em vez de com as do usuário que está emitindo o comando, dando acesso aos recursos do sistema. Discutiremos isso com mais detalhes no Capítulo 4.

imagem

• SGID (definir ID do grupo) em um diretório: neste caso especial, todos os arquivos criados no diretório terão o mesmo proprietário do grupo que o próprio diretório (enquanto o comportamento normal seria que os novos arquivos fossem propriedade dos usuários que os criaram). Dessa forma, os usuários não precisam se preocupar com a propriedade dos arquivos ao compartilhar diretórios:


mimi: ~> ls -ld / opt / docs

drwxrws --- 4 usuários root

4096 25 de julho de 2001 docs /

mimi: ~> ls -ld / opt / docs

drwxrws --- 4 usuários root


mimi: ~> ls -l / opt / docs

-rw-rw ---- 1 usuários mimi

345672 30 de agosto de 2001-Council.doc

mimi: ~> ls -l / opt / docs

-rw-rw ---- 1 usuários mimi

Esta é a maneira padrão de compartilhar arquivos no UNIX.


imagemOs arquivos existentes permanecem inalterados!

Os arquivos que estão sendo movidos para um diretório SGID, mas foram criados em outro lugar, mantêm o usuário original e o proprietário do grupo. Isso pode ser confuso.


imagem


Top OS Cloud Computing na OnWorks: