计算机资源

计算机硬件资源和软件资源

文件权限分类

普通权限,高级权限,默认权限

普通权限系统

读权限:r(read)= 4
写权限:w(write) = 2
执行权限:x(exectue)= 1
无权限:- () = 0

用户身份(UGO)

U:文件的拥有者
G:文件组的用户
O:既不是创建者也不是组内用户,表示other
a:所有用户
文件系统一般使用三组权限发挥文件控制,如:drwxr-xr-x ( d U: [rwx] G:[r-x] O: [r-x] )

修改文件权限

  1. chmod [选项] 模式 文件名
  2. -R 递归

字母形式

  1. chmod o+w file1 #file1文件其他用户增加w权限
  2. chmod u=rwx file1 #拥有者设置所有权限
  3. chmod rwxrwxrwx file1 #所有人所有权限
  4. chmod u=rwx,g-x,o=- file1 #设置多用户身份权限
  5. chmod a=rwx file2

数字形式

  1. chmod 777 file1 #file设置rwxrwxrwx权限

修改文件属主和属组

chown命令

  1. chown 用户名 文件名 #只修改文件属于谁
  2. chown 用户名.组名 文件名
  3. chown 用户名:组名 文件名
  4. chown 用户名. 文件名 #默认主组
  5. chown .组名 文件名 #只修改组
  6. chown :组名 文件名 #只修改组
  7. -R 表示递归

chgrp命令

  1. chgrp 组名 文件名 #只能修改属组

高级权限系统

冒险位(SETUID)

文件操作者临时拥有文件拥有者的权限,一般针对的是命令或者脚本,冒险位使用s/S或者数字4

  1. chmod u+s 文件名
  2. chmod 4xxx 文件名
  3. chmod u+S 文件名 #S表示原来没有执行权限

强制位(SETGID)

一般针对目录,如果一个目录拥有强制位,那么任何用户在该目录里面创建的任何文件的属组都会继承该目录的属组
使用字母s/S表示,数字表示是2

  1. chmod g+s 文件名
  2. chmod 2xxx 文件名

粘滞位(STICKY)

一般针对公共目录,目录下的文件只有root和文件的拥有者可以删除,其他人只能自己管理自己的文件和文件夹,使用t/T表示 数字表示1

  1. chmod o+t 文件名
  2. chmod 1xxx 文件名

文件默认权限

文件创建后自动拥有的权限,不需要设置

临时控制

文件目录最大权限:0777
文件最大权限:0666
umask = 文件最大权限 - 文件默认权限
推出 -> 文件默认权限 = 文件最大权限 - umask
补充:实际权限不能有负数,文件创建默认不可能有执行权限

  1. umask #查看当前用户的默认权限
  2. umask 0007 #设置默认权限为0007

image.png

永久控制

  1. ##全局配置
  2. /etc/profile ##系统和用户环境变量设置
  3. /etc/bashrc ## 每个运行的bashrc
  4. ## 局部变量
  5. ~/.bashrc ## 当前用户bash
  6. ~/.base_profile ## 当前用户环境变量
  7. ~/.bash_history ## 当前用户历史命令文件
  8. ~/.bash_logout ## 当用户退出会自行文件中的代码再退出
  9. ## 全局和局部生效
  10. bashrc中新增 umask 0007

ACL访问控制策略

ACL对权限控制的一种补充,更加细的控制文件的权限,可以只针对某个用户也可以针对组或者多个用户

  1. setfacl
  2. -m #修改ACL策略
  3. -R #递归授权
  4. -X #去掉某个用户或者某个组的权限
  5. -b #删除所有的ACL策略
  6. -d #默认ACL策略,针对目录,该目录下的文件都会继承ACL策略
  7. mask #定义其他用户和所有者以外的最大权限
  8. setfacl -m u:用户名:rwx /home/xxx ##单个用户独加权限
  9. setfacl -m g:组 rwx 文件名 ## 给组加权限
  10. getsfacl 文件名 ##获取ACL策略