linux权限归属及特殊权限设置

访问权限:
读取:允许查看内容 -read
写入:允许修改内容 -write
可执行:允许运行和切换 -excute
(以上三点rwx共同决定最终权限)
归属关系:
所有者:拥有此文件/目录的用户 -user
所属组:拥有此文件/目录的组 -group
其他用户:除所有者,所属组以外的用户 -other
所有用户:以上三类归属合称 -all

解析文件/目录权限:
权限位的8进制数表示:r,w,x分别对应4,2,1,后三组分别求和
—————————————————————————
分组 |    User权限 |    Group权限 |    Other权限|
字符 |    r  w  x  |     r  -  x  |    r  -  x  |
数字 |    4  2  1  |     4  0  1  |    4  0  1  |
求和 |       7     |        5     |       5     |
—————————————————————————

权限控制:
设置基本权限:chmod命令
格式:chomd [ugoa][+-=][rwx] 文件
chmod [nnn] 文件
常用命令选项:
-R:递归修改权限

新建文件/目录的默认权限
一般文件默认均不给x执行权限,其他取决于umask设置
[root@room1pc01 ~]# umask
0022
[root@room1pc01 ~]# umask -S
u=rwx,g=rx,o=rx (新目录755,新文件644)

————————————————————————————————————————————————————————
设置归属关系:
所有者>所属组>其他人
chown命令
格式:chown 属主 文件
      chown 属主:属组 文件
      chown :属组 文件(等效于chgrp命令。专改属组)
常用命令选项:
-R:递归修改权限
操作:
[root@room1pc01 ~]# ls -ld /nsd/
drwxr-xr-x 2 root root 4096 6月   5 13:50 /nsd/
[root@room1pc01 ~]# chown Anonymous:Anonymous /nsd/(修改为Anonymous主Anonymous组)
[root@room1pc01 ~]# ls -ld /nsd/
drwxr-xr-x 2 Anonymous Anonymous 4096 6月   5 13:50 /nsd/

[root@room1pc01 ~]# chown root:Anonymous /nsd/(修改为root主Anonymous组)
[root@room1pc01 ~]# ls -ld /nsd/
drwxr-xr-x 2 root Anonymous 4096 6月   5 13:50 /nsd/

——————————————————————————————————————————————

特殊权限
叠加于权限位的u,g,o分组之上,用来传递程序执行身份,限制目录写入权。

特殊权限分类:
  类别      字符表示   数字表示    叠加位置
Set UID        s           4       User的x位
Set GID        s           2       Group的x位
Sticky Bit     t           1       Other的x位
查看:
[root@room1pc01 桌面]# ls -ld /usr/bin/passwd
-rwsr-xr-x. 1 root root 30768 2月  22 2012 /usr/bin/passwd

Set UID
SUID权限:
占用属主(User)的x位
显示为s或S,取决于属主是否有x权限
仅对可执行的程序有意义
传递所有者身份

Set GID
SGID权限:
占用属组(Group)的x位
显示为s或S,取决于属主是否有x权限
对可执行的程序/目录有效
当其他用户执行带SGID标记的程序时,具有程序属组的身份和相应权限
在一个具有SGID权限的目录下,新建的文档会自动继承次目录的属组身份

Sticky Bit
粘滞位,
占用其他人的x位,显示为t或者T,取决于其他人是否有x权限
适用于目录,用来限制用户滥用写入权
在设置了粘滞位的文件夹下,即使用户有写入权,也不能删除或改名其他用户文档。

———————————————————————————————————————
ACL权限
EXT系列文件系统支持,
可以为个别用户,组设置独立的rwx权限
为目录设置新建子档案的默认rwx权限
查看ACL权限:
[root@room1pc01 桌面]# tune2fs -l /dev/sda2 |grep acl
Default mount options:    user_xattr acl

定义ACL控制策略
setfac命令:
格式:setfacl [选项] u:用户名:权限 文件
      setfacl [选项] g:组名:权限 文件
常用命令选项:
-m:定义一条ACL策略
-x:清除指定的ACL策略
-b:清除所有已设置的ACL策略
-R:递归设置ACL策略
-d:为目录设默认权限(子文档自动继承)

上一篇:菜鸟之路——机器学习之KNN算法个人理解及Python实现


下一篇:shell判断文件,目录是否存在或者具有权限的代码