SETUID是linux下的一套管理权限机制。主要作用是让普通用户临时拥有其他(一般是root)用户的权限。
一,我们可以编写一个小的setuid程序。su.c
-
#include<stdio.h>
-
int main()
-
{
-
setgid(0);
-
setuid(0);
-
system("bash");
-
}
程序很简单,先设置进程gid,uid,最后启动一个bash,作为交互。
二,编译软件,并配置权限。
-
[bobo@localhost Desktop]$ gcc su.c -o su
-
[bobo@localhost Desktop]$ su
-
Password:
-
[root@localhost Desktop]# chown root:root su
-
[root@localhost Desktop]# chmod u+s su
-
[root@localhost Desktop]# exit
-
exit
-
[bobo@localhost Desktop]$ ./su
-
[root@localhost Desktop]#
设置权限必须使用root账户,所以第2行,我们使用系统自身的su程序,可以看到,需要使用密码提权。
接着第5行我们赋予了 ./su 一个u+s 的权限。
然后我们第8行,就可以直接提权了,而且不需要输入密码。
三,总结:
1,Linux系统下的命令,做了细致的权限划分来保证系统的安全性,所以不要随意改动系统程序的权限。
2,注意检查具有setuid权限的程序,可能是后门。
3,更不要直接用root登录操作系统,应该必要时提权。
阅读(5179) | 评论(0) | 转发(0) |