加入收藏 | 设为首页 | 会员中心 | 我要投稿 娄底站长网 (https://www.0738zz.cn/)- 科技、网络安全、业务安全、云计算、5G!
当前位置: 首页 > 服务器 > 系统 > 正文

Linux系统设置文件权限 多用户模式下文件权限处理

发布时间:2023-02-18 12:40:05 所属栏目:系统 来源:互联网
导读:为什么要给文件设置权限 首先,Linux是多用户操作系统,一台服务器,可能有开发、运维、测试等多个部门构成,同时还有有一个超级管理员root,也就是项目负责人CTO负责整个项目的进度周期。 因此,就要给每个用户分配不同权限,比如,每个用户对自己创建的文
  为什么要给文件设置权限
  首先,Linux是多用户操作系统,一台服务器,可能有开发、运维、测试等多个部门构成,同时还有有一个超级管理员root,也就是项目负责人CTO负责整个项目的进度周期。
 
  因此,就要给每个用户分配不同权限,比如,每个用户对自己创建的文件拥有最高权限,同时,开发组内用户对组内文件可以进行修改。每个操作都有日志记录。然而,开发组员工进入运维组目录,只可以观看,不可以更改。每个部门再设置一个共享目录,共享目录都不可以修改,只有将内容拷贝到自己的目录下才可以修改。
 
  这样,才可以更好的保障Linux系统的安全性,一方面防止自己内部人员危险操作,另一方面也可以防止黑客入侵,即时黑客破解了某个用户的账号密码,由于权限有限,也难以进行大规模损害操作。

  权限针对文件
 
  权限针对目录
 
  读r
 
  表示可以查看文件内容
 
  表示可以查看目录中存在的文件名称
 
  写w
 
  表示可以更改文件的内容
 
  表示是否可以删除目录中的子文件或者新建子目录(
 
  执行x
 
  表示是否可以开启文件当中记录的程序,一般指二进制文件(.sh)
 
  表示是否可以进入目录中
 
  查看文件权限
 
  Linux中,不同用户角色创建文件默认权限不同,root用户创建文件默认权限如上图所示。
 
  -代表文件类型是一个普通文件
  红框代表文件拥有者user
  绿框代表文件所属组group组内其他用户
  蓝框代表其他用户other
  如果是目录,文件类型为d
 
 
  文件类型
  Linux一共有7种文件类型,分别如下:
 
  -:普通文件
  d:目录文件
  l: 软链接(类似Windows的快捷方式)
  b:block,块设备文件(例如硬盘、光驱等)
  p:管道文件
  c:字符设备文件
  s:套接口文件/数据接口文件
  文件权限设置-字母
  复制
  chmod [选项] 权限设置 文件或目录的名称
 
  选项说明:
  -R :递归设置,针对文件夹(目录)

  权限设置:
 
  1:确认要给哪个身份设置权限,u、g、o、ugo(a)
 
  2:确认是添加权限(+)、删除权限(-)还是赋予权限(=)
 
  3:确认给这个用户针对这个文件或文件夹设置什么样的权限,r、w、x
 
 
 
  复制
  sudo chmod -R ugo=rwx AA/
  sudo chmod -R a=rwx AA/
  1.
  2.
  文件权限设置-数字
  权限
 
  对应数字
 
  意义
 
  r
 
  4
 
  可读
 
  w
 
  2
 
  可写
 
  x
 
  1
 
  可执行
 
  -
 
  0
 
  没有权限
 
  复制
  chmod 777 1.txt
  1.
 
 
  文件拥有者和所属组设置
  拥有者设置
  复制
  chown [选项] 新文件拥有者名称 文件名称
  选项说明:
  -R :代表递归修改,主要针对文件夹
 
  复制
  chown blackcat 1.txt
  
  所属组设置
  复制
  chgrp [选项] 新文件所属组名称 文件名称
  选项说明:
  -R : 代表递归修改,主要针对文件夹
 
  同时修改拥有者和所属组
  复制
  chown [选项] 文件拥有者名称:文件所属组名称 文件名称
  或
  chown [选项] 文件拥有者名称.文件所属组名称 文件名称
  选项说明:
  -R : 代表递归修改,主要针对文件夹
  
  特殊权限
  冒险位SETUID(针对二进制文件)
  作用:为了让一般使用者临时具有该文件所属主/组的执行权限。
 
  例如:/usr/bin/passwd在执行它的时候需要去修改/etc/passwd和/etc/shadow等文件,这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,那么该如何操作?
 
  去除S位权限
 
  复制
  chmod u-s /usr/bin/passwd
  或者

  添加S位权限
 
  复制
  chmod u+s /usr/bin/passwd
  或者
  chmod 4755 /usr/bin/passwd

  强制位SETGID(针对目录)
  作用:如果一个目录有强制位,那么任何用户在该目录里所创建的文件属组都会继承该目录的属组。
 
  去除S位权限
 
  复制
  chmod g-s 目录名
  1.
  添加S位权限
 
  复制
  chmod g+s 目录名
  或
  chmod 2xxx 目录名
 
  粘附位T(针对目录)
  作用:只允许文件的创建者和root用户删除文件(防止误删除权限位)
 
  去除粘附位
 
  复制
  chmod -R o-t /share
  或
  chmod -R 0777 /share
  
  添加粘附位
 
  复制
  chmod -R o+t /share
  或
  chmod -R 1777 /share
  
  umask
  umask表示创建文件时的默认权限(即创建文件时不需要设置而天生的权限)
 
  我们创建一个普通文件最高权限666,而创建一个文件夹其最高权限777。
 
  实际文件权限 = 最高权限 - umask的值
 
  获取用户umask值
  复制
  umask
 
  0022
 
  注:0022中第一位0代表特殊权限位,可以不设置。
  umask的默认值,在root和普通用户下是不一样的,分别是022和002
  
  修改umask值(一般不要更改)
  临时修改
 
  复制
  umask 002
 
  777 - 002 = 775
 
  永久修改
 
  复制
  vim ~/.bashrc
  1:在文件末尾添加umask 002
  2:保存退出
  3:新开终端生效
 
  ACL权限
  ACL,是 Access Control List(访问控制列表)的缩写,在 Linux 系统中, ACL 可实现对单一用户或者某个组设定访问文件的权限,ACL优势就是让权限控制更加的精准。
 
  安装acl
 
  复制
  apt install acl
  1.
  获取ACL权限
 
  复制
  getfacl 文件或目录名称
  1.
  设置ACL权限
 
  复制
  setfacl [选项] 文件或目录名称
 
  选项说明:
  -m : 修改acl策略
  -x : 去掉某个用户或者某个组的权限
  -b : 删除所有的acl策略
  -d : 该目录下新建的文件和目录都会继承acl策略,但已存在的没有
  -R : 该目录下已存在的文件和目录都会继承acl策略,但新建的没有
  mask :指的是用户或群组能拥有的最大ACL权限,也就是说,给用户或群组设定的ACL权限不能超过mask规定的权限范围,超出部分做无效处理。

 
  复制
  示例-给用户组增加acl权限:
  setfacl -m g:blackcat:rw 2.txt
 
  示例-给用户组删除acl权限:
  setfacl -x g:blackcat 2.txt
 
 
  
 
 
 
 

(编辑:娄底站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读