Se o emissor estiver realmente disposto a fornecer o arquivo, você poderá usar um binário SUID que mova o arquivo para um diretório que seja gravável por todos e tenha o bit adesivo (como /tmp
) e mude a propriedade para o novo proprietário. chown(3)
já cuida da remoção dos set-user-ID
e set-group-ID
bits para você. Dessa forma, o novo proprietário pode fazer o que quiser com o arquivo, incluindo movê-lo.
Esse diretório gravável por todos pode pertencer ao diretório pessoal do usuário, caso você deseje usar vários sistemas de arquivos para diretórios pessoais e deseja certificar-se de não ultrapassar os limites do sistema de arquivos, pois o desempenho seria imediatamente terrível. Nesse caso, você provavelmente desejará garantir que o destinatário saiba quando um novo arquivo é oferecido.
E-mails fariam o truque. Uma solução mais Unixy seria um /etc/profile
que lista seus arquivos recém-entregues. Bônus adicional se você oferecer este recurso com pam_echo
(por exemplo, com file=/tmp/deliveries/%u
, consulte pam_echo(8)
). Como com qualquer coisa relacionada ao PAM, você gostaria de verificar se todas as suas implementações oferecem esse módulo primeiro.