Você deve procurar usar as permissões da ACL no sistema de arquivos. Você pode definir uma permissão "padrão" e vários grupos, usuários, etc.
Veja a resposta para este outro post para mais informações:
Eu tenho a seguinte configuração:
Existem vários usuários / home / user1, / home / user2 e assim por diante. Além disso, há um usuário / home / sftp-all. A pasta / home / sftp-all / shared é montada em todos os outros usuários / diretório home, por exemplo. / home / user1 / shared. Todos os usuários user1, user2, ..., sftp-all são membros de um grupo chamado 'sharegroup'.
Agora, o problema é que, se um desses usuários (usuário1, ...) gravar nessa pasta, o novo arquivo pertencerá ao usuário e ao grupo principal dele (por exemplo, user1: user1, ..). Em vez disso, quero que ele seja de propriedade de user1: sharegroup. Alguma idéia de como resolver isso? Obrigado antecipadamente!
Defina o bit sgid para que ele esteja ativado no diretório /home/sftp-all/shared
e faça o grupo do diretório sharegroup
.
$ chmod g+s /home/sftp-all/shared
Por fim, certifique-se de que os arquivos pré-existentes em /home/sftp-all/shared
tenham o grupo definido como sharegroup
. Isso pode ser feito da seguinte forma:
$ chgrp sharegroup /home/sftp-all/shared/*
Ao definir o xgid bit no diretório, você está forçando o que o próprio grupo possui, dito diretório, a ser propagado sempre que novos arquivos forem criados dentro dele. Essa abordagem só funcionará para arquivos recém-criados, por exemplo, não reforçará a propriedade do grupo se alguém mover arquivos para esse diretório de algum outro lugar do sistema.
No entanto, considerando que isso é um aplicativo de servidor SFTP, não consigo pensar em nenhuma maneira de um usuário poder mover arquivos para esse diretório, fora do SFTP.