This topic created in 4814 days ago, the information mentioned may be changed or developed.
一些命令需要在root下运行,一些需要在普通权限下运行。大家是怎么处理这个问题的?
我只找到3种方案,都不是很好。
1.需要root的从standinput读取password
echo LOGINPASSWD | sudo -S COMMAND HERE
2.用expect配合
3.让这个script以root权限运行,脚本内需要普通用户的地方用
sudo -u User 或者
sudo bash <<EOF
whoami
id
EOF
做切换。
求更好的方法,或者用python调用?求例子。
11 replies • 1970-01-01 08:00:00 +08:00
 |
|
1
dndx May 20, 2013
Please Google "setuid"
|
 |
|
2
halfbloodrock May 20, 2013
我不知道我理解的是不是正确,普通用户run 脚本,然后脚本里有一些命令要用root权限。
我的方法:如果就1,2台机器 在visudo里配置command alias。然后脚本里写sudo command.
|
 |
|
7
chemzqm May 21, 2013
在脚本里一般情况需要root就是sudo,需要重定向就用sudo sh -c COMMOND Ubuntu可修改sudo密码过期时间,命令sudo visudo添加 Defaults passwd_timeout=30 设置为30分钟后过期 运行脚本输入一次当前用户密码即可,或者使用expect
|
 |
|
8
egen May 21, 2013 1
个人觉得 sudo 跑脚本然后 sudo -u User 的方法好一点 如果普通权限跑一半遇到 sudo 到 root,需要输入密码是挺烦人的一件事,无人值守方面不大好
|
 |
|
9
panzhc May 21, 2013
把需要root执行权限的命令改成普通用户也可以执行呢? chown 0.0 /path/to/file chmod u+s /path/to/file
|
 |
|
10
linchanx May 21, 2013
setuid 可以让普通账号执行root账号才能执行的程序
|
 |
|
11
glancesx May 23, 2013
su - xxx -c " command " xxx是普通用户
|