系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#1
帖子
由 Nile » 2007-08-05 9:33
据我的理解,如果一个程序/脚本被加了suid/guid,那么任何其他用户运行这个程序/脚本时,这个程序/脚本仍然拥有它所属的用户/组的权限。
按网上介绍,suid/guid脚本可以使普通用户执行一些只有root才能执行的操作。
但我新建一个mountntfs.sh
代码: 全选
#!/bin/bash
mount -t ntfs-3g /dev/sda7 /media/sda7
其权限为:
代码: 全选
-rwsr-sr-x 1 root root 52 2007-08-05 01:03 mountntfs.sh
用普通用户运行时为什么还提示“要以root身份运行“?
是我理解错了还是哪里没弄好?
请指点!多谢多谢!
上次由
Nile 在 2007-08-06 14:27,总共编辑 1 次。
Thinkpad T400
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#2
帖子
由 Nile » 2007-08-05 11:10
晕!
google了半天终于得到了一个还算过得去的解释:
linux does not support suid on scripts.
不至于吧.......
Thinkpad T400
-
hualang0929
- 帖子: 1226
- 注册时间: 2006-11-11 10:23
- 来自: Mars
-
联系:
#3
帖子
由 hualang0929 » 2007-08-05 11:13
没必要~~
坚持sudo~~
抬头望星空一片晴,我独行,夜已渐寒……
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#4
帖子
由 Nile » 2007-08-05 11:20
哎,有时候想让系统自动以root权限运行一些东西,又不想用sudo visudo那种方法,没办法呀....
Thinkpad T400
-
xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
#5
帖子
由 xhy » 2007-08-05 11:25
写一个C的wrapper
#include <stdlib.h>
int main( )
{
system("命令");
}
目前负债150多万
-
hualang0929
- 帖子: 1226
- 注册时间: 2006-11-11 10:23
- 来自: Mars
-
联系:
#6
帖子
由 hualang0929 » 2007-08-05 11:33
开机运行?把脚本加到rc.local就行了
抬头望星空一片晴,我独行,夜已渐寒……
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#7
帖子
由 Nile » 2007-08-05 11:37
xhy 写了:写一个C的wrapper
#include <stdlib.h>
int main( )
{
system("命令");
}
谢谢,准备试一试。
开机运行?把脚本加到rc.local就行了
Thanks 这个试过了,同样的命令(比如那个mountntfs的shell)用rc.local不能正确执行,但手动可以,奇载怪也
Thinkpad T400
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#8
帖子
由 Nile » 2007-08-06 12:53
xhy 写了:写一个C的wrapper
#include <stdlib.h>
int main( )
{
system("命令");
}
试了一下,和shell结果一样,加不加suid位看不出任何区别!
难道ubuntu根本不支持suid/guid?(网上说有些系统为了确保安全会这样做)
请高人指点一二!!!
Thinkpad T400
-
xhy
- 帖子: 3916
- 注册时间: 2005-12-28 1:16
- 系统: Ubuntu 12.10 X64
- 来自: 火星
#9
帖子
由 xhy » 2007-08-06 13:45
system之前还没setuid呢
要用root执行就setuid(0);
目前负债150多万
-
Nile
- 帖子: 990
- 注册时间: 2006-07-15 11:20
- 来自: 枫叶刀市
#10
帖子
由 Nile » 2007-08-06 14:26
终于搞定了!
谢谢
xhy兄的大力帮助
下面是代码,以伺后观人风者得焉......
代码: 全选
//The runcmd.cpp file
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
using namespace std;
int main()
{
setuid(0);
system("sudo mount -t ntfs-3g /dev/sda7 /media/sda7");
}
代码: 全选
-rwsr-xr-x 1 root root 7261 2007-08-06 14:02 runcmd
Thinkpad T400