insert text in a file using echo command

7,816

Solution 1

Sudo just executes the first command, in your case " echo "abc-abc/abc/abc" ".

So the rest of the command (writing in /etc/portage/make.conf) will be executed in user mode.

You just have to modify the permissions on the file using chmod.

Solution 2

In that command line, your shell opens the /etc/portage/make.conf in append mode, makes it the stdout of a new process and runs sudo in that new process. It's not sudo nor echo that open the file, it's your shell which is running with your credentials.

You'd need the file to be opened by the command started as root. So it could be:

sudo sh -c 'echo "abc-abc/abc/abc" >> /etc/portage/make.conf'

Or:

echo "abc-abc/abc/abc" | sudo tee -a /etc/portage/make.conf > /dev/null
Share:
7,816

Related videos on Youtube

user44499
Author by

user44499

Updated on September 18, 2022

Comments

  • user44499
    user44499 over 1 year

    I am trying to insert some text in a file in the following way

    sudo echo "abc-abc/abc/abc" >> /etc/portage/make.conf
    

    but it give me the error Permission denied

    although I am using sudo command

  • Stéphane Chazelas
    Stéphane Chazelas almost 11 years
    Let's be serious, you don't want to chmod a file to modify it when you have sudo access.