4

On my computer, pm-hibernate appears to be broken, however using the command echo disk > /sys/power/state appears to work perfectly. Now I just need regular user access to it, using sudo. How do I do this?

The command sudo echo disk > /sys/power/state simply returns bash: /sys/power/state: Permission denied.

Also, I need this in a regularly used script, how can I make it so that I don't have to type in my password for it to work???

1 Answer 1

9

Note that the redirection characters "separate" execution and privileges. On this command:

sudo echo disk > /sys/power/state

What you're doing is running echo disk as root (pointless) and then piping that, as your normal user, into a file that's owned by root, that's why you get permission denied.

This is a very common use case, what you need to do is sudo the part that actually writes to the file instead, something like this works:

echo disk | sudo tee /sys/power/state

You can also create a shell script (a file) with:

  echo disk > /sys/power/state

Name it, for instance, script.sh, then run chmod 755 script.sh and run that with sudo:

sudo /wherever/you/put/this/script.sh

As for running a command without needing a password, that's been discussed before: How do I sudo without having to enter my password?. It can be somewhat insecure; you can control which user gets to execute which command as root without password, but in this case you'd need to allow execution of the tee command which could allow malicious users to overwrite any file as root. So use with caution and please read all the documentation and understand the security implications of doing this.

3
  • You learn something new every day, I thought sudo included the entire command. I do have a question though, why did you use '|' over '>' and what does "tee" mean???
    – codesmith
    Oct 15, 2012 at 21:16
  • > directs output to a file. | directs output to the standard input of another command. tee is a very simple command that takes its input and outputs it to both standard output and to a file. wiki.bash-hackers.org/howto/redirection_tutorial
    – roadmr
    Oct 15, 2012 at 21:36
  • Ok, thanks for the answer. I've never used either, so I was unfamiliar with both, and before I use any command I like to figure out exactly what it does first.
    – codesmith
    Oct 15, 2012 at 21:40

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .