É possível criar usuários que podem usar apenas um diretório?

3

Agora comprei um servidor Ubuntu Cloud. Eu instalei o Webmin esta manhã e agora tenho uma pergunta.

É possível criar usuários que só podem usar um diretório, SVN, FTP, PHP, Python, MySQL, Apache? Então, por exemplo, o usuário Kevin só pode usar / var / www / kevin /? E ele pode ver tudo em / var / www / mas não executar / escrever e todas as outras coisas são proibidas de visualizar / executar / escrever.

    
por www.data-blogger.com 07.04.2011 / 13:06

1 resposta

6

Na sua situação, você é o proprietário da pasta e de seus diretórios, digamos apache . Kevin é o usuário que tem permissão para ler o conteúdo, mas não pode escrevê-lo ou executá-lo. Todos os outros são impedidos de ler, escrever e executar permissões.

Isso se encaixa perfeitamente no sistema de permissões do sistema de arquivos Linux.

permission  bits
  Read       4
  Write      2
 eXecute     1

Cada arquivo ou diretório pode receber permissões com base no proprietário, grupo ou todos os outros.

  • O proprietário ( apache ) pode fazer qualquer coisa, então vamos dar a ela permissões de leitura e gravação (4 + 2 = 6 )
  • Para se preparar para o futuro, caso precise conceder a outras permissões de leitura do Kevin para o arquivo, crie um novo grupo, diga apache-users . Em seguida, adicione Kevin a esse grupo e defina os bits de permissão do grupo como 4 ( R ead)
  • Em seguida, negue qualquer pessoa que não possua o arquivo ou que não seja membro do grupo apache-users de todas as permissões, 0 .

Para adicionar o grupo apache-users e adicionar Kevin como membro, vá para Sistema - > Usuários e grupos . Abra a aba Grupos Locais e pressione Criar um novo grupo . Digite o nome do grupo ( apache-users ) em Nome do grupo . Selecione Kevin em Members e pressione - > . Confirme estas alterações pressionando Criar .

Para um arquivo, você executaria os próximos comandos para alterar o proprietário, o grupo e as permissões:

sudo chown apache filename
sudo chgrp apache-users filename
sudo chmod 640 filename

Diretórios

As permissões para diretórios são quase as mesmas, exceto para o bit de execução ( 1 ). O bit de execução configura se um usuário pode descer no diretório, ou seja, acessar outros arquivos e diretórios dentro de um diretório. O bit de leitura controla se você pode listar o conteúdo de um diretório ( ls ).

Portanto, se uma pasta /dir pertencer a root: root (raiz do grupo) e as permissões de /dir/file estiverem definidas como 777, você não poderá acessar (ler, gravar ou executar) /dir/file se as permissões de /dir está definido como 666 ou 770 (observe a permissão eXecute ausente).

As permissões para uma pasta seriam 750: leia, escreva e execute ( 7 ) para o proprietário ( apache ), leia e execute ( 5 ) para o grupo ( apache-users ) e nenhuma permissão ( 0 ) para mais ninguém.

Para sua configuração, as permissões se tornam ( * = depends):

location             owner     group        permissions
/                    root      root         755
/var/                root      root         755
/var/www/            root      root         755
/var/www/kevin/      kevin     *            700 or 750
/var/www/apache/     apache    apache-users 750
/var/www/other/      *         *            700 or 750
/var/www/anyoneread/ *         *            755

/var/www/other/ é o diretório de algum outro usuário que não permite que você (kevin) mergulhe no diretório.

    
por Lekensteyn 07.04.2011 / 14:17