一、权限的查看及读取
1.文件的权限
ls-l 文件###查看文件的权限
ls-ld 目录###查看目录权限
文件的属性被称为文件的元数据,一般有9种属性,一种属性一般大小是一个字节)
每一种属性的注释:
-|rw-r--r-- | .| 1 | |root | root| |0| Apr 12 19:57 | westos
【1】 【2】 【3】【4】 【5】 【6】 【7】 【8】 【9】
对每一位的解释:
【1】
#- 普通文件
#d 目录
#l 软连接 ln -s 文件或目录名 软连接名字##创建文件或者目录的软连接(快捷方式)
#b 快设备
#c 字符设备
#s socket套接字。 套接字指网络通讯时,对内对外用到的接口文件。
#p 管道 |
【2】 用户权限
#rw-|r--|r-- r指可读, w指可写,-指未开放权限
u g o
【3】 系统的selinux开启
【4】 文件硬链接个数,目录子目录个数
【5】 文件拥有者
【6】 文件拥有组
【7】 文件指文件大小,目录指目录中子文文件或者子目录属性大小
【8】 目录文件属性最后一次被修改的时间,文件内容最后一次被修改的时间
【9】 文件名称或者目录名称
二、普通权限的类型及作用
1.用户文件身份
u:文件的拥有者
g:文件拥有组
o:既不是文件的拥有者也不是文件的拥有组成员的其他用户通称
2.用户身份匹配优先级
user>group>other
3.权限的类型以及对于文件的功能
- ##权限未开
chmod o-(+) r 文件 ## 关闭(打开)对文件的读取权限
w 文件 ## 关闭(打开)对文件的写的权限:是否可以更改文件中的内容。
x 文件 ## 关闭(打开)对文件的执行权限:是否可以通过文件来调用文件中的程序。
chmod o-(+) r 目录 ## 关闭(打开)对文件的读取权限
w 目录 ## 关闭(打开)对文件的写的权限:是否可以更改目录中的元素,比如文件的增加、删除,文件名称。
x 目录 ## 关闭(打开)对文件的执行权限:是否可以通过目录的调用来进入目录。
三、文件的权限管理
1)用字符的方式更改权限
chomd --refernce=被复制权限的文件 复制权限的文件 ##复制一个文件的权限到另外一个权限
chmod a-(+) r 文件###关闭(打开)u,g,o对文件的读取权限
w 文件###关闭(打开)u,g,o对文件写的权限
x 文件###关闭(打开)u,g,o对文件的执行权限
chmod u-(+)r
g-(+)w
o-(+)x
ugo-(+)权限字符(r,w,x)##关闭或打开相同权限是时可以一起操作。
chmod u=r (w,x) g=-w-(r,x)o=x(r,w)##给对应位置代开或关闭权限。
u:本身 g:用户组 o:其他
2)用数字的方式来更改权限
--- 0
--x 1 x的权限等于1
-w- 2 w的权限等于2
-wx 3
r-- 4 r的权限等于4
r-x 5
rw- 6
rwx 7
5---->r-x
四、系统默认权力的设定
1)临时修改:
umask 000(每一位最大为7)###设置当前shell中的默认权力设定,不影响其他shell
2)永久修改:
/etc/profile 查看umask,可以修改系统默认设定的权限。60行
/etc/bashrc 可以修改shell中的系统默认设定权限。75行
修改后使用source指令重读/etc/profile和/etc/bashrc文件,当前shell的系统默认权限设定才得到更改。
五、系统特殊权限的设置
1)stickyid 粘滞位
#针对目录:#如果一个目录stickyid开启,那末这个目录的文件
#只能被文件所有人删除
chmod o+t 目录 ##开启stickyid权限
chomd o-t 目录 ##关闭stickyid权限
chomd 1777(1三位权限数字)目录 ##开启stickyid权限
2)sgid 强制位
针对目录: 把目录中新建的文件自动归属到目录的所属组中
设定:
chmod 2源文件权限 dir
chmod g+s dir ##只针对二进制的可执行文件(c程序),当运行二进制可执行文件时都是用文件拥有组的身份运行,和执行用户无关
3)uid 冒险位
#只针对二进制的可执行文件(c程序)
#当运行二进制可执行文件时都是用文件拥有组的身份运行,和执行用户无关
chmod u+s 命令 ##进程所有人变化
chmod g+s 命令##主组的身份发生改变
值得注意的时suid 和 sgid 的存在直接启用自己的所有人所有组的身份运行程序,把当前的身份忽略掉了
六、acl权限列表
acl__Aiccess Control Lists #访问控制列表
#功能:在列表中可以设定特殊用户对于特殊文件有特殊权限
setfacl -m u:指定用户:指定权限 /mnt/pub/ ##设定特殊用户对于特殊文件的权限s
setfacl -m g::权限 /mnt/pub(对其他组o同理)##设定自己拥有组的权限setfacl -m g::权限 /mnt/pub(对其他组o同理)
setfacl -x u:指定用户 /mnt/pub # 删除指定用户
etfacl -b westosfile ##关闭文件权限列表setfacl -b westosfile
七、 acl 权限优先级
1) 拥有者 > 特殊指定用户 > 权限更多的组 > 权限少的组 > 其他
#alc mask 控制
mask是能够赋予指定用户权限最大阀直(限定所有权限,但是不会增加)
注意:减少用户组权限的时候,例如:chmod g-w /mnt/westosfile1 其实是在减去mask的权限(由rwx-->r-x)
设定mask权限:setfacl -m m::权限 文件
2)默认权限列表的设定
设定lee用户的权限让他对于/mnt/westosdir目录rwx setfacl -m u:lee:rwx /mnt/westosdir/
#只对于/mnt/westosdir目录本身生效(只能对目录rwx)
设定lee用户的权限让他对于/mnt/westosdir目录包括里面内容rwx setfacl -Rm u:lee:rwx /mnt/westosdir/
#对于/mnt/westosdir目录已经存在的文件生效(-Rm 第归 可以对目录及已经建立的文件rwx)
----以上命令针对存在的文件生效,命令之后新建的文件没有被设定
默认权限:设定lee用户默认权限
对于/mnt/westosdir目录及内容rwx setfacl -m d:u:lee:rwx /mnt/westosdir #默认lee用户的权限后,lee用户对新建文件也直接有rwx的权限
注意:默认权限不对目录本身生效,只是为了让之后新出现的文件快捷被设定
八、attr权限
#attr权限限制所有用户(包括超级用户)
lsattr /mnt/westosdir ##查看attr权限(lsattr -l 查看目录,lsattr -ld 查看目录本身)
chattr +a /mnt/westosdir ##所有用户在目录内不能删除文件—(chattr -a dir取消限制)
chattr +i /mnt/westosdir ##所有用户在目录内不能删除不能建立文件(chattr -i dir取消权限)