LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1245|回复: 3

C程式裡呼叫外部程式的權限問題

[复制链接]
发表于 2009-1-21 17:32:10 | 显示全部楼层 |阅读模式
大家好
我有一個 /script 資料夾  owner: root  權限是 drwx------
另外有一支程式 test     owner: root  有開 SETUID  權限: -rwsr-xr-x
程式裡面會先切換到 /script 再去執行/script下面的 menu.sh
用root執行沒問題

但用另一個帳號 alan 去跑這支程式
chdir 進去 /script 沒問題 (chdir的return值是0)
但是要執行 menu.sh 出現  Permission denied
我用 system 或 execl 去跑都一樣

問題可能出在哪邊呢???
謝謝

p.s. 目的是希望alan這帳號透過 test 這支程式才能跑 /script 裡面的東西

p.s. 如果我外部程式是跑 ls -al  /script 一切正常
      也就是 alan 可以透過 test 查到 /script內容
发表于 2009-1-21 19:29:55 | 显示全部楼层
/script 的 owner 是谁呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-1-22 08:22:04 | 显示全部楼层
Post by poet;1940447
/script 的 owner 是谁呀

是 root

上文有補充說明更多
請大大幫忙
回复 支持 反对

使用道具 举报

发表于 2009-2-3 21:46:59 | 显示全部楼层
这个程序的情形和命令passwd的情形一样。
普通权限如何修改口令文件等root所有的文本?比如:/etc/passwd

不一定先要获得root,只需要运行passwd输入旧密码就可以修改自己的口令。

设置setuid和setgid 位吧。

# ls -l /usr/bin/passwd

-r-s--x--x 1 root root 21944 02-12 16:15 /usr/bin/passwd

应该对你有用。

资料:http://unix-cd.com/vc/www/28/2007-10/8943.html
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表