Como posso permitir que um usuário presenteie um arquivo para outro usuário?

1

Veja Por que um usuário normal não pode chown? um arquivo? para acesso irrestrito a chown é uma má ideia. No entanto, quero implementar uma versão restrita disso. Quero permitir que o usuário adam forneça arquivos ao usuário bobby e permita somente essa transferência.

    
por Steven Stewart-Gallus 01.05.2017 / 20:47

2 respostas

0

I want to allow user adam to give files to user bobby and only allow this transfer.

Para fazer isso, você precisa ter um programa que seja executado como root, faça as verificações necessárias e altere o proprietário de um determinado arquivo. Executar como root é fácil, você pode usar sudo ou um programa setuid, fazer a verificação correta para que o programa não seja mal utilizado, é mais difícil.

O que poderia funcionar, seria: 1) Abra o arquivo 2) use fstat() para verificar seu dono 3) então fchown() para alterar o dono.

É necessário passar por um fd para trabalhar no arquivo, pois o acesso através do arquivo nome não garante que o arquivo que está sendo verificado seja o arquivo que é operado em instantes posteriores. O arquivo pode ser alterado entre eles.

Outra opção seria implementar uma espécie de "serviço de upload" que receberia os arquivos (seus conteúdos) através da rede a partir de adam e, em seguida, criar arquivos completamente novos para bobby dos dados recebidos.

Eu não acho que nenhum deles existe como ferramentas prontas, embora o último seja semelhante ao e-mail.

    
por 02.05.2017 / 02:17
-1

Você pode usar chmod do arquivo para permitir que todos gravem no arquivo, e a propriedade se torna menos relevante.

chmod 777 file permite que todos façam quase qualquer coisa nesse arquivo.

    
por 01.05.2017 / 23:50