Como vincular a montagem de uma pasta em diretórios pessoais de vários usuários com permissões totais

Como vincular a montagem de uma pasta em diretórios pessoais de vários usuários com permissões totais

Eu tenho um servidor web servindo arquivos do /var/www/vhosts/mysite. O que pretendo fazer é montar esta vhostspasta /home/myuser/vhostspara 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 rwxe 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á SGIDesta 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.

informação relacionada