分页: 1 / 1
【已解决】普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-04 19:27
由 sanz
我的user用户需要以root身份运行我的一个xxx.sh(里面有需要root权限的cmd),不输入密码。
visudo里,添加
ALL ALL=(root) NOPASSWD:/home/user/xxx.sh
不成功。
如果xxx.sh里面是"sudo cmd",那么还是需要输入密码。
如果xxx.sh里是"cmd",那么不需要密码但是并没有获取root权限。
怎么破?
Re: 普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-04 21:10
由 sunfish
使用特殊权限,类似于passwd命令的权限,root拥有,但具有suid
Re: 普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-05 7:42
由 sanz

不懂。愿闻其详
那我visudo里的修改为什么没有用啊?
Re: 普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-05 8:07
由 poloshiao
我的user用户需要以root身份
釐清
是需要以 root 身份
還是需要 root 權限
那我visudo里的修改为什么没有用啊?
建議 試試
不要去修改任何已經存在的群組及使用者帳號設定
額外設定合乎你期望權限的 新群組
把該使用者 加入該群組
補充
root 是最有權利的帳號
?
Ubuntu 預設關閉 root 登入
在許多程式 也限制 uid > 0
所以 root 身份 處處 受到限制
意思是
在 Ubuntu
不建議新手 使用 root 登入 或 切換成 root 身份
Re: 普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-05 8:56
由 sanz
原来问题是在cmd本身。我只设置了可以nopasswd运行cmd.sh,里面用到python没有授权。
加一行
ALL ALL=(root) NOPASSWD:/usr/bin/python
成功。
不过,这里的两条授权全是给ALL用户的,我是通过www-data用户运行python脚本,里面调用os.popen('cmd.sh'),cmd.sh里再以root身份调用python。。。说到这里估计有人晕了。其实就是有个python模块必须以root身份才能运行,而我在网页脚本里要用到,所以。。。。(估计有人已经猜到是啥模块了

)
现在问题来了,我想缩小授权用户范围,但是我已经想不清楚到底是哪个用户需要哪个权限了。这两个授权语句里的用户到底应该设成谁?www-data?user? 当然,我试验一下就可以,但是,我想搞清楚。
ALL ALL=(root) NOPASSWD:/home/user/xxx.sh
ALL ALL=(root) NOPASSWD:/usr/bin/python
Re: 普通用户通过visudo提升权限不成功,求助
发表于 : 2015-11-05 9:06
由 sanz
测试后结果是用户名应该是www-data
www-data ALL=(root) NOPASSWD:/home/user/xxx.sh
www-data ALL=(root) NOPASSWD:/usr/bin/python