![Como vincular a montagem de uma pasta em diretórios pessoais de vários usuários com permissões totais](https://rvso.com/image/1419610/Como%20vincular%20a%20montagem%20de%20uma%20pasta%20em%20diret%C3%B3rios%20pessoais%20de%20v%C3%A1rios%20usu%C3%A1rios%20com%20permiss%C3%B5es%20totais.png)
Eu tenho um servidor web servindo arquivos do /var/www/vhosts/mysite
. O que pretendo fazer é montar esta vhosts
pasta /home/myuser/vhosts
para que um usuário possa fazer login, editar quaisquer arquivos e sair. O problema é que a montagem não ignora as permissões dessa pasta. Alguns arquivos podem ser criados por www-data ou outro usuário. Se eles forem criados por outro usuário, www-data também terá problemas para lê-los/modificá-los.
O que tentei até agora foi criar uma montagem vinculada usando fstab. A pasta foi montada com sucesso no diretório inicial do usuário e, usando acl, consegui permitir que eles escrevessem nela, atribuindo um grupo à pasta rwx
e adicionando www-data e o usuário ao grupo. Estou me perguntando se existe uma maneira de vincular a montagem da pasta, mas fazer com que as permissões não sejam afetadas para que www-data possa sempre ler/gravar/executar nela sem problemas, ao mesmo tempo que permite ao usuário permissões completas também.
Responder1
Você deseja adicionar esses usuários primeiro ao grupo www-data. Então o método pretendido é usar chmod g+s /home/user/vhost
. Isso definirá SGID
esta pasta, o que significa que seu grupo será usado para novos arquivos. Infelizmente, isso não ajuda para os subdiretórios. Para mantê-los atualizados, você precisará executar regularmente após modificações na árvore de diretórios: find /home/user/vhost -type d -exec chmod g+s {} \;
. Isso procurará todos os subdiretórios e ativará o arquivo SGID
. A parte mais irritante é que isso precisará ser feito em qualquer diretório pai antes de adicionar filhos, o que significa que às vezes você precisa executar isso várias vezes ao fazer alterações e se você esquecer de fazer isso, você precisará apenas executar o comando chown de qualquer forma: find /home/user/vhost -type d -exec chown user:www-data {} \;
.
Isso é o que eu digo para fazer, mas acho que todo esse plano é irritante para mim. Na realidade, o que faço é trabalhar em um servidor de desenvolvimento com permissões completamente não relacionadas. Depois de fazer alterações, tenho um script que sincroniza com o servidor prod e define todas as propriedades e permissões sempre para garantir que tudo esteja SEMPRE certo. Esse método economiza muito tempo porque nunca preciso me preocupar com o motivo do bloqueio das permissões. Acabei de executar o script e tudo está funcionando magicamente novamente.