分页: 1 / 1

帮忙看看,这个小脚本的一个困惑

发表于 : 2010-03-27 23:48
xzt41
#!/bin/bash
echo "job begain at :"
date
$AMBERHOME/exe/sander -O -i heat.in -o heat.out -p com_solvated.prmtop -c min.rst -r heat.rst -x heat.mdcrd -ref min.rst
$AMBERHOME/exe/sander -O -i density.in -o density.out -p com_solvated.prmtop -c heat.rst -r density.rst -x density.mdcrd -ref heat.rst
$AMBERHOME/exe/sander -O -i equil.in -o equil.out -p com_solvated.prmtop -c density.rst -r equil.rst -x equil.mdcrd
echo "done !"
date
这是我些的一个小脚本, 现在的困惑是我想在后面加一句关机的命令,让程序运行完后自动关机。可是我在后面直接加入shutdown -h now 后,因为权限限制,要输入密码。怎么办,这个问题怎么解决,高手帮帮忙

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-03-28 0:14
adam8157
sudo -S

或者这个脚本就用root或sudo运行

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-03-28 8:48
xzt41
adaml 写了:sudo -S

或者这个脚本就用root或sudo运行
不行,不能用root 用户运行,因为我的环境变量在root下不起作用。有没有其他办法

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-03-28 8:59
JiangHui
用sudo执行,环境变量还是原来那个用户的

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-03-31 14:43
jxcangel
只有普通用户权限,但硬是要用root权限才有的操作,这个似乎非常困难,如果真的可以这么做了,也就完全没有安全性可言了。
这种情况下,大概只能2选1,要么用root权限运行这个脚本,要么在普通权限里面删除掉需要root权限的操作。
但是如果知道root的密码的话,倒是可以用 Expect 来模拟 su 的操作,获取到完整的root环境。
在网上找一下 expect 的教程吧,我这里这是给你一个思路。

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-04-06 23:36
xzt41
jxcangel 写了:只有普通用户权限,但硬是要用root权限才有的操作,这个似乎非常困难,如果真的可以这么做了,也就完全没有安全性可言了。
这种情况下,大概只能2选1,要么用root权限运行这个脚本,要么在普通权限里面删除掉需要root权限的操作。
但是如果知道root的密码的话,倒是可以用 Expect 来模拟 su 的操作,获取到完整的root环境。
在网上找一下 expect 的教程吧,我这里这是给你一个思路。
首先非常感谢你的帮助,你给的思路不懂是什么意思?expect模拟root是什么意思。我想怎么能吧密码放在我的bash脚本里面,让程序运行到sudo shutdown这一步的时候,脚本里面不是有密码吗,怎么能让脚本像人一样吧密码输入进去实行关机。
我非得用普通用户执行这个关机命令,就如你所说,只有普通用户权限,但硬是要用root权限才有的操作。

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-04-06 23:44
eexpress
是 echo xxxx|sudo -s yyyy

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-04-07 12:03
xzt41
eexpress 写了:是 echo xxxx|sudo -s yyyy
什么啊?,xxx, yyy是什么,,你这个是干什么的?

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-04-07 12:17
eexpress
-S 打错了。就是读入密码。 xxxx密码,yyy是执行命令。

Re: 帮忙看看,这个小脚本的一个困惑

发表于 : 2010-04-08 11:12
bigarmy
用root执行visudo
在里面设置一下权限
bigarmy ALL=(root) NOPASSWD: /sbin/shutdown *

就是允许bigarmy这个账户执行shutdown命令,带任何参数,不需要输入密码