suid
来源:互联网 发布:人工智能 高端服务业 编辑:程序博客网 时间:2024/05/16 11:32
Linux SUID/SGID/SBIT权限
其实SUID和SGID的作用跟sudo是相似的。当用户A想执行一个原本属于用户B的可执行文件时,若B的文件设置了suid位,则A在执行时是以用户 B的身份来执行。
其中一个suid的应用实例就是passwd,在linux中,存储密码的文件是/etc/passwd与/etc/shadow这两个文件,
- linuxidc@www.linuxidc.com:~/cpp$ ls -l /etc/passwd
- -rw-r--r-- 1 root root 1503 2011-03-22 15:03 /etc/passwd
- linuxidc@www.linuxidc.com:~/cpp$
- linuxidc@www.linuxidc.com:~/cpp$ ls -l /etc/shadow
- -rw-r----- 1 root shadow 1071 2011-03-22 15:03 /etc/shadow
- linuxidc@www.linuxidc.com:~/cpp$
这两天文件的所属用户 是root,也就是说,只有root用户可以修改这个文件。但是在一个多用户 的系统中,即便是普通用户,也有更改自己的密码的权限吧?但是更改密码就要更改到/etc/passwd这个文件,一般情况下是不被允许的。所以,这就是suid的作用了。
先看一下设置密码的命令:
- root@www.linuxidc.com:/tmp/aa# ls -l /usr/bin/passwd
- -rwsr-xr-x 1 root root 37100 2011-02-15 06:12 /usr/bin/passwd
可以看到,/usr/bin/passwd是设置 了sticky位的。也就是说,当普通用户在执行passwd命令时,其实使用是root管理员的身份,当更改完密码时,就恢复到普通用户的身份了。
我想了一个实验来看一下效果
- cd /tmp/
- mkdir aa
- cd aa
写一个perl程序:
- #!/usr/bin/perl
- system("touch test");
顺便说一下,需要先安装perl-suid才可以设置perl程序suid位。不然会报如下错误:
Can't do setuid (cannot exec sperl)
- suid
- SUID
- SUID
- SUID
- suid
- SUID
- SUID、SGID
- suid shell
- suid guid
- suid&&sgid
- SUID权限
- SUID SGID
- SUID 功能
- SUID浅析
- suid 实验
- suid权限
- SUID SGID
- 什么是Suid shell?
- poj1942 Paths on a Grid
- 卦卦学mysql系列(3)——mysql入门 数据表内的操作
- 我什么都不会网络系统架构
- Poj 3461 Oulipo(KMP算法)
- J2EE中的13种技术规范
- suid
- JNI 入门介绍(jstring与char*的转换)
- iphone -- Notification使用
- 冒烟测试
- Java中使用C3P0连接池
- Hadoop LZO的安装与配置
- php的public、protected、private三种访问控制模式的区别
- 首篇
- 9大最火的移动开发技能