Linux 文件管理命令sum setfacl getfacl chacl

文章目录

    • 2.Linux 文件管理命令
    • 2.58 sum:计算文件的校验和,以及文件占用的块数
      • 案例练习
    • 2.59 setfacl:设定文件访问控制列表
      • 案例练习
    • 2.60 getfacl:获取文件访问控制列表
      • 案例练习
    • 2.61 chacl:更改文件或目录的访问控制列表
      • 案例练习

2.Linux 文件管理命令

2.58 sum:计算文件的校验和,以及文件占用的块数

  • 作用:sum 命令显示文件的校验和及文件块数。

  • 用法:sum [选项]…[文件]

    为每个指定的文件输出校验和及块计数。

  • 主要选项如下:

    命令描述
    r使用 BSD 加和算法,以 1KB 为一个块。
    -s,--sysv使用 SystemV 加和算法,以 51 双字节为一个块。
    --help显示此帮助信息并退出。
    --version显示版本信息并退出。

如果没有指定文件,或者文件为“-”,则从标准输入读取。

案例练习

显示 hello.o 和 hello.s 文件中的校验和,以及 1024 字节块数目,请输入如下命令:

# sum hello.o hello.s 
31784 1 hello.o 
48706 1 hello.s

显示的第一个字段是校验和,第二个字段是 1024 字节块数目,第三个字段是文件名。

2.59 setfacl:设定文件访问控制列表

  • 作用:设定文件访问控制列表。

  • 用法:setfacl [-bkndRLP] { -m|-M|-x|-X … } file…

  • 主要选项如下:

    命令描述
    -m,--modify=acl更改文件的访问控制列表。
    -M,--modify-file=file从文件读取访问控制列表条目并更改。
    -x,--remove=acl根据文件中的访问控制列表移除条目。
    -X,--remove-file=file从文件读取访问控制列表条目并删除。
    -b,--remove-all删除所有扩展访问控制列表条目。
    -k,--remove-default移除默认访问控制列表。
    --set=acl设定替换当前的文件访问控制列表。
    --set-file=file从文件中读取访问控制列表条目设定。
    --mask重新计算有效权限掩码。
    -n,--no-mask不重新计算有效权限掩码。
    -d,--default应用到默认访问控制列表的操作。
    -R,--recursive递归操作子目录。
    -L,--logical依照系统逻辑,跟随符号链接。
    -P,--physical依照自然逻辑,不跟随符号链接。
    --restore=file恢复访问控制列表,和“getfacl-R”作用相反。
    --test测试模式,并不真正修改访问控制列表属性。
    -v,--version显示版本信息并退出。
    -h,--help显示帮助信息。

案例练习

(1)修改文件的 acl 权限,添加一个用户权限。

# setfacl -m u:zhangy:rw- test

(2)添加一个组。

#setfacl -m g:zhangying:r-w test

2.60 getfacl:获取文件访问控制列表

  • 作用:获取文件访问控制列表。

  • 用法:getfacl[-aceEsRLPtpndvh]文件

  • 主要选项如下:

    命令描述
    -a,--access仅显示文件访问控制列表。
    -d,--default仅显示默认的访问控制列表。
    -c,--omit-header不显示注释表头。
    -e,--all-effective显示所有的有效权限。
    -E,--no-effective显示无效权限。
    -s,--skip-base跳过只有基条目(Baseentries)的文件。
    -R,--recursive递归显示子目录。
    -L,--logical逻辑遍历(跟随符号链接)。
    -P,--physical物理遍历(不跟随符号链接)。
    -t,--tabular使用制表符分隔的输出格式。
    -n,--numeric显示数字的用户/组标识。
    -p,--absolute-names不去除路径前的“/”符号。
    -v,--version显示版本并退出。
    -h,--help显示帮助信息。

案例练习

(1)查看 acl 权限列表。

# getfacl test 
# file: test 
# owner: root 
# group: root 
user::r-x 
user:tank:rwx #effective:--- 
group::r-x #effective:--- 
mask::--- 
other::--- 

(2)查看 acl 权限,省略头信息。

# getfacl -c test 
user::r-x 
user:tank:rwx #effective:--- 
group::r-x #effective:--- 
mask::--- 
other::--- 

2.61 chacl:更改文件或目录的访问控制列表

  • 作用:更改文件或目录的访问控制列表。

  • 用法:chacl acl filename1 filename2

  • 主要选项如下:

    命令描述
    -b表明这里有两个 acl 需要修改,前一个 acl 是文件
    的 acl,后一个是目录的默认 acl。
    -d设定目录的默认 acl,这个选项是比较有用的。如果指定
    了目录的默认 acl,在这个目录下新建的文件或目录都会继承目录的 acl。
    -R只删除文件的 acl。
    -D只删除目录的默认 acl,是-d 的反向操作。
    -B删除文件和目录默认的 acl,是-b 的反向操作。
    -r递归地修改文件和目录的 acl 权限。
    -l列出文件和目录的 acl 权限。

    chacl 是用来更改文件或目录的访问控制列表的命令。其和 chmod 有异曲同工之 妙,但是比 chmod 更为强大、更为精细

