-1

I am running below command in host machine as root

cat file1 | ssh remoteserver "su - differentuser;cat >> file1"

It is not working. it is creating file1 in root home folder in remote server. But i want this to be created in different user home folder and different user as owner.

Could anyone please help me. I am stuck here.

user3180371
  • 37
  • 1
  • 3

1 Answers1

1

The cat command will run after command su finishes and goes back to logged ssh user.

To run cat inside su you have to run with -c parameter:

cat file1 | ssh remoteserver "su -l differentuser -c 'cat >> file1'"

cat file1 | ssh remoteserver "su differentuser -c 'cat >> ~/file1'"
denisvm
  • 720
  • 3
  • 11
  • @user3180371 strange, -l parameter should be available too, at least in Linux/BSD. You can try changing from "-l" to "-". – denisvm Jul 24 '14 at 05:39