权限简介
- Linux系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。
- Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
- Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
- Linux上通常使用chmod命令对文件的权限进行设置和更改。
更改文件权限(chmod命令)
一般格式
chmod [可选项] <mode> <file...>
参数说明:
[可选项]
-c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
-f, --silent, --quiet suppress most error messages (若该档案权限无法被更改也不要显示错误讯息)
-v, --verbose output a diagnostic for every file processed(显示权限变更的详细资料)
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
--help 显示此帮助信息
--version 显示版本信息
[mode]
权限设定字串,详细格式如下 :
[ugoa...][[+-=][rwxX]...][,...],
其中
[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
[file...]
文件列表(单个或者多个文件、文件夹)
- 设置所有用户可读取文件 a.conf
chmod ugo+r a.conf
或
chmod a+r a.conf
- 设置 b.sh 只有拥有者可读写执行
chmod u+rwx b.sh
- 设置文件 a.conf 与 b.xml 权限为拥有者与其所属同一个群组 可读写,其它组可读不可写
chmod a+r,ug+w,o-w a.conf b.xml
- 设置当前目录下所有档案与子目录皆设置为任何人可读写
chomod -R a+rw *
数字权限使用格式
数字4 2 1 代表读、写、执行权限,即r=4,w=2,x=1。
rwx = 4+2+1 = 7
rw = 4+2 = 6
rx = 4+1 = 5
每个文件的偶可以针对三个粒度,设置不同的rwx(读写执行)权限。用三个8进制数字分别代表 拥有者,群组,其他组(u,g,o)的权限详情。
一般格式
chmod <abc> file...
其中
a,b,c各为一个数字,分别代表User、Group、及Other的权限。
相当于简化版的
chmod u=权限,g=权限,o=权限 file...
而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限
- 设置所有人可以读写执行
chmod 777 file (等价于 chmod u=rwx,g=rwx,o=rwx file 或 chome a=rwx file)
- 设置拥有者可读写,其他人不可读写执行
chmod 600 file (chmod u=rw,g=---,o=--- file 或 chmod u=rw,go-rwx file)