Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I've changed my ctrl-alt-l shortcut so instead of just locking the screen, the system goes into suspend.

(for reference, the command is gksudo pm-suspend-hybrid)

as you can see, the program needs to be run as root, so I added the gksudo. I'd really like to get the system to suspend without having to enter the password. Is there any way I can do this?

share|improve this question

2 Answers 2

up vote 4 down vote accepted

Open up a terminal and exebute sudo visudo.

Then you can edit the sudoers file where you can specify who can execute which command as root with and without password. At the end of the file you paste either this line

nonprivilegeduser ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

for every user to be able to execute that command as root without password, or

Your_Username ALL=NOPASSWD:/usr/sbin/pm-suspend-hybrid

for only your user to be able to do this (of course you have to adjust it for your user). Then you save the file (should be Ctrl+O) and exit the program (Ctrl+X).

At last, you have to edit your command to read sudo pm-suspend-hybrid instead of gksudo pm-suspend-hybrid.

NOTE: There should also be the possibility to do this with dbus (doesn't require sudoers editing) but this solution has the advantage that it works with every UI.

share|improve this answer
    
worked great :D Thanks :D Just for reference, I'm now using gnome-screensaver-command -l; sudo pm-suspend-hybrid to lock the screen and then suspend :) –  jackweirdy May 13 '12 at 13:44
    
And that works? I had several problems with executing multiple commands (it wasn't a shortcut but a startup application). But good to hear it works ^^ –  jP_wanN May 13 '12 at 13:55
    
I put it in a shell script and ran it :) –  jackweirdy May 13 '12 at 14:40
    
Okay. I used sh -c 'command && command' ;) –  jP_wanN May 14 '12 at 12:12

Normally that's what the SUID bit is for, but in your case I would probably replace pm-suspend-hybrid with different invocation which doesn't need root permissions (you don't need to enter password when suspending Unity, after all).

Just use the following command instead (without sudo):

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

References:

share|improve this answer
    
Tried that before; it just turns off the screen :( –  jackweirdy May 13 '12 at 13:44
    
Okay, good to know. Seems that hybrid suspend is not very well supported by UPower. –  jnv May 13 '12 at 13:49

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.