第七下载是国内最新、最齐、最安全的软件下载基地!

关于我们最近更新热门排行

首页 入库 软件 游戏 安卓 MAC 文章 专题

新闻资讯软件应用软件教程电脑百科编程开发 操作系统游戏娱乐游戏攻略手机相关游戏视频
当前位置:首页 ›› 编程开发 ›› Linux中设置SET位权限方法

Linux中设置SET位权限方法

2014-11-26 17:16   作者:佚名   来源:本站整理   浏览:411   评论:0  

虽然通过ACL增加了权限设置的灵活性,但是Linux系统中可供设置的权限只有读、写、执行三种,在某些特殊的场合,这可能将无法满足要求。因而,在Linux系统中还提供了几种特殊的附加权限,用于为文件或目录提供额外的控制方式,可用的附加权限包括:SET位权限(SUID、SGID)和粘滞位权限(Sticky Bit)。本文将介绍SET位权限。
Linux中设置SET位权限方法

SET位权限多用于给可执行的程序文件或目录进行设置,其中SUID表示对所有者用户添加SET位权限,SGID表示对所属组内的用户添加SET位权限。当一个可执行文件被设置了SUID、SGID权限后,任何用户在执行该文件时,将获得该文件所有者、所属组相对应的权限。

SET位权限的权限字符为“s”,设置SET位权限同样要通过chmod命令实现,可以使用“u+s”、“g+s”的权限模式分别用于设置SUID、SGID权限。

设置SUID、SGID权限后,使用ls命令查看文件的属性时,对应位置的“x”将变为s,表示该文件在执行时将以所有者或所属组的身份访问系统。注意,如果文件原来位置有x权限,执行该命令后其权限字符为小写s;若文件原位没有x权限,则设置权限后将显示为大写字符S。

设置SUID

例:查看passwd命令所对应的程序文件的属性信息。

[root@localhost ~]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 30768 2月 17 2012 /usr/bin/passwd

/usr/bin/passwd文件的权限是“rwsr-xr-x”,SET位权限设置在第一组,表示针对所有者用户设置,因而称为SUID。这样当其他用户执行passwd命令时,会自动以文件所有者root用户的身份去执行。

SUID仅能针对可执行文件设置,对于目录无效。

由于SUID权限会改变用户身份,这给系统带来了一定的安全隐患,因而一般不建议我们自己去设置SUID,但是系统中有不少默认已经设置了SUID权限的可执行文件,我们能了解其用途即可。

系统中常见的已经设置了SUID权限的可执行文件还包括:

[root@localhost ~]# ll /bin/su

-rwsr-xr-x. 1 root root 34904 4月 17 2012 /bin/su

[root@localhost ~]# ll /bin/mount

-rwsr-xr-x. 1 root root 76056 4月 6 2012 /bin/mount

[root@localhost ~]# ll /bin/ping

-rwsr-xr-x. 1 root root 40760 3月 22 2011 /bin/ping

例:去除/bin/ping的SUID权限:

[root@localhost ~]# chmod u-s /bin/ping

[root@localhost ~]# ll /bin/ping

-rwxr-xr-x 1 root root 37312 2009-04-24 /bin/ping

设置SGID

如果SET位权限设置在所属组所对应的第二组权限位时,那么就称为SGID。

SGID可以针对可执行文件设置,也可以针对目录设置,但是所表达的含义却截然不同:

文件:如果针对文件设置SGID,则不论使用者是谁,他在执行该程序的时候,都将以文件所属组成员的身份去执行。

目录:如果针对目录设置SGID,则在该目录内所建立的文件或子目录的所属组,将会自动成为此目录的所属组。

一般来说,SGID通常用于目录的权限设置。

例如,设置/home/test目录的所有者是student,所属组是users,权限是770,默认情况下在该目录下创建的文件的所有者和所属组都是创建者,如下所示。

[root@localhost ~]# ll -d /home/test

drwxrwx---. 2 student users 4096 12月 2 21:46 /home/test

[root@localhost ~]# touch /home/test/file1

[root@localhost ~]# ll /home/test

总用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

为/home/test目录设置SGID权限,再在目录中创建文件时,文件的所属组将被自动设置为目录的所属组users,如下所示。

[root@localhost ~]# chmod g+s /home/test

[root@localhost ~]# ll -d /home/test

drwxrws---. 2 student users 4096 12月 2 21:47 /home/test

[root@localhost ~]# touch /home/test/file2

[root@localhost ~]# ll /home/test

总用量 0

-rw-r--r--. 1 root root 0 12月 2 21:47 file1

-rw-r--r--. 1 root users 0 12月 2 21:50 file2

SUID权限在生产环境中被广泛用于协同办公。当为目录设置了SUID权限之后,所有用户在该目录中创建的文件都将属于同一个用户组,这样只要是该组的成员都将自动拥有对文件的相应权限,以方便同组成员之间的文件修改和信息交流。

Tags:责任编辑:kang1127
    1. DebianDebian镜像源大全

      本站为大家提供了常用的Debian镜像源大全免费下载,Debian是指一个致力于创建自由操作系统的合作组织及其作品,由于Debian项目众多内核分支中以Linux宏内核为主,而且 Debian开发者 所创建的操作系统中绝大部分基础...

    软件评论

    请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

        登录   注册
    猜你喜欢