分页: 1 / 1

帮助!!!一个切换root的shell程序

发表于 : 2007-08-20 14:58
lionel1022
#!/bin/bash
sudo su -
echo 123456 | sudo -S

老提示要输入密码?
请问各位该如何改,能不用输入密码?

发表于 : 2007-08-20 15:21
ofewiofewo
不输入密码会大大降低安全性吧。实在要这样做,可以修改/etc/sudoers文件,为这个用户和这个shell添加一个NOPASSWD的tag。类似:

代码: 全选

用户名 ... = NOPASSWD: 你的sh文件,......

发表于 : 2007-08-20 16:16
relive
在置顶的帖子里面有,对应的一句是用root权限执行sed -ie '/^%admin/s/ALL$/NOPASSWD: ALL/' /etc/sudoers
不过这样做的话,虽然可以解决楼主的问题但是和楼主需要知道的东西相差很远。我也想知道楼主问题的正解。我解不出帮你顶

发表于 : 2007-08-20 17:52
gregorian
为什么要在脚本上sodu过去你,一个你要脚本有root的权限的话,感觉还是用chmod +t 会比较好

发表于 : 2007-08-20 18:36
BigSnake.NET
脚本思路本身就错误, root权限的脚本应该在启动时以root执行

发表于 : 2008-02-20 18:43
foja
我也很想知道该怎么做,最近一直在为此烦恼

发表于 : 2008-02-20 19:15
eexpress
alias s-p关机='echo xxxx | sudo -S poweroff'

发表于 : 2008-02-20 19:31
iblicf
这个大概是要 expect 的意思了,,我不太会用,下边的只能维持数秒,,^^

代码: 全选

#!/usr/bin/expect
spawn su -
expect "Password:"
send "123456\r"
expect "#"

#send "pwd\r"
#exit

发表于 : 2008-02-20 20:11
bones7456
BigSnake.NET 写了:脚本思路本身就错误, root权限的脚本应该在启动时以root执行
这个才是正解.其他都是旁门左道.不安全的.

发表于 : 2008-02-20 20:16
eexpress
bones7456 写了:
BigSnake.NET 写了:脚本思路本身就错误, root权限的脚本应该在启动时以root执行
这个才是正解.其他都是旁门左道.不安全的.
不能这么说哦。要看脚本里面主要的操作是谁。

发表于 : 2008-02-20 20:28
iblicf
抛开安全考虑,只是说这个如何实现,,当然值得讨论一下的,虽然 1# 的意图其实不明确,,

如此类似可能的情况 ,,

1 ,sudo 可以不输入密码
2 ,sudo -S 可以从stdin 获得输入
3 , setuid 位设置
4 , 考虑 root script ( cron )
5 , expect ,
6 , .....

发表于 : 2008-02-21 14:33
lb_bn
root cron和sudo -S不错。
造合大众。 :lol: