- 论坛徽章:
- 0
|
按照apue上所述:程序a中用system执行程序b,程序b输出有效用户id,当程序a设置了设置用户id位的时候,通过程序a执行程序b应该输出程序a的实际用户id啊,但是做了个实验发现不是这样的。
代码如下:tsys.c(即上面的程序a)- #include <stdio.h>
- #include <unistd.h>
- int main(int argc, char *argv[])
- {
- int status;
- if(argc <2 )
- {
- printf("commend-line argument requited\n");
- exit(1);
- }
- if((status=system(argv[1]))<0)
- {
- printf("system() error!\n");
- exit(1);
- }
- return 0;
- }
复制代码 Test.c(即上面的程序b)- int
- main(int argc, char *argv[])
- {
- printf("real uid=%d,effectivce uid =%d\n",getuid(),geteuid());
- return 0;
- }
复制代码 执行结果如图
|
-
Q.jpg
(14.28 KB, 下载次数: 23)
|