Alguma conta de usuário no Linux pode invocar o comando chmod?

1

Como as permissões são confidenciais, é vital ficar claro se um usuário específico tem ou não permissão para executar o comando chmod ?

    
por user43312 20.10.2013 / 03:25

2 respostas

5

Não, qualquer usuário pode executar este comando e deve ser capaz de fazer isso. Esse comando é como os usuários podem manipular os bits de permissões em um diretório ou arquivo, o que é vital para tornar scripts de shell executáveis ou tornar um diretório acessível a grupos dos quais o usuário possa fazer parte.

Exemplos

  1. Um script executável

    $ ls -l reset*
    -rwxrwxr-x 1 saml saml   378 Sep  2 02:46 reset_raw_sorted.bash
    
  2. Acessando um diretório

    $ ls -ld adir
    drwxrwxr-x 2 saml saml 4096 Oct 19 21:28 adir
    

    Agora desabilite os bits de execução deste diretório

    $ chmod -x adir
    $ ls -ld adir
    drw-rw-r-- 2 saml saml 4096 Oct 19 21:28 adir
    

    Agora não consigo cd para este diretório

    $ cd adir/
    bash: cd: adir/: Permission denied
    
  3. Controlando o acesso do grupo a arquivos e diretórios

    Digamos que eu tenha um usuário nesses grupos

    $ groups
    saml vboxusers jupiter newgrp blah
    

    Eu quero que outros usuários que estejam no grupo blah acessem adir

    $ ls -ld adir
    drwx---r-x 2 saml blah 4096 Oct 19 21:28 adir
    

    Eu posso usar chmod para remover outras permissões de usuários e limitar o acesso ao usuário saml e ao grupo blah , assim como

    $ chmod o-rwx,g+rwx adir
    $ ls -ld adir
    drwxrwx--- 2 saml blah 4096 Oct 19 21:28 adir
    
por 20.10.2013 / 03:27
4

Qualquer usuário pode chamar chmod e alterar as permissões de qualquer arquivo que possua (como sempre, root pode alterar a permissão de qualquer arquivo). Os usuários não podem alterar as permissões de arquivos que não possuem - isso destruiria completamente a segurança dos arquivos! A permissão de gravação em um arquivo só se aplica ao conteúdo do arquivo, não aos seus metadados, como permissões.

O Unix implementa o controle de acesso discricionário : o proprietário de um arquivo é livre para permitir que outros usuários acessem esse arquivo.

Existem formas de controle de acesso obrigatório, como as estruturas de segurança do Linux (SELinux, AppArmor, etc.) que permitem que o root restrinja o acesso a certos recursos de uma forma que os usuários não-root não podem substituir. No entanto, estes são voltados para isolar aplicativos que estão sendo executados como um usuário dedicado e limitando o dano que eles podem fazer se comprometidos. Eles não são bons para implementar o controle de acesso obrigatório entre os usuários do sistema. Se você precisa de MAC, um sistema Unix com vários usuários não é o ambiente certo, você precisa de um sistema fechado sem rede ou com uma rede muito controlada, sem unidades removíveis, etc., e onde cada usuário tenha sua própria máquina. / p>     

por 20.10.2013 / 04:04