linux 特殊权限 之 SUID 实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 特殊权限 之 SUID 实例相关的知识,希望对你有一定的参考价值。
linux 文件特殊权限
SUID:set UID
简介:
SUID权限只对二进制程序有效
执行者对于该程序需要具有可执行权限
本权限仅在执行该程序的过程有效,执行者将具有该程序拥有者的权限
在文件拥有suid权限时,用户只要有执行这个文件的权限就会获得这个文件的属主权限
SGID
简介:
user对此目录具有r与x的权限时,该用户能够进入此目录
user在此目录下的有效群组将会变成该目录的群组
user若在此目录具有w的权限,则使用者所建立的新档案的群组与此目录的群组相同
Sticky bit(只针对目录有效)
简介:
用户对此目录具有w,x权限,即具有写入权限时,在该目录下建立档案或者目录时,仅有自己与root才有权力删除
这里就先讨论 SUID
建立一个文件,只有root有权限读写
[email protected]:~/tmp$whoami xuebaiji [email protected]:~/tmp$ll /tmp/test.txt -rw------- 1 root root 26 Feb 23 18:05 /tmp/test.txt [email protected]:~/tmp$cat /tmp/test.txt cat: /tmp/test.txt: Permission denied [email protected]:~/tmp$cat /tmp/test.txt cat: /tmp/test.txt: Permission denied [email protected]:~/tmp$sudo cat /tmp/test.txt hello xbzy007 SUID test
准备一个简单的程序,读取上面的文件
[email protected]:~/tmp$cat test.c #include "stdio.h" int main() { FILE *fp; char ch; if((fp=fopen("/tmp/test.txt","r"))==NULL) { printf("file cannot be opened\n"); exit(1); } while((ch=fgetc(fp))!=EOF) fputc(ch,stdout); fclose(fp); }
编译程序运行
[email protected]:~/tmp$sudo gcc -o test-c test.c [email protected]:~/tmp$ [email protected]:~/tmp$./test-c file cannot be opened
提示打不开,因为只有root 才能读取该文件
下来给二进制程序加上suid 权限,在看看
[email protected]:~/tmp$sudo chmod u+s test-c [email protected]:~/tmp$./test-c hello xbzy007 SUID test [email protected]:~/tmp$
哈哈 ,奇迹出现了,顺利读取出来了文件内容,到此 SUID 实验完成,不知道你看了是不是有所收获呢
后面将演示其他的特殊权限的使用,3KS
本文出自 “xbzy” 博客,请务必保留此出处http://xbzy007.blog.51cto.com/3851088/1900679
以上是关于linux 特殊权限 之 SUID 实例的主要内容,如果未能解决你的问题,请参考以下文章