日期:2014-05-16 浏览次数:20804 次
SUID
具有该权限的文件的所有者的x标志会被s标志取代。
该权限仅对二进制可执行文件有效。
执行该文件的用户(当然这个用户必须具有对该文件的可执行权限)将会暂时获得该文件所有者的权限,这种效果仅在执行该文件的过程中有效。
实例:
当普通用户使用命令passwd修改自己的密码时,命令passwd需要修改文件/etc/shadow,但是只有root用户具有对文件/etc/shadow的可读可写权限,SUID便可以解决这个问题。由于可执行文件/usr/bin/passwd具有SUID权限,它的所有者是root,所以当普通用户执行命令passwd时,将会暂时获得root的权限。
SGID
具有该权限的文件的所属用户组的x标志会被s标志取代。
该权限对二进制可执行文件和目录文件有效。
当二进制可执行文件具有该权限时:
执行该文件的用户(当然这个用户必须具有对该文件的可执行权限)将会暂时获得该文件所属用户组的支持,这种效果仅在执行该文件的过程中有效。
实例:
当普通用户使用命令locate查找文件时,命令locate会去读取文件/var/lib/mlocate/mlocate.db,该文件的所有者是root,所有者具有可读可写权限,该文件的所属用户组是slocate,所属用户组的权限是可读,其它用户没有读写权限,SGID便可以解决这个问题。由于可执行文件/usr/bin/locate具有SGID权限,它的所属用户组是slocate,所以当普通用户执行命令locate时,将会暂时获得用户组slocate的支持。
首先要知道目录文件的可读、可写、可执行权限的作用:
可读:当对一个目录文件具有可读权限时,才可以查看该目录下的文件名
可写:当对一个目录文件具有可写权限时,才可以在该目录下新建文件、删除文件、重命名文件、转移文件
可执行:当对一个目录文件具有可执行权限时,才可以进入该目录,使其成为工作目录
其次要知道初始用户组和有效用户组的概念:
一个用户可能同时属于多个用户组,当该用户执行除创建新文件以外的操作时(如读、写、执行文件),将会得到他属于的所有用户组的支持。可以用命令“newgrp 新有效用户组”切换当前用户的有效用户组。需要注意的是,命令newgrp是以子进程的方式在另一个shell中实现有效用户组切换的,当用命令exit回到原来的shell时,有效用户组也会自动复原。