Como copiar o arquivo de um uso para outro?

1

Eu tenho um servidor web e ele é usado por poucos desenvolvedores. Web site está sob website user. Outros usuários são como user1 , user2 etc. Eu dei acesso sudo a user1 , user2 .. para acessar website .

O problema que estou tendo agora é que os usuários não copiam scripts de website porque alguns scripts não permitem ler diretamente pelo users . E mesmo se eu tentar cp usando sudo, ele falhará porque website não tem permissão de gravação para os diretórios users .

Eu não quero alterar a permissão do arquivo devido a algumas temporadas de segurança. Eu vi em algum lugar que eu posso fazer isso usando o tar, mas não consegui descobrir.

Alguém pode ajudar ...

Obrigado!

    
por Yasiru G 24.08.2016 / 12:39

1 resposta

1

Você pode fazer (como user1 ) algo como

sudo -u website cat ~website/somefile > ~user1/somefile

Observe que ~user1/somefile será criado primeiro pelo usuário que está executando o shell ( user1 ) e o cat será executado como website

Você pode usar o tar (1) com o mesmo truque para vários arquivos:

sudo -u website tar cf - ~website/foo ~website/bar | tar xf -

Executar como user1 em seu diretório, que irá "criar" o arquivo tar no stdout como website , e o outro tar (sem sudo, rodando como o mesmo usuário que o rodando, que é user1 ) descompactaria esse arquivo tar virtual para o diretório atual (para o qual user1 pode gravar).

UPDATE Observe que o tar criará subdiretórios que levam a um arquivo, você pode reduzir esse comportamento especificando -C , de modo que o tar entrará no diretório especificado antes de iniciar:

sudo -u website tar -C ~website -cf - foo bar | tar xf -

Dessa forma, foo e bar serão criados no diretório atual sem subdiretórios avançados (mas se você adicionou blah/baz , ele criaria blah como subdir no qual baz reside)

    
por 24.08.2016 / 21:00