EDIT: é uma maneira de fazer isso de forma rápida e fácil, sem configuração adicional.
cat ~firstUser/file | sudo -u secondUser tee ~secondUser/file >/dev/null
Isso transferirá todos os conteúdo do arquivo exatamente. Se você se preocupa em ter as permissões de arquivo e / ou o registro de data e hora correspondentes ao original, será necessário corrigi-los separadamente usando chmod
e touch
.
RESPOSTA ORIGINAL:
O problema aqui é que:
-
secondUser
não tem acesso ao seu diretório pessoal. - Você não tem acesso ao diretório inicial de
secondUser
.
Assim, independentemente de você executar o comando cp
como você mesmo ou como secondUser
, ele não poderá executar a cópia do arquivo.
Como você disse que não tem root
access, a resposta óbvia é copiar o arquivo por meio de um local intermediário de leitura, como /tmp
, e alterar as permissões do arquivo para world-readable. Se os dados no arquivo forem confidenciais, talvez você não queira fazer isso, porque qualquer pessoa no servidor poderá ler o arquivo enquanto estiver em trânsito. Se não forem dados confidenciais, faça o seguinte:
cp file /tmp/
chmod a+r /tmp/file
sudo -u secondUser cp /tmp/file ~secondUser
rm /tmp/file
A melhor opção, se você puder organizá-lo, é criar um grupo que contenha somente você e secondUser
e chgrp
da cópia do arquivo em /tmp
pertencente a esse grupo. Desta forma, você não precisa tornar o arquivo world legível, mas somente legível pelo grupo (com chmod g+r /tmp/file
). No entanto, groupadd
em si requer acesso root, então é improvável que isso seja fácil de organizar. Dependendo das circunstâncias (se você está frequentemente tentando compartilhar / colaborar com secondUser
, isso pode ser aplicável), você pode considerar pedir ao seu administrador para configurar este grupo para uso futuro.