Linux命令:文件管理--chmod--改变文件或目录的权限

 2015年03月19日    645     声明


chmod用于改变文件或目录的权限。在类UNIX系统中,文件和目录权限分为三级类: 档案拥有者权限、群组权限、其他用户权限。使用 chmod 可以设置文件或目录的读取、写入、执行,设置方式可采用文字或数字方式。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。


权限范围如下:

u(User):即文件或目录的拥有者
g(Group):即文件或目录的所属群组
o(Other):除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围
a(All):即全部的用户,包含拥有者,所属群组以及其他用户
r:读取权限,数字代号为“4”
w:写入权限,数字代号为“2”;
x:执行或切换权限,数字代号为“1”
-:不具任何权限,数字代号为“0”
s:特殊功能说明,变更文件或目录的权限


语法格式

chmod [参数] 权限模式 文件
chmod [-cfvR] [--help] [--version] mode file... 


参数

mode : 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
其中 
u 表示文件的所有者
g 表示与文件的所有者属于同一个群体(group)者
o 表示其他以外的人
a 表示所有人 
+ 表示增加权限
- 表示取消权限
= 表示唯一设定权限
r 表示可读取
w 表示可写入
x 表示可执行
X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行
-c : 若文件权限确实已经更改,才显示其更改动作 
-f : 若文件权限无法被更改也不要显示错误讯息 
-v : 显示权限变更的详细资料 
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) 
--help : 显示辅助说明 
--version : 显示版本 


Linux权限系统说明

Linux用户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信息, 都是记录在/etc/passwd文件中,每个人的密码则是记录在/etc/shadow文件中,此外,所有的组群名称记录在/etc/group文件中。

linux文件的用户权限分析,执行命令ls -l periodic.conf,显示periodic.conf文件的属性,显示结果如下:

-rw-r--r--  1 root  wheel  5021  9 10  2014 periodic.conf

第一位:- 表示文件(为d时,表示为目录)
第二、三、四位:表示文件所有者的读、写、执行权限,此例中表示:文件所有者有读和写权限,没有执行权限
第五、六、七位:表示文件所有者所在组的读、写、执行权限,此例中表示:同组用户有读权限,没有写和执行权限
第八、九、十位:表示其它的读、写、执行权限,此例中表示:其它用户有读权限,没有写和执行权限

  • r 表示读取权限,对应数字值为4
  • w 表示写入权限,对应数字值为2
  • x 表示写入权限,对应数字值为1

跟据以上权限规则:

  • 要赋予读、写、执行权限,即:rwx,则4+2+1=7
  • 要赋予读、写权限,即:rw-,则4+2=6
  • 要赋予读、执行权限,即:r-x,则4+1=5


示例

将file1设置为所有人可读

chmod ugo+r file1
或
chmod a+r file1
或
chmod a+4 file1

将file1设置为所有人可读写执行

chmod a=rwx file 
或
chmod 777 file 
将file1设置为所有者及同组用户可读写,其它用户可读写
chmod ug=rw,o=r file 
或
chmod 664 file