FS cenário de permissão

1

Como posso conseguir esses arquivos & cenário de permissões de pastas:

Considere esta pasta:
Pasta A: 640 root apache /var/www/A/
Pasta www: 640 root apache /var/www/
e este usuário linux:
id user1 : uid=1000(user1) gid=1000(user1) groups=1000(user1)

Eu quero permitir que o usuário do linux user1 acesso de leitura / gravação JUST para a pasta A, MAS não altere a pasta Um proprietário ou grupo.

Eu tentei esses cenários, mas nenhum deles era desejável:

  • adicione user1 ao grupo apache :
    contras: user1 poderá ler outros arquivos em /var/www/ .
  • crie um link físico para uma pasta (ex. pasta B) na casa de user1 para /var/www/A/ e defina as permissões adequadas na pasta B em vez de A:
    contras: hard-links para diretórios não possíveis em dispositivos diferentes.
  • adicione user1 a sudoers :
    contras: a complexidade de user1 , mais, user1 pode ter quebrado a política de proprietário / grupo e / ou as permissões da pasta A por erro humano.

alguma ideia?

    
por slashsbin 06.08.2013 / 14:06

2 respostas

1

Suponho que você queira conceder acesso user1 a / var / www / A porque você visita o conteúdo gerenciado por user1 pelo link ? Por que o apache não redireciona o conteúdo para um diretório no diretório inicial dos usuários?

Alias /A/ /path/to/users/homedir/A

Isso alcançará o resultado e não precisará alterar a propriedade do grupo / usuário / permissões do / path / to / users / homedir / A.

No entanto, se você quiser fazer isso por meio de permissões de arquivo, só conseguirá alterar a propriedade / permissões de / var / www e / var / www / A.

Crie um 'novo grupo' (a maioria dos unixes fornece um comando groupadd ), adicione o apache eo user1 a ele. Altere a propriedade do grupo de / var / www / A para este "novo grupo" (com chown ou chgrp ). Defina as permissões para não permitir acesso ao rw para 'novo grupo' e 'outros usuários' ao diretório / var / www ( chmod 711 /var/www ) e dê acesso ao 'novo grupo' para / var / www / A ( chmod g+rwx /var/www/A ).

Referências:

Diretiva Apache Alias

    
por 06.08.2013 / 18:06
1

Crie um grupo group1 , adicione apache e user1 a group1 e, em seguida, altere o grupo que possui /var/www/A para group1 usando chgrp da seguinte forma:

# use '-R' if you want to do this recursively, that is grant 'group1' access to 
# all sub-directories of 'A' as well as access to 'A' itself.

# as a regular user with sudo rights:

sudo chgrp -R group1 /var/www/A 

# as root 

chgrp -R group1 /var/www/A 

Assim, user1 não será membro do apache e, portanto, não poderá ler /var/www , mas ainda poderá ler /var/www/A , enquanto o apache também poderá ler /var/www/A .

Por fim, verifique novamente se os membros do grupo têm read/write access usando chmod da seguinte forma:

# use '-R' at your own discretion--it acts the same way as '-R' in 'chgrp'

# as root 

chmod -R g=rw /var/www/A

# as a regular user with sudo rights

sudo chmod -R g=rw /var/www/A

Ou algo parecido.

    
por 06.08.2013 / 17:45