1.权限和归属

权限和归属 —— 对于文本文件
读取:R -read=4 权限:cat, less, grep, head, tail。
写入:W - write=2 权限:vim, >, >>。
执行:X -excute=1 权限:shell, python —— 只和cd命令切换到此目录下有关。
r、w、x分别对应数字4、2、1,后3组分别求和

归属关系

所有者(属主):拥有此文件/目录用户-user。
所属组(属组):拥有此文件/目录的组-group
其它用户:除所有者,所属组以外的用户-other

Linux中判断用户具备的权限

1.查看用户,顺序所有者>所属组>其他人,原则是匹配及停止
2.查看用户,对于该数据所处的身份。
3.查看相应身份的权限位。

chmod 权限命令

格式:chmod [ugoa] [+-=][rwx] 文件…
• 常用命令选项
-R:递归修改权限

  1. [root@localhost ~]# chmod u-w /nsd10 #所有者去掉W权限
  2. [root@localhost ~]# chmod u+w /nsd10 #所有者加上W权限
  3. [root@localhost ~]# chmod g+w /nsd10 #所属组加上W权限
  4. [root@localhost ~]# chmod g=r /nsd10 #所属组重新定义权限
  5. [root@localhost ~]# chmod a=rwx /nsd10 #a=所有人
  6. [root@localhost ~]# chmod -R o=--- /opt/aa #-R:递归修改权限

chown 修改归属关系

– chown 属主 文件…
– chown 属主:属组 文件…
– chown :属组 文件…
• 常用命令选项
– -R:递归修改归属关系

  1. [root@localhost ~]# chown lisi:tmooc /nsd15 #修改所有者与所属组
  2. [root@localhost ~]# chown zhangsan /nsd15 #仅修改所有者
  3. [root@localhost ~]# chown :root /nsd15 #仅修改所属组

2. 附加权限(特殊权限)

• Sticky Bit,粘滞位(Other)

– 占用其他人(Other)的 x 位
– 显示为 t 或 T,取决于其他人是否有 x 权限。注意:小写t据有x执行权限,大写T则无x权限。
– 适用于目录,用来限制用户滥用写入权
– 在设置了t权限的文件夹下,即使用户有写入权限,也不能删除或改名其他用户文档

  1. [root@localhost ~]# chmod o+t /shell #设置其他人特殊t权限。

• Set GID权限(SGID权限)(Group)

– 占用属组(Group)的 x 位.
– 显示为 s 或 S,取决于属组是否有 x 权限 注意:小写s据有x执行权限,大写S则无x权限。
– 对目录有效.
– 在一个具有SGID权限的目录下,新建的文档会自动继承此目录的属组身份 .

  1. [root@localhost ~]# chmod g+s /shell #赋予SGID特殊权限

• 附加权限SUID权限(User)

n 占用属主(User)的 x 位
n 显示为 s 或 S,取决于属主是否有 x 权限 注意:小写s据有x执行权限,大写S则无x权限。
n 仅对可执行的程序有意义
n 当其他用户执行带SUID标记的程序时,具有此程序属主的身份和相应权限

  1. [root@localhost ~]# chmod u+s /shell #赋予SUID特殊权限

3.ACL 策略

• 文档归属的局限性:
– 任何人只属于三种角色:属主、属组、其他人
– 针对特殊的人实现更精细的控制
• acl访问策略作用:
– 能够对个别用户、个别组设置独立的权限
– 大多数挂载的EXT3/4、XFS文件系统默认已支持

• setfacl 命令

格式:setfacl [选项] u:用户名:权限 文件…
setfacl [选项] g:组名:权限 文件…
• 常用命令选项
-m:修改ACL策略
-x:清除指定的ACL策略
-b:清除所有已设置的ACL策略
-R:递归设置ACL策略

  1. [root@localhost ~]# setfacl -m u:lisi:rw /shell #修改用户lisi的ACL策略,赋予权限rw
  2. [root@localhost ~]# setfacl -x u:lisi /shell #清除lisi的ACL策略。
  3. [root@localhost ~]# setfacl -b /shell #清除所有已设置的ACL策略
  4. [root@localhost ~]# setfacl -Rm u:lisi:rwx /shell/aa/ #设置lisi用户为递归rwx权限

•getfacl 查询权限

  1. [root@localhost ~]# getfacl /shell/aa #查询/shell/aa目录的权限和策略
  2. getfacl: Removing leading '/' from absolute path names
  3. # file: shell/aa
  4. # owner: root
  5. # group: root
  6. # flags: -s-
  7. user::rwx
  8. user:zhangsan:rwx
  9. group::r-x
  10. mask::rwx
  11. other::r-x