文件权限设置(chown、chmod、setfacl、chattr)

news/2024/10/23 5:33:23/

文件权限设置(chown、chmod、setfacl、chattr)

chown (change owner):修改文件属主(owner)和属组

chown 所有者 文件名
chown 所有者:属组名 文件名

案例:chown weblogic:bea /data/info.tar
解释:修改文件info.tar的属主和属组,分别为weblogic和bea。

chmod (change mode):修改用户对文件的权限

Linux的文件调用权限分为三级 : 文件所有者(Owner,属主)、用户组(Group,属组)、其它用户(Other Users)。

每一级用户都具有r(read)、w(write)、x(execute)三种权限。

每个文件的权限字符为: -rwxrwxrwx , 这九个权限是三个三个一组的,可以使用ls -l查看每个文件的权限字符。

每种权限都对应一个分数,r=4,w=2,x=1,无权限的话为0,在权限字符中显示为’-’。

我们设定权限的变更时,每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的。

例如当权限为: -rwxrw---- 分数则是:
owner = rwx = 4+2+1 = 7
group = rw- = 4+2+0 = 6
others= --- = 0+0+0 = 0
所以,该文件的权限数字就是 770

案例:chmod 640 info.tar
解释:设置文件info.tar权限为属主读、写,属组权限为只读,其他用户无任何权限。

ACL(Access Control List, 访问控制列表)权限设置

ACL 可实现对单一用户设定访问文件的权限,适用于新加入的用户,无法放入到已有用户组中,需要对其单独分配文件权限。

setfacl 命令可直接设定用户或群组对指定文件的访问权限。

setfacl 参数 文件名
-m 设定 ACL 权限。
-x 删除指定用户(参数使用 u:用户名)或群组(参数使用 g:群组名)的 ACL 权限。
-b 删除所有的 ACL 权限。
-d 设定默认 ACL 权限。
-R 递归设定 ACL 权限,指设定的 ACL 权限会对目录下的所有子文件生效。
-k :删除默认 ACL 权限。
setfacl -m:给用户或用户组添加 ACL 权限
setfacl -m u:用户名:权限 文件

案例:setfacl -m u:oracle:rw info.tar
解释:设置oracle用户对文件info.tar的权限为读、写。

setfacl -m g:用户组名:权限 文件

案例:setfacl -m g:dea:r info.tar
解释:设置dea用户组对文件info.tar的权限为只读。

setfacl -x:删除用户或用户组的 ACL 权限

案例:setfacl -x u:oracle info.tar
解释:删除用户oracle对文件info.tar的访问权限。

getfacl 文件名:查看文件或目录当前设定的 ACL 权限信息。

chattr(chang attribute)更改文件隐藏属性

chattr +参数 文件名
i:无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a:仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S:文件内容在变更后立即同步到硬盘(sync)
s:彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A:不再修改这个文件或目录的最后访问时间(atime)
b:不再修改文件或目录的存取时间
D:检查压缩文件中的错误
d:使用dump命令备份时忽略本文件/目录
c:默认将文件或目录进行压缩
u:当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t:让文件系统支持尾部合并(tail-merging)
x:可以直接访问压缩文件中的内容

案例:chattr +i info.tar
解释:设置文件info.tar不能被所有用户删除

案例:lsattr info.tar
解释:查看文件info.tar的隐藏属性。


http://www.ppmy.cn/news/1229559.html

相关文章

C++ DAY06 c++多态

简介 一个事物的多种形态 , 简称多态 物的多态 同一个人在不同人面前展现是不同的 如 : 在我面前 在对象面前 在朋友面前 在父母面前 事的多态 吃饭 中国人 筷子 熟食 美国人 刀叉 7 分熟 日本人 筷子 生食 印度人 手 睡觉 中国人 床上 日本人 榻榻米 侧卧 平躺…

API接口接入1688电商数据平台获取商品详情数据示例

1688电商数据平台是一个提供海量商品信息的数据平台,通过API接口可以方便地获取商品详情数据。以下是一个示例,演示如何接入1688电商数据平台,获取商品详情数据。 步骤一:注册1688账号并获取API权限 首先需要在1688电商数据平台…

测试集为什么不能当做验证集使用?

测试集和验证集在机器学习中有不同的目的和用途,因此通常不应该混用。主要的原因包括: 测试集的独立性: 测试集的主要目的是评估模型在未见过的数据上的泛化性能,模型在测试集上的表现应该反映其在实际应用中的性能。如果测试集被…

java中的抽象

1.当一个类中给出的信息不够全面时,(比方说有无法确定的行为),它给出的信息不足以描绘出一个具体的对象,这时我们往往不会实例化该类,这种类就是抽象类。 2. 在Java中,我们通过在类前添加关键字…

SpringBoot2—运维实用篇

目录 打包与运行 • 程序打包与运行(Windows版) • 程序运行(Linux版) 配置高级 • 临时属性设置 • 配置文件分类 • 自定义配置文件 多环境开发 多环境开发(yaml单一文件版) 多环境开发&am…

电子秤方案:做一个宠物勺方案设计

养宠物是一件费心劳力的事情,但同时也是能够给你带来快乐和幸福感的事情。就是有时候会怕宠物毫无征兆地生病令人措手不及,所以电子秤方案设计鼎盛合科技分享一个小方案,能够及时了解到宠物的身体状况问题。 蓝牙宠物勺是一种具有记录和称重…

SpringBoot 请求参数和响应参数转换为下划线

文章目录 前言请求参数将下划线转换为驼峰响应参数将驼峰转换为下划线方式一 使用Jackson方式处理方式二 在配置文件中修改jackson.default-property-inclusion 说明jackson.property-naming-strategy 说明前言 在开发SpringBoot项目时,我们经常需要处理参数的命名规范。有时…

【报错记录】解决使用Kotlin写的SpringBoot项目使用Aspect切面无法生效的问题

前言 为了能在SpringBoot使用Kotlin,真的是各种坑都彩礼一遍,这次遇到的问题是Aspect无法对Kotlin代码生效。我这里的使用场景是使用切面切Controller中的方法,用来对接口进行一些初始化和收尾工作。 Aspect在Controller类还是Java代码的时…