迪浮资讯Information Dynamic百分努力只为换取一份信任

 当前位置:首页 > 迪浮资讯 > 行业新闻

linux中的setUID权限


 

setUID命令只能对文件生效,对目录不生效

在使用umask命令查看系统默认权限时,会出现4位数字的权限代号,如下:


其中第一个0表示的其实就是文件的特殊权限,包括setUID,setGID,sticky BIT权限,其于文件的用户对应的关系为:

特殊权限名 对应用户 对应权限代号
setUID u(所有者) 4
setGID g(所属组) 2
sticky BIT o(其他用户) 1

 

当没设置文件的特殊权限(包括setUID,setGID,sticky BIT权限)时,对应的四位数字的第一位则为0。



1、setUID权限的功能

  • 只有可执行(x)的二进制程序才能设定setUID权限
  • 命令执行者要对该程序拥有执行权限(x)
  • 命令的执行者在执行该程序时会获得该程序文件的属主身份(在执行程序的过程中灵魂附体为文件的属主)
  • setUID权限只在该程序的执行过程中有效,也就是说身份改变只在程序执行过程中有效

2、给文件设定setUID权限


				
  1. chmod 4755 文件名
  2. #下面的这个是个例子
  3. chmod 4755 abc
  4. #或者
  5. chmod u+s abc

结果如下:


可以看出赋予了setUID权限后对应原来所有者身份的rwx变成了rws,也就是s取代了x,同时系统把文件名abc以红底白字显示(提示这个文件是不安全的,有可能有安全隐患,也就是setUID权限不安全)

如果给一个没有可执行权限的文件赋予setUID权限,那么结果为:



3、获得该程序文件的属主身份的特性(危险)

在linux中用户的密码都放在/etc/shadow文件下,而且该文件的权限都是0,即只有root用户才能打开该文件,普通用户打开该文件会提示权限不足。(当然赋予了sudo权限的用户也能打开)





那既然普通用户不能访问/etc/shadow文件,那么linux中的普通用户自己怎么修改自己的密码呢?这里就涉及到系统设计好的setUID权限。如下:

对于/usr/bin/passwd命令,系统已经预先设置为了rwsr-xr-x权限



4、危险的setUID

如果系统中存在默认setUID权限之外的带有setUID权限的文件,则有可能被别人植入了木马或者其他危险文件,因此在一般的日常工作中,能够不用setUID权限就能完成的工作,就尽量不要使用setUID权限。并且做好如下几个方面的工作:

  • 关键目录应该严格控制写权限。比如:“/”、“/usr”等
  • 用户的密码设置要严格遵守密码三原则
  • 对系统中默认具有setUID权限的文件作一列表,定时检查有没有这之外的文件被设置了setUID权限

5、定时检查系统中有无系统默认之外的具有setUID权限的文件脚


					
  1. #!/bin/bash
  2. find / -perm -4000 -o -perm -2000 > /tmp/setuid.check
  3. #搜索系统中所有拥有setUID和setGID的文件,并保存到临时目录setuid.check中
  4. for i in $(cat /tmp/setuid.check)
  5. #做循环,每次循环取出临时文件中的文件名
  6. do
  7. grep $i /home/fz/suid.log > /dev/null
  8. #比对这个文件名是否在模板文件中
  9. if [ "$?" != "0" ]
  10. #检查上一个命令的返回值,如果不为0,证明上一个命令报错
  11. then
  12. echo "$i isn't in listfile!" > /home/fz/suid_log_$(date +%F)
  13. #如果文件名不在模板文件中,则输出错误信息,并把错误信息报错到日志中
  14. fi
  15. done
  16. rm -rf /tmp/setuid.check
  17. #删除临时文件

首先在检查前,先把系统中自带的setUID权限的文件找出来,并将其写入/home/fz/suid.log文件中,然后再执行此脚本。






迪浮科技课程服务承诺:


1、免费重修:
学员缺课或者学校效果不理想,可以免费重修,确保课程内容完全掌握。重修过程中绝对不收取任何费用!
2、单独辅导:
如果学生在学习过程中,因各种原因无法跟班级进度同步,公司安排专家讲师一对一辅导,手把手带你成为IT精英!
3、自由实验:
清默网络有先进完善的实验中心,全天开放,实验机时不限,不断提高动手操作能力!
4、考试辅导:
学员考试前先通过清默内部模拟考试,技术确定达到考试要求并提供考前辅导及考试技巧讲解。
如果模拟考试未能通过,专家讲师会给予建议和辅导,合格后再参加正式考试,确保学员能高分通过认证考试。
5、企业实战项目:

即通过先进的设备完全搭建和企业项目完全一致的网络环境,把学习内容融会贯通并在实际项目中加以应用,以达到学员迅速掌握实际技能并弥补经验不足的目的,让学员的学习内容不再纸上谈兵,理论与实战完全吻合


咨询老师:郭老师

咨询电话:15056089769

咨询Q Q :1027831018