4.Linux权限管理
*Linux权限管理对象分为四类:
user(用户),group(组),other(其他),all(全部)
*Linux权限控制的三个动作:
read(读),write(写),x(执行)
4.1Linux权限的作用
4.1.1权限对文件的作用
r :读取文件内容(cat、more、head、tail)
w:编辑、新增、修改文件内容(vi、echo),但不包含删除文件
x:可执行
对文件来讲:最高权限是执行权限(x),所以文件要少赋予执行权限。
4.1.2权限对目录的作用
r:可以查询目录下文件名(ls)。
w: 具有修改目录结构的权限。如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切此目录下文件或目录。(touch、rm、mv、cp)。
x:可以进入目录(cd)。
对目录来讲:最高权限是写权限(w),所以目录要少赋予写权限。
4.2修改文件和目录的权限
4.2.1使用对象修改权限
使用[u、g、o、a][+、-、=]来设置文件或目录的权限[r、w、x]
u:user 所有者
g:group 所属组
o:other 其他
a:all 所有用户,包括所有者、所属组、其他
+:增加权限
-:减少权限
=:设置权限
*chmod u+x,g+r 文件或目录名
给文件或者目录的用户增加执行权限,文件或目录的所有组增加读权限
*chmod a+w 文件或目录名
给所有对象增加写权限
*chmod u-x 文件或目录名
取消用户的执行权限
*chmod g=rwx 文件或目录名
开启文件或者目录所属用户组读,写,执行该文件的权限
4.2.2使用数字修改文件
读=4,写=2,执行=1
*chmod 777 文件或目录名
开启所有人的读,写,执行的权限,每一个数字代表一个对象,功能则是所有操作所对应的数字加起来的总和。
4.3改变文件或目录的所有者
*chown 用户名 文件名
修改文件的用户
*chown 用户名:组名 文件名
修改文件的用户名和组名
4.4修改文件或目录组名
*chgrp 组名 文件名
4.5默认权限
*umask
查看默认权限,第一位的0为特殊权限号,其余对应rwx
*umask 0033
临时修改默认权限为666-033,重启后恢复
*vim /etc/profile
永久修改权限
*文件的默认权限的规则:
文件默认不能建立为执行文件,必须手工赋予执行权限
所以文件默认权限最大为666
默认权限需要换算成字母再相减
建立文件之后的默认权限,为666减去umask值
例如:
666 - 033(umask值)
-rw-rw-rw- 减去 —–wx-wx 等于 -rw-r–r– (注:空减去某权限仍为空)
*目录的默认权限规则:
目录默认权限最大为777
默认权限需要换算成字母再相减
建立文件后的默认权限,为777减去umask值
4.6 acl权限
不用考虑文件的所有者和所属组,可以给任何用户分配相应的权限,解决基本权限无法分配复杂权限的问题。
*查看acl权限
getfacl 文件名
*设置acl权限:
setfacl [option] 文件名
options:
-m 设定acl权限
给用户赋予文件(或目录)acl权限,使用"u:用户名:权限"格式
给组分配acl权限使用"g:组名:权限"格式
-x 删除指定的acl权限
-b 删除所有的acl权限
-d 设定默认的acl权限
-k 删除默认的acl权限
-R 递归设定acl权限
4.7删除acl权限
*setfacl -x u:用户名 文件名
删除指定用户的acl权限
*setfacl -x g:组名 文件名
删除指定用户组的acl权限
*setfacl -b 文件名
删除指定文件的所有的acl权限