Linux chmod - 改变文件或目录的权限

日期: 2017-07-12         浏览量: 3144

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