首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | 服务器技术 | linux相关 | linux认证 | 嵌入式 | 下载中心 | 专题 | linux招聘 | 镜像站
OKLinux中文技术站
·设为首页
·加入收藏
·联系我们
系统管理: 中文环境 系统管理 桌面应用 内核技术 | Linux基础: 基础入门 安装配置 常用命令 经验技巧 软件应用 | Linux数据库: Mysql Postgre Oracle DB2 Sybase other
网络管理: 网络安全 网络应用 Linux服务器 环境配置 黑客安全 | 编程开发: PHP CC++ Python Perl Shell 嵌入式开发 java jsp | PHP技术: PHP基础 PHP技巧 PHP应用 PHP文摘
Linux资讯 Linux招聘 Linux专题 Apache | Linux相关: 硬件相关 Linux解决方案 Linux认证 企业应用 其它Unix | 相关下载: 资料下载 参考手册 开发工具 服务器类 软路由 其它
 技术搜索:
会员中心 注册会员 高级搜索  
  → 当前位置:首页>系统管理>系统管理>正文

Linux文件特殊权限 SUID/SGID/Sticky Bit

http://www.oklinux.cn  2008-01-18  来源:  korn  会员收藏  游客收藏  【 】 

前面一直提到文件的重要权限,就是rwx这3个读、写、执行的权限。但是,怎么 /tmp权限有些奇怪?还有, /usr/bin/passwd也有些奇怪,怎么回事呢?

 

 

[root@linux ~]# ls -ld /tmp ; ls -l /usr/bin/passwd
drwxrwxrwt 5 root root 4096 Jul 20 10:00 /tmp
-r-s--x--x 1 root root 18840 Mar 7 18:06 /usr/bin/passwd

 

不是只有rwx吗?为什么还有其他的特殊权限呢?不要担心,我们这里先不谈这两个权限,只是先介绍一下而已。因为必须要有账号的ID概念,以及程序的进程(process)概念后,才能够进一步了解这些特殊权限所表示的意义。

 

Set UID

 

会创建s与t权限,是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限。举例来说,我们知道,账号与密码的存放文件其实是 /etc/passwd与 /etc/shadow。而 /etc/shadow文件的权限是“-r--------”。它的拥有者是root。在这个权限中,仅有root可以“强制”存储,其他人是连看都不行的。

 

但是,偏偏笔者使用dmtsai这个一般身份用户去更新自己的密码时,使用的就是 /usr/bin/passwd程序,却可以更新自己的密码。也就是说,dmtsai这个一般身份用户可以存取 /etc/shadow密码文件。这怎么可能?明明 /etc/shadow就是没有dmtsai可存取的权限。这就是因为有s权限的帮助。当s权限在user的x时,也就是类似 -r-s--x--x,称为Set UID,简称为SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。那么,我们就可以知道,当dmtsai用户执行 /usr/bin/passwd时,它就会“暂时”得到文件拥有者root的权限。

 

SUID仅可用在“二进制文件(binary file)”,SUID因为是程序在执行过程中拥有文件拥有者的权限,因此,它仅可用于二进制文件,不能用在批处理文件(shell脚本)上。这是因为shell脚本只是将很多二进制执行文件调进来执行而已。所以SUID的权限部分,还是要看shell脚本调用进来的程序设置,而不是shell脚本本身。当然,SUID对目录是无效的。这点要特别注意。

 

Set GID

 

进一步而言,如果s的权限是在用户组,那么就是Set GID,简称为SGID。SGID可以用在两个方面。

 

文件:如果SGID设置在二进制文件上,则不论用户是谁,在执行该程序的时候,它的有效用户组(effective group)将会变成该程序的用户组所有者(group id)。

 

目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。

 

一般来说,SGID多用在特定的多人团队的项目开发上,在系统中用得较少。

 

Sticky Bit

 

这个Sticky Bit当前只针对目录有效,对文件没有效果。SBit对目录的作用是:“在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权力删除”。换句话说:当甲用户在A目录下拥有group或other的项目,且拥有w权限,这表示甲用户对该目录内任何人建立的目录或文件均可进行“删除/重命名/移动”等操作。不过,如果将A目录加上了Sticky bit的权限,则甲只能够针对自己建立的文件或目录进行删除/重命名/移动等操作。

 

举例来说,/tmp本身的权限是“drwxrwxrwt”,在这样的权限内容下,任何人都可以在 /tmp内新增、修改文件,但仅有该文件/目录的建立者与root能够删除自己的目录或文件。这个特性也很重要。可以这样做个简单测试:

 

1. 以root登入系统,并且进入 /tmp中。

2. touch test,并且更改test权限成为777。

3. 以一般用户登入,并进入 /tmp。

4. 尝试删除test文件。

 

更多关于SUID/SGID/Sticky Bit的介绍,我们会在第11章中再次提及,当前,先有简单的概念即可。

共3页: 上一页 1 [2] [3] 下一页

上一篇:在Linux的终端和Shell中显示中文的方法   下一篇:在Linux操作系统下合并或分割文件的方法


收藏于收藏夹】 【评论】 【推荐】 【打印】 【关闭
相关文档
·在Linux操作系统下合并或分割文件的方法
·在Linux的系统中使用动态磁盘
·Linux操作系统的进程监视方法
·Linux系统的进程监视方法
·解决AMD64位Linux操作系统中Matlab问题
·RedHat Enterprise Linux 基本网络配置
·解决AMD64位Linux系统中Matlab问题
·Fedora 8无法启动VirtualBox虚拟机的解决
·Grub引导的Linux系统下使用MaxDos V6.0
·Linux下实现从Ext2到Ext3文件系统的转换
·用Getopt在Linux下获取命令行参数的方法
·修正Ubuntu在格式化SWAP后不能休眠的问题
·Linux系统上一个功能较全的Squid配置文件
·Linux操作系统下常用的系统状态查询命令
·Linux操作系统下设置开机启动文件的方法
·在Linux操作系统下查看磁盘空间的好方法
发表评论
密码: 匿名评论
评论内容:

(不超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规)
 
  最新文档
·在Linux系统下如何调整文件打开方式
·如何在Linux系统下更改文件使用权限
·如何在Linux系统下创建ISO镜像文件
·Linux系统下如何破解PHP加密dezend软件
·Linux下恢复EXT3 Superblock的正确方法
·学习园地:Linux系统的内存管理指南
·软件推荐:开放源代码软件测试工具介绍
·Linux系统下配置OPENVZ虚拟机的过程解
·Ubuntu Linux系统下修改文档权限的方法
·VMware虚拟机Linux系统通过NAT方式上网
·通过监控Linux的运行进程来保证系统安
·安全宝典:保障Linux系统安全的九大技
  阅读排行
·使用源代码将 Glibc 升级到 2.6
·Linux下推荐的常用应用程序列表
·使用 ActiveScaffold 增强 Ruby on Rai
·什么是Linux?Linux与UNIX之间的关系
·应用:postfix邮件服务器安全策略
·提高Linux系统性能加速网络应用程序
·Linux操作系统的内核引导程序详细解析
·Linux用户(User)和用户组管理概述
·在 Linux on POWER 上利用透明大内存页
·Ubuntu Linux操作系统中的用户管理
·使用/proc文件系统来访问Linux内核
·基于linux操作系统架构openvpn总结
·Grub引导程序的安装、配置及使用汇总
·几种Linux嵌入式开发环境的简单介绍
·C++自动化(模板元)编程基础与应用(1)
网摘收藏: