Linux 读写权限的配置

简介: Linux 读写权限的配置

Linux文件权限详解

Linux系统中不仅是对用户与组根据UID,GID进行了管理,还对Linux系统中的文件,按照用户与组进行分类,针对不同的群体进行了权限管理,用他来确定谁能通过何种方式对文件和目录进行访问和操作。


一、文件权限

  1. 文件的权限针对三类对象进行定义
    owner 属主,缩写u
    group 属组,缩写g
    other 其他,缩写o
  2. 每个文件针对每类访问者定义了三种主要权限
    r:Read 读
    w:Write 写
    x:eXecute 执行
    另 X:针对目录加执行权限,文件不加执行权限(因文件具备执行权限有安全隐患)
    注意:root账户不受文件权限的读写限制,执行权限受限制
  3. 对于文件和目录来说,r,w,x有着不同的作用和含义:
    针对文件:
 r:读取文件内容
 
 w:修改文件内容
 
 x:执行权限对除二进制程序以外的文件没什么意义
  1. 针对目录:目录本质可看做是存放文件列表、节点号等内容的文件
 r:查看目录下的文件列表
 
 w:删除和创建目录下的文件
 
 x:可以cd进入目录,能查看目录中文件的详细属性,能访问目录下文件内容(基础权限)
  1. 用户获取文件权限的顺序: 先看是否为所有者,如果是,则后面权限不看;再看是否为所属组,如果是,则后面权限不看。

二、修改文件访问权限的方法

  • chmod 修改权限 change mode
    方法1:mode法
    格式:chmod who opt per file
  who:u g o a(all)
  
  opt:+ – =
  
  per:r w x X
  • 方法2:数字法
    格式:chmod XXX file
  rwx rw- r–  
  111 110 100
  7   6   4
  
  r:4
  w:2
  x:1
  • 例:chmod 764 file 给file文件添加 rwxrw-r– 权限
    chmod -R +X dir 给dir目录添加X执行权限,dir目录下文件不添加执行权限
    (如果dir目录下有文件已具备执行权限,则添加该文件执行权限)

三、UMASK值

作用:取消对应的权限,影响创建文件和目录的默认权限

对目录:  umask+default=777(dir)
 
对文件:666-umask:观察结果,如果有奇数,奇数位+1,偶数不变

四、三种特殊权限suid、sgid、sticky(sticky权限工作环境中相对常用)

  1. suid
    作用:给一个用户继承二进制程序所有者拥有的权限
    suid权限位 位于所有者的执行权限位上,如果一个文件具有suid权限,则所有者执行位为s,文件表现为红色背景
 例:ll /usr/bin/passwd
  -rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd
 
 给file文件增加suid权限
 
  chmod u+s file
  
  chmod 4755 file               suid数字法表示为4
  1. 注: suid只适合作用在二进制程序上
  2. sgid
    作用1:给一个用户继承二进制程序所有组拥有的权限
    sgid权限位 位于所有组的执行权限位,如果一个文件具有suid权限,则所有组的执行位为s,文件表现为黄色背景
如:ll -d /tmp
  drwxrwxrwt. 17 root root 4096 Apr  4 10:02 /tmp
 
给dir目录添加sticky权限
 
  chmod o+t dir
 
  chmod 1777 dir                sticky数字法表示为1
  1. 作用2:作用在目录上时,使一个目录下的新建的文件继承目录的所属组
  2. sticky
    作用:作用于目录上,此目录的文件只能被所有者删除
    sticky权限位 位于其他的执行权限位上,如果一个文件具有sticky权限,则其他的执行位为t,目录表现为绿色背景
例:ll `which cat`
  -rwxr-sr-x. 1 root root 48568 Mar 23  2017 /bin/cat
 
给file文件增加sgid权限
 
  chmod g+s file
  
  chmod 2755 file               sgid数字法表示为2

五、ACL访问控制列表

作用:实现更加灵活的权限管理,打破了三类用户的权限管理

  1. 添加ACL权限
setfacl -m u:wang:0 file 使wang账户对指定file文件无权限
 
setfacl -m u:mage:rw file       使mage账户对指定file文件有读写权限
 
setfacl -m g:g1:rw file 使g1组对指定file文件有读写权限
 
getfacl     file                     查看指定file文件的ACL权限

ACL权限执行顺序类似于用户获取文件权限的顺序,getfacl顺序从上到下执行,一旦生效,下面的将不再生效(如果属于多个组,权限累加)


2、删除ACL权限

setfacl -x u:wang file      删除wang账户对指定file文件的ACL权限
 
setfacl -x g:g1 file   删除g1组对指定file文件的ACL权限

3、ACL权限下的mask

设置用户对指定文件所能拥有的最大权限(限高作用)
 
setfacl -m mask::r file             使指定文件file所拥有的最大权限位读r
 
setfacl -x mask::r file               取消指定文件file的最大权限限制mask
 
setfacl -b f1                      取消f1文件所有的ACL权限

ACL生效顺序:所有者、自定义用户、自定义组、其他人


4、备份和恢复ACL权限

getfacl -R /tmp/dir1>acl.txt           将dir1目录下ACL权限备份
 
setfacl -R –set-file=acl.txt /tem/dir      恢复dir1目录下ACL权限

六、文件权限操作的常用命令

  • chown 设置文件所有者(普通用户无法修改文件所有者)
  • chgrp 设置文件所属组(普通用户要想该所属组,前提是文件所有者为自己,自己在所属组中)
  • chmod 设置指定文件权限
  -R     递归
  
  –reference=f1 f2 f3        参考f1文件权限设置f2,f3文件
  • chattr 给指定文件添加保护,避免root账户误操作
  +i      锁定文件,不能删除,不能改名,不能更改内容
  
  -i      解锁+i
  
  -a     锁定文件,不能删除,不能改名,但可追加内容(追加重定向)
  
  -a     解锁+a
  
  +A    指定文件读时间atime不再更改
  • lsattr 查看指定文件是否有锁定状态
  • setfacl 设置文件ACL权限
  -m mask::r file          使指定文件file所拥有的最大权限位读r
  
  -x mask::r file            取消指定文件file的最大权限限制mask
  
  -b f1                   取消f1文件所有的ACL权限
  
  -R –set-file=acl.txt /tem/dir   恢复dir1目录下ACL权限
  • getfacl 查看文件ACL权限


目录
相关文章
|
1月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
|
13天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
30 1
linux特殊权限!!
|
5天前
|
缓存 资源调度 安全
深入探索Linux操作系统的心脏——内核配置与优化####
本文作为一篇技术性深度解析文章,旨在引领读者踏上一场揭秘Linux内核配置与优化的奇妙之旅。不同于传统的摘要概述,本文将以实战为导向,直接跳入核心内容,探讨如何通过精细调整内核参数来提升系统性能、增强安全性及实现资源高效利用。从基础概念到高级技巧,逐步揭示那些隐藏在命令行背后的强大功能,为系统管理员和高级用户打开一扇通往极致性能与定制化体验的大门。 --- ###
25 9
|
7天前
|
存储 安全 数据管理
如何在 Rocky Linux 8 上安装和配置 Elasticsearch
本文详细介绍了在 Rocky Linux 8 上安装和配置 Elasticsearch 的步骤,包括添加仓库、安装 Elasticsearch、配置文件修改、设置内存和文件描述符、启动和验证 Elasticsearch,以及常见问题的解决方法。通过这些步骤,你可以快速搭建起这个强大的分布式搜索和分析引擎。
20 5
|
21天前
|
Java Linux 网络安全
NIFI在Linux服务区上的部署配置过程是什么?
【10月更文挑战第21天】NIFI在Linux服务区上的部署配置过程是什么?
38 2
|
1月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
261 3
|
1月前
|
监控 安全 网络协议
快速配置Linux云服务器
【10月更文挑战第3天】快速配置Linux云服务器
|
1月前
|
应用服务中间件 Linux Shell
Linux 配置 Nginx 服务的详细步骤,绝对干货
Linux 配置 Nginx 服务的详细步骤,绝对干货
72 0
|
1月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
1月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky