chmod g+s 、chmod o+t 、chmod u+s 【转】

出处:http://blog.chinaunix.net/uid-26642180-id-3378119.html

Set uid, gid,sticky bit的三个权限的详细说明

一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组.

如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid 可以来改变这种设置.

setuid: 设置使文件在执行阶段具有文件所有者的权限. 典型的文件是 /usr/bin/passwd. 如果一般用户执行该文件, 则在执行过程中, 该文件可以获得root权

限, 从而可以更改用户的密码.

setgid: 该权限只对目录有效. 目录被设置该位后, 任何用户在此目录下创建的文件都具有和该目录所属的组相同的组.

sticky bit: 该位可以理解为防删除位. 一个文件是否可以被某用户删除, 主要取决于

该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件

但同时不能删除文件, 则可以对文件使用sticky bit位. 设置该位后, 就算用户对目录

具有写权限, 也不能删除该文件.

下面说一下如何操作这些标志:

操作这些标志与操作文件权限的命令是一样的, 都是 chmod. 有两种方法来操作,

1) chmod u+s temp — 为temp文件加上setuid标志. (setuid 只对文件有效)

chmod g+s tempdir — 为tempdir目录加上setgid标志 (setgid 只对目录有效)

chmod o+t temp — 为temp文件加上sticky标志 (sticky只对文件有效)

2) 采用八进制方式. 对一般文件通过三组八进制数字来置标志, 如 666, 777, 644等. 如果设置这些特殊标志, 则在这组数字之外外加一组八进制数字. 如

4666, 2777等. 这一组八进制数字三位的意义如下,

abc

a - setuid位, 如果该位为1, 则表示设置setuid

b - setgid位, 如果该位为1, 则表示设置setgid

c - sticky位, 如果该位为1, 则表示设置sticky

设置完这些标志后, 可以用 ls -l 来查看. 如果有这些标志, 则会在原来的执行标志位置上显示. 如

rwsrw-r– 表示有setuid标志

rwxrwsrw- 表示有setgid标志

rwxrw-rwt 表示有sticky标志

那么原来的执行标志x到哪里去了呢? 系统是这样规定的, 如果本来在该位上有x, 则这些特殊标志显示为小写字母 (s, s, t). 否则, 显示为大写字母 (S, S, T)

这三个权限的数字位可以这么理解

[[email protected] test]# 1 1 1

[[email protected] test]# rw s rws rwt

[[email protected] test]#

[[email protected] test]# SUID SGID Sticky

所以,可以得出

chmod 4777是设sid

chmod 2777是设置gid

chmod 1777是设sticky

常用操作

找出所有危险的目录(设置目录所有人可读写却没有设置sticky位的目录)

find / -perm -0007 -type d

找出所有设置了suid的文件

find / -perm -4000 -type f

补充: (angelus) 
SGID位,文件也是可以被设置为SGID的,比如一个可执行文件为赋予SGID,它就具有所有组的特权,任意存取所有组所能使用的系统资源,复制到拥有

SGID位目录的文件,只有在复制时加上-p参数,才能保留原来的组群设置

还有sticky-bit权限,简单说就是文件的其他用户即使有写权限也无法删除.移动

等,只能被文件所有者删除,移动等

在系统中典型例子就是/tmp(系统临时文件目录)避免不守法用户恣意乱删其他用户放置的文件

SUID占用属主x(执行)位,SGID占用组x位,sticky-bit占用其他x位,

如果该位有x权限,就用小写s,没有就用大写S

用数值设定特殊权限,需要4位8进制数,第一个表示特殊权限,后三位表示基本权限

只说第一位8进制代表权限

0: 不设置特殊权限 
1: 只设置sticky 
2 : 只设置SGID 
3: 只设置SGID和sticky 
4 : 只设置SUID 
5 : 只设置SUID和sticky 
6 : 只设置SUID和SGID 
7 : 设置3种权限

时间: 2024-11-03 19:07:38

chmod g+s 、chmod o+t 、chmod u+s 【转】的相关文章

【转】chmod g+s 、chmod o+t 、chmod u+s

chmod g+s .chmod o+t .chmod u+s 原文链接 http://blog.chinaunix.net/uid-26642180-id-3378119.html Set uid, gid,sticky bit的三个权限的详细说明 一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组. 如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而setuid, setgid

chattr 文件隐藏属性 / chmod u+s / chmod g+s / chmod o+t 特殊权限

chattr 文件隐藏属性 #chattr +-= 增加 减少 设定 #chattr +-a 只能追加不能删除,非root用户不能设定该属性 #chattr +-i 使文件不能被删除.重命名.设定连接.写入.新增数据. lsattr ,用来读取文件或者目录的特殊权限. #lsattr -a 连同隐藏文件一同列出 (类似 ls -a) #lsattr -R 连同子目录一同列出 #lsattr -d 只显示目录本身 #echo '1111'>dir/filee #echo '1111'>>d

Linux -- chmod

CHMOD(1)                                                           User Commands                                                           CHMOD(1) NAME       chmod - change file mode bits SYNOPSIS       chmod [OPTION]... MODE[,MODE]... FILE...      

Linux命令-chmod、chown和chgrp

Linux系统中的每个文件和目录都有访问许可权限,用它来确定谁可以通过何种方式对文件和目录进行访问和操作. 文件或目录的访问权限分为只读,只写和可执行三种.以文件为例,只读权限表示只允许读其内容,而禁止对其做任何的更改操作.可执行权限表示允许将该文件作为一个程序执行.文件被创建时,文件所有者自动拥有对该文件的读.写和可执行权限,以便于对文件的阅读和修改.用户也可根据需要把访问权限设置为需要的任何组合. 有三种不同类型的用户可对文件或目录进行访问:文件所有者,同组用户.其他用户.所有者一般是文件的

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法. Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行. 举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmod u

Linux常用命令-权限管理命令-权限管理命令chmod

命令名称:chmod 命令英文原意:change the permissions mode of a file 命令所在路径:/bin/chmod 语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录] [mode = 777] [文件或目录] -R 递归修改 功能描述:改变文件或目录的权限 权限表示的数字 r 4 w 2 x 1 rwxrw-r- 7 6 4 范例 chmod g+w tstfile 赋予tstfile文件写的权限 chmod -R 7777 testfile

chmod命令详细用法

指令名称 : chmod 使用权限 : 所有使用者 使用方式 : chmod [-cfvR] [--help] [--version] mode file... 说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者.群组.其他.利用 chmod 可以藉以控制档案如何被他人所调用. 参数 : mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...],其中 u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者

chmod,chgrp,chown命令 修改文件权限

参考地址:http://www.cnblogs.com/avril/archive/2010/03/23/1692809.html linux系统的文件和目录属性都有访问许可权限. 文件或目录的访问权限分为只读.只写和可执行三种.其中这三种权限还对用户进行区分,分别是文件或目录拥有者.同用户组用户及其他用户. 如: 一个文件或目录有十位属性,分别是: 1--文件是目录还是纯文件.若是目录的话此位为d,否则为- 2~4--文件拥有者的读.写及可执行权限.r为可读,w为可写,x为可执行. 5~7--

Linux下的chmod,chattr与lsattr使用

Linux下的chmod对文件或者目录的读,写,执行权限的修改: 查询文件或者目录的权限:ls -ld(l) /test/profile 修改用户对文件或者目录的权限:chmod u+(-)r(w)(x) /test/profile 修改用户组对文件或者目录的权限:chmod g+(-)r(w)(x) /test/profile 修改other用户对文件或者目录的权限:chmod o+(-)r(w)(x) /test/profile 也可以使用语句:chmod -R 777 /test/prof