分页: 1 / 2

[已解决]菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:29
aihaozhe2
如何让普通用户可以执行这l两句话:
echo "mem" > /sys/power/state
echo "disk" > /sys/power/state

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:34
missU
-rw-r--r-- 1 root root 4096 9月 17 12:21 /sys/power/state
普通用户不可能有权限去执行的。
该文件的读写权限属于root

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:37
aihaozhe2
是啊,我知道这个属性。

我没有安装复杂的wm,比如gnome,所以现在想实现待机/休眠,那么应该怎么办呢

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:44
missU
关上显示器

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:44
cuihao
:em06 编一个程序,然后给他SUID?

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:45
missU
要不就

代码: 全选

sudo echo "mem" > /sys/power/state
或者
sudo echo "disk" > /sys/power/state

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:48
lilydjwg

代码: 全选

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 13:49
lilydjwg
missU 写了:要不就

代码: 全选

sudo echo "mem" > /sys/power/state
或者
sudo echo "disk" > /sys/power/state
这样不行的。

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-17 18:32
aihaozhe2
lilydjwg 写了:

代码: 全选

dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0
:em06 这是什么? 我不懂dbus。。

哦,对了,好像以前有一个把用户加入powerdev组的做法,让普通用户获得电源管理的权力。。。

现在debian squeeze没有这个组阿。。还是我没安装相应软件包???我不要其他的wm,要保持现在的openbox

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-18 13:29
tusooa
sudo sh -c 'echo "mem" > /sys/power/state'
sudo sh -c 'echo "disk" > /sys/power/state'

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-19 0:14
wzssyqa
cuihao 写了::em06 编一个程序,然后给他SUID?
觉得这是正解

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-19 8:44
bigsun
Openbox下关机、重启、注销、休眠等功能的实现

2011-03-14 10:36:49| 分类: 默认分类 |字号 订阅
退出Openbox : openbox --exit

关机 dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
重启 dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
休眠 dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Hibernate

或者:
编辑/etc/sudoers,加入
ALL ALL=NOPASSWD :/sbin/shutdown
然后编辑Openbox菜单:

<item label="Reboot">
<action name="Execute"> <execute>sudo 'shutdown -r now'</execute> </action></item>
<item label="Shut down">
<action name="Execute"> <execute>sudo 'shutdown -h now'</execute> </action></item>

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-19 9:06
aihaozhe2
E感谢各位的回答。。

问一下,执行ls的代码出现错误信息是怎么回事

rror org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UPower was not provided by any .service files

而且,我没有安装sudo命令,没有sudoers文件

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-20 7:52
bigsun
看看/usr/share/dbus-1/interfaces/org.freedesktop.UPower.xml
此文件属于upower包(arch linux).
To suspend:
dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
Shutdown, reboot and suspend using gdm-control

In the latest Openbox release (3.4.7), you can shutdown, reboot or suspend from within Openbox with gdm-control, by telling GDM (The Gnome Display Manager) to perform these actions.

To shutdown the computer with gdm-control, use the following command:

gdm-control --shutdown && openbox --exit

To restart, use this command:

gdm-control --reboot && openbox --exit

And to suspend, use the following line:

gdm-control --suspend
http://urukrama.wordpress.com/openbox-guide/#shutdown2

Re: 菜鸟提问:如何让普通用户可以执行这l两句话

发表于 : 2011-09-20 9:04
funicorn
楼主问了一个简单的问题,被楼上几位发散到火星去了,两种办法

1. 调用bash

代码: 全选

sudo bash -c "echo "mem" > /sys/power/state"
调用bash完整执行后面的语句

2 管道

代码: 全选

echo "mem" |sudo tee /sys/power/state
第2种是标准做法。