1. 基本用法
使用权限:所有使用者
使用方式:chmod [-cfvR] [--help] [--version] mode file...
说明:Linux/Unix 的档案存取权限分为三级:档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所存取。
mode:权限设定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。
+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
-c:若该档案权限确实已经更改,才显示其更改动作
-f:若该档案权限无法被更改也不要显示错误讯息
-v:显示权限变更的详细资料
-R:对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help:显示辅助说明
--version:显示版本
范例:将档案 file1.txt 设为所有人皆可读取:
chmod ugo+r file1.txt
将档案 file1.txt 设为所有人皆可读取:
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入:
chmod ug+w,o-w file1.txt file2.txt
将 ex1.py 设定为只有该档案拥有者可以执行:
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取:
chmod -R a+r *
此外chmod 也可以用数字来表示权限如 chmod 777 file
语法为:chmod abc file
其中a,b,c 各为一个数字,分别表示User、Group、及Other 的权限。
r=4,w=2,x=1
若要rwx 属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x 属性则4+1=7。
范例:
chmod a=rwx file 和chmod 777 file 效果相同
chmod ug=rwx,o=x file 和chmod 771 file 效果相同
若用chmod 4755 filename 可使此程式具有root 的权限
2. 档案的特殊权限:SUID/SGID/Sticky Bit
1.Set UID:当文件系统的“所有者权限组合”的可执行位(x)被s(即rws------)取代时,构成特殊权限规定Set UID,简称SUID。仅对系统中的二进制可执行文件设置有效,而且不可对Shell Script 施加设置。
2.Set GID:当所有者所在的用户组(group)的权限组合中可执行位(x)被s 所取代时(例如---rws---),便构成Set GID 的权限设置。SGID 可以针对二进制文件或目录进行设置。
3.Sticky Bit:当文件系统“其他(others)”的权限组合中可执行位(x)被t 所取代时(例如------rwt),便构成Sticky Bit 的权限设置。它只对目录有效。
SUID 和SGID,主要作用是用于当非某个文件的所有者(或组)执行(或操作目录)文件时,可以暂时获得该文件所有者的权限。
SBIT 的作用在于访问控制,当它对某个目录设置此属性后,该目录下的所有文件,即使其它人有w属性,都不得对其更名、移动、删除。
设置方法:
如果你已经掌握了用(八进制)数字来表示权限的规则,再结合chmod 命令进行设置就很简单了。以下是SUID/SGID/Sticky Bit 约定对应的八进制数值:
SUID = 4
SGID = 2
SBIT = 1
设置时我们把表示特殊权限的数字放在其他三位数字权限的前面
例如:
SUID 的代表数字是4,比如4755 的结果是-rwsr-xr-x
SGID 的代表数字是2,比如6755 的结果是-rwsr-sr-x
SBIT 的代表数字是1,比如7755 的结果是-rwsr-sr-t
(当然7755 这个chmod 设置没多大意义,这里只是演示一下)
需要说明的是,四位数才是标准写法,我们通常写的3 位是后三位,例如755,系统会自己把你的755作为0755 处理的。
Hoo_h 于 2012-05-20 00:59:33发表:
收了
lxy1515720682 于 2012-04-22 16:17:47发表:
不错
kaitai502 于 2012-04-19 03:30:18发表:
学习了,谢谢
yushuyingrose 于 2012-04-16 19:41:13发表:
谢谢分享
skybuler 于 2012-04-16 16:22:53发表:
谢谢分享!
Junyi 于 2012-04-15 21:28:56发表:
顺学下
circletiger 于 2012-04-15 19:14:20发表:
学习了。希望看到更多的文章。