Permissões para diretório FTP: Herdar proprietário do diretório

Permissões para diretório FTP: Herdar proprietário do diretório

Estou criando várias pastas para usuários (userA/, userB/, etc.) onde qualquer pessoa pode criar/ler um arquivo/pasta em qualquer diretório (userC pode criar fileX dentro de userA/). No entanto, apenas o proprietário do diretório pode modificar ou excluir os arquivos dentro dessa pasta (userC só pode modificar/excluir arquivos dentro de userC/).

Tentei alterar as permissões do diretório para 7777, mas o SUID não se aplica aos diretórios.

Como permito que os arquivos enviados herdem o proprietário do diretório?

Editar:UserZ possui o diretório dirZ/. UserZ pode criar (carregar), modificar, excluir e ler tudo dentro de dirZ/.
Da mesma forma, UserY possui o diretório dirY/. O usuário Y pode criar, modificar, excluir e ler tudo dentro de dirY/.

UserY pode acessar dirZ/. UserY pode criar ou ler qualquer coisa dentro de dirZ/. UsuárioYnão podemodifique ou exclua qualquer coisa dentro de dirZ/.

Da mesma forma, UserZ pode acessar dirY/. UserZ pode criar ou ler qualquer coisa dentro de dirY/. UsuárioZnão podemodifique ou exclua qualquer coisa dentro de dirY/.

Responder1

A maioria das variantes Unix não permite que os usuários criem arquivos pertencentes a outro usuário, por um bom motivo.

É bastante estranho que você precise disso. Se você deseja que o usuário C possa criar e excluir arquivos dentro de userA/, conceda permissão de gravação ao usuário C no diretório. Com a sua configuração, a maneira mais fácil seria colocar todos esses usuários em um grupo comum mygroupe tornar todos os diretórios de usuários graváveis ​​por esse grupo.

chgrp mygroup userA userB userC
chmod g+w userA userB userC

Usarlistas de controle de acesso (ACL)se você precisar de mais flexibilidade (por exemplo, vários grupos com permissão para acessar esses diretórios). VerTorne todos os novos arquivos em um diretório acessíveis a um grupose precisar de ajuda para ativar ACLs em seu sistema.

Se você quiser que os usuários possam modificar arquivos em um diretório diferente do deles, providencie para que os arquivos sejam graváveis ​​em grupo ou coloque uma ACL padrão no diretório.

setfacl -d -m group:mygroup:rwx userA userB userC

Se você realmente precisa alterar o proprietário do arquivo (mas por que isso importa, já que todos os arquivos são acessíveis ao mesmo conjunto de usuários?), você pode fazer isso através de um trabalho que é executado como root quando um arquivo é carregado. No Linuxvocê pode usar uma ferramenta baseada em inotifyse você realmente precisar, mas seria melhor alterar a ferramenta que realiza o upload (por um lado, com uma solução baseada em inotify, há uma pequena janela de tempo em que o arquivo tem a propriedade errada).

Responder2

Os sistemas de arquivos Unix não possuem controles de acesso semelhantes aos do Windows, o que permitiria fazer distinção entre criar e modificar um arquivo - uma vez que você dê permissão a um usuário para criar arquivos em um diretório (chmod +w), ele/ela irá ser capaz de modificá-los também. Portanto, você precisa do lado do servidor para fornecer essa funcionalidade extra.

Por exemplo, vsftpdos chownarquivos paraanônimoconexões - eu esperaria que fosse (mais ou menos facilmente) extensível a outras contas de usuário e é provável que alguns outros daemons de FTP já tenham esse recurso.

Se você não precisa necessariamente usar FTP,Sambaparece ser capaz de fazer o que você precisa - dê uma olhada na inherit owneropção (por compartilhamento).

informação relacionada