[问题]关于suid/guid权限位的问题。[已解决]

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
Nile
帖子: 990
注册时间: 2006-07-15 11:20
来自: 枫叶刀市

[问题]关于suid/guid权限位的问题。[已解决]

#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

晕! :em27 :em27

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~~ :lol:
抬头望星空一片晴,我独行,夜已渐寒……
头像
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不能正确执行,但手动可以,奇载怪也 :D
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?(网上说有些系统为了确保安全会这样做)

:em69

请高人指点一二!!!
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

终于搞定了! :D :D

谢谢xhy兄的大力帮助 :em50 :em50

下面是代码,以伺后观人风者得焉......

代码: 全选

//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
brucemj
帖子: 2
注册时间: 2011-04-02 12:06

Re: [问题]关于suid/guid权限位的问题。[已解决]

#11

帖子 brucemj » 2012-03-06 22:59

非常感谢,我也遇到这样的问题。
回复