Chinaunix首页 | 论坛 | 博客
  • 博客访问: 439337
  • 博文数量: 58
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 623
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-26 18:48
个人简介

在生存面前,那纯洁的理想,原来是那么脆弱不堪!

文章分类

全部博文(58)

文章存档

2022年(1)

2021年(1)

2019年(3)

2018年(6)

2017年(6)

2016年(14)

2015年(10)

2014年(16)

2013年(1)

我的朋友

分类: 系统运维

2016-06-24 10:44:45

    SETUID是linux下的一套管理权限机制。主要作用是让普通用户临时拥有其他(一般是root)用户的权限。
   
一,我们可以编写一个小的setuid程序。
su.c
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     setgid(0);
  5.     setuid(0);
  6.     system("bash");
  7. }
  程序很简单,先设置进程gid,uid,最后启动一个bash,作为交互。

二,编译软件,并配置权限。

点击(此处)折叠或打开

  1. [bobo@localhost Desktop]$ gcc su.c -o su
  2. [bobo@localhost Desktop]$ su
  3. Password:
  4. [root@localhost Desktop]# chown root:root su
  5. [root@localhost Desktop]# chmod u+s su
  6. [root@localhost Desktop]# exit
  7. exit
  8. [bobo@localhost Desktop]$ ./su
  9. [root@localhost Desktop]#
  设置权限必须使用root账户,所以第2行,我们使用系统自身的su程序,可以看到,需要使用密码提权。
  接着第5行我们赋予了 ./su  一个u+s 的权限。
  然后我们第8行,就可以直接提权了,而且不需要输入密码。

三,总结:
   1,Linux系统下的命令,做了细致的权限划分来保证系统的安全性,所以不要随意改动系统程序的权限。
   2,注意检查具有setuid权限的程序,可能是后门。
   3,更不要直接用root登录操作系统,应该必要时提权。

阅读(5179) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~