chmod 只能把权限分为 3 种:用户、组、其他人。通过 chmod 可以指定文件属主的权限、 文件所在组的用户的权限,以及其他人的权限。

如果有这样的需求,通过 chmod 能搞定吗?如果 A 用户的文件只想给 B 看,通过 chmod 能不能搞定?当然读者可能认为把 A、B 放到一个组里面就可以了,但是这样就会限制了其他 用户不能加入这个组。通过 chacl 可以轻松地解决这个问题。

chacl 命令的格式如下:

chacl acl filename1 filename2 

acl 的英文是 the access control list,直译为存取控制列表。chacl 就是一个改变文件存取控 制列表的命令。

acl 是一个可以被 acl_from_text 程序分析出各用户权限的字符串,该字符串用逗号分隔成 多个片段,每个片段的形式都如 tag:name:perm。

tag 可以是下面形式的一种:

"user"(or"u")    #表示这是一个用户的 ACL 条目。
"group"(or"g")   #表示这是一个用户组的 ACL 条目。
"other"(or"o")   #表示这是其他的 ACL 条目,即没有在 ACL 指定的用户和组的 ACL 条目。
"mask"(or"m")   #表示这是一个掩码的 ACL 条目。在指定其他非用户属主的 ACL 权限时,这个掩码条目必#须被指定,否则执行 chacl 命令会出错。

name 可以是用户名或组名。如果不指定,那么默认是给文件或目录的属主或用户组指定 ACL 权限。当然,name 也可以是用户的 UID 或者组的 GID。

perm 是指该用户或组所具有的权限,它是由“rwx”组成的一个字符串。如果要使该用户 或组不具有某种权限,简单地以“-”代替指定的字母就可以了。例如“r-x”表示只具有读、 执行权限。

案例练习

# chacl u::r-x,g::r-x,o::---,u:tank:rwx,m::--- test 
# getfacl test #查看文件的 acl 权限
# file: test 
# owner: root 
# group: root 
user::r-x 
user:tank:rwx #effective:--- 
group::r-x #effective:--- 
mask::--- 
other::--- 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/5517.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Docker使用方法

Docker是一种容器化平台,它可以帮助开发人员将应用程序和其依赖项打包成一个独立的、可移植的容器,以便在不同的环境中运行。 以下是使用Docker的基本步骤: 安装Docker:首先,您需要在您的机器上安装Docker。您可以从D…

Pytorch:神经网络过程代码详解

文章目录 一、基本概念1、epoch2、遍历DataLoader 二、神经网络训练过程代码详解步骤一:选择并初始化优化器步骤二:计算损失步骤三:反向传播步骤四:更新模型参数步骤五:清空梯度组合到训练循环中步骤六:保存…

windows和mac 电脑 部署Ollama

官网地址:https://ollama.com/ github地址:https://github.com/ollama/ollama 一、windows下 https://github.com/ollama/ollama 安装大模型 ollama run llama3 下载的大模型地址: C:\Users\dengg\.ollama 4.34G

二维数组-----刷题2

题目不是傻子题目&#xff0c;但很简单&#xff01;定义一个变量k&#xff0c;在嵌套中不断累加输出即可。 #include<cstdio> int k,n; int main(){scanf("%d",&n);for(int i1;i<n;i){for(int j1;j<n;j){k;printf("%d ",k);}printf("…

Python基础学习之记录中间文件

倘若想记录代码运行过程中的结果文件&#xff0c;那么以下函数仅供参考 代码示例&#xff1a; import os import datetime import sys import pandas as pd# 定义总的文件夹路径 base_folder E:\\D\\log\\product_data_compare_log# 定义一个函数来创建带时间戳的文件夹 def…

LoRa模块在智能灌溉系统中的应用特点介绍

LoRa模块在智能灌溉系统中的应用特点主要体现在以下几个方面&#xff1a; 低功耗与长寿命&#xff1a; LoRa模块具有极低的功耗&#xff0c;使其在待机状态下耗电量极低&#xff0c;能够支持长时间连续运行&#xff0c;减少了频繁更换电池或充电的需求&#xff0c;确保了智能灌…

【Godot4.2】有序和无序列表函数库 - myList

概述 在打印输出或其他地方可能需要构建有序或无序列表。本质就是构造和维护一个纯文本数组。并用格式化文本形式&#xff0c;输出带序号或前缀字符的多行文本。 为此我专门设计了一个类myList&#xff0c;来完成这项任务。 代码 以下是myList类的完整代码&#xff1a; # …

SQL Sever无法连接服务器

SQL Sever无法连接服务器&#xff0c;报错证书链是由不受信任的颁发机构颁发的 解决方法&#xff1a;不用ssl方式连接 1、点击弹框中按钮“选项” 2、连接安全加密选择可选 3、不勾选“信任服务器证书” 4、点击“连接”&#xff0c;可连接成功

python安卓自动化pyaibote实践------学习通自动刷课

前言 欢迎来到我的博客 个人主页:北岭敲键盘的荒漠猫-CSDN博客 本文是一个完成一个自动播放课程&#xff0c;避免人为频繁点击脚本的构思与源码。 加油&#xff01;为实现全部电脑自动化办公而奋斗&#xff01; 为实现摆烂躺平的人生而奋斗&#xff01;&#xff01;&#xff…

视觉语言模型详解

视觉语言模型可以同时从图像和文本中学习&#xff0c;因此可用于视觉问答、图像描述等多种任务。本文&#xff0c;我们将带大家一览视觉语言模型领域: 作个概述、了解其工作原理、搞清楚如何找到真命天“模”、如何对其进行推理以及如何使用最新版的 trl 轻松对其进行微调。 什…

【C语言】指针篇-精通库中的快速排序算法:巧妙掌握技巧(4/5)

&#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &#x1f308;C笔记专栏&#xff1a; C笔记 &#x1f308;喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、回调函数二、快速排序(Qsort)2.1 Qsort参数部分介绍2.2 不…

报错“Install Js dependencies failed”【鸿蒙开发Bug已解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结Bug解决方案寄语项目场景: 最近也是遇到了这个问题,看到网上也有人在询问这个问题,本文总结了自己和其他人的解决经验,解决了【报错“Install Js dependencies failed”】的问题。 报错如下 问题描述 …

leetcode 92. 反转链表 II

class Solution(object):def reverseBetween(self, head, left, right):""":type head: ListNode:type left: int:type right: int:rtype: ListNode""" right right -1left left -1while( right-left>0 ):print(right-left)# 左侧节点l …

零基础玩转Linux+Ubuntu实战视频课程

零基础玩转LinuxUbuntu实战视频课程 Linux发行版之间的关系jpg 1-1课程简介及Linux学习路线介绍.mp4 1-10什么是环境变量.mp4 1-11文件系统管理.mp4 1-12用户账户管理.mp4 1-13文件的访问权限.mp4 1-14进程管理.mp4 1-15软件源码包的编译、安装与卸裁.mp4 1-16制作自己的deb软…

WRF原理与基本操作

WRF介绍 WPS是三个&#xff0c;它们协同工作&#xff0c;为真实数据模拟的输入准备输出资料,为真实数据模拟做预处理。 geogrid定义模式范围&#xff0c;将静态地形资料插值到格点 ; ungrib将气象数据从GRIB格式解码 提取气象场; metgrid将ungrib解码的气象场水平地插值到geog…

【C++语法练习】计算梯形的面积

题目链接&#xff1a;https://www.starrycoding.com/problem/158 题目描述 已知一个梯形的上底 a a a&#xff0c;下底 b b b和高 h h h&#xff0c;请求出它的面积&#xff08;结果保留两位小数&#xff09;。 输入格式 第一行一个整数 T T T表示测试用例个数。 ( 1 ≤ T …

Linux 的静态库和动态库

本文目录 一、静态库1. 创建静态库2. 静态库的使用 二、动态库1. 为什么要引入动态库呢&#xff1f;2. 创建动态库3. 动态库的使用4. 查看可执行文件依赖的动态库 一、静态库 在编译程序的链接阶段&#xff0c;会将源码汇编生成的目标文件.o与引用到的库&#xff08;包括静态库…

Open CASCADE学习|GeomFill_CurveAndTrihedron

GeomFill_CurveAndTrihedron类是GeomFill_LocationLaw的子类&#xff0c;用于定义一个位置法则&#xff08;Location Law&#xff09;&#xff0c;该法则结合了一个曲线&#xff08;curve&#xff09;和一个三面体法则&#xff08;TrihedronLaw&#xff09;。 类功能&#xff…

关于用户体验和设计思维

介绍 要开发有效的原型并为用户提供出色的体验&#xff0c;了解用户体验 (UX) 和设计思维的原则至关重要。 用户体验是用户与产品、服务或系统交互并获得相应体验的过程。 设计思维是一种解决问题的方法&#xff0c;侧重于创新和创造。 在启动期实现用户体验和设计思维时&#…

JQuery从入门到精通

目录-JQuery 1.概述............................................................. 2 2.简介............................................................. 3 3.安装............................................................. 4 4.语法............................…