免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1919 | 回复: 5

脚本内命令权限问题? [复制链接]

论坛徽章:
0
发表于 2008-07-01 17:31 |显示全部楼层
脚本内容如下:
#!/bin/bash

pppoe-start

if [ $? -eq 1 ]; then
    pppoe-stop
fi

$ls /usr/bin/ppp -l
-rwsr-sr-x 1 root root 66 07-01 09:22 /usr/bin/ppp

问题: 已设置S 位, 为什么普通用户执行 说没有权限?  怎么才能让普通用户执行这个脚本?

论坛徽章:
0
发表于 2008-07-01 17:42 |显示全部楼层
s,表示set UID或set GID。位于user或group权限组的第三位置。如果在user权限组中设置了s位,则当文件被执行时,该文件是以文件所有者UID而不是用户UID执行程序。如果在group权限组中设置了s位,当文件被执行时,该文件是以文件所有者GID而不是用户GID执行程序。

跟你想的应该不是一回事

论坛徽章:
0
发表于 2008-07-01 19:33 |显示全部楼层
是你的ppp没有权限,还是pppoe-stop没有权限

论坛徽章:
0
发表于 2008-07-01 20:42 |显示全部楼层
/usr/bin/ppp是脚本?由于安全问题,脚本的S位已经没用了,可以用shc编译成二进制文件。

论坛徽章:
0
发表于 2008-07-01 23:18 |显示全部楼层
1. 就是不想每次都 sudo pppoe-start;  sudo pppoe-stop 所以再写这个脚本. 想连接或断开只输入ppp就行
2. ppp 是由普通用户执行的. 但设置了 S位. ppp的owner是root
3. 编译成二进制还是一样的. 关键脚本内的命令 没有root权限,  但普通用户执行passwd命令心改/etc/passwd是怎么工作的呢?

[ 本帖最后由 pro21ms4 于 2008-7-1 23:23 编辑 ]

论坛徽章:
0
发表于 2008-07-02 00:07 |显示全部楼层
编译成二进制应该是没有问题了,没有脚本内命令的权限的概念的,执行的命令,要看执行的人,你用root执行ppp难道也不行么?其实你可以用sudo ppp的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP