Linux学习笔记,零碎知识点整理(1) —— 运维

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 曹操wifi

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

	setfacl
	相关命令:chacl,getfacl
	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              显示本帮助信息

在本文中,我们将介绍Linux中setfacl命令的用法。这是为了记录我们在学习Linux知识点时的学习成果,以便在遗忘时进行回顾。有时候我们会遇到这样的问题:在Linux中,如何限制特定用户对指定文件或目录的权限?接下来,我们将回答这个问题。

首先,我们需要查阅setfacl命令的文档:

man setfacl

其次,我们需要清楚Linux中的权限问题:

最后,我们需要了解用户和用户组的相关内容。接下来,我将进行讲解和测试。我在Kali Linux上进行测试,除了root用户外,还有一个名为xyl的普通用户。

例如,我在root用户下创建了一个任意的sh文件,并赋予它执行权限:

chmod +x test.sh

通过查看ACL权限,我们可以获取文件的信息:

getfacl test.sh

从上面的group和other权限可以看出,用户xyl对test.sh脚本具有执行权限。为了测试,我们暂时移除xyl用户对该脚本文件的执行权限:

setfacl -x u:xyl test.sh

在设定文件访问控制列表之前,我们可以看到xyl用户具有test.sh脚本文件的执行权限。修改xyl用户的ACL访问权限后:

setfacl -m u:xyl:--- test.sh

很明显,xyl用户执行test.sh文件时受到了权限限制。

接下来,让我们来玩一个刺激的(嘿嘿,手动滑稽中~):

注意:由于Kali和Windows 10之间共享了一个文件夹,Linux无法对该文件夹中的内容进行操作,所以我们只能将音视频文件复制到Linux的其他目录下。我们选择了一张图片和一个音视频文件进行尝试,如上图所示,用户xyl可以正常打开”汉服小姐姐.jpg”和”Take me hand.flac”音视频文件。接下来:

setfacl -x u:xyl 汉服小姐姐.jpg
setfacl -x u:xyl Take\ me\ hand.flac

很自然地,xyl失去了对这些文件的使用权限!

但是很快我们会发现,这种方法只能对单个用户进行权限限制。在实际情况中,对多个用户进行限制会变得复杂。那么,有没有更简便的方式呢?当然有。我们可以将多个用户设定为同一个用户组,然后对该用户组进行限制:

setfacl -m g:groupname:--- test.sh

最后,我知道你迫不及待地想知道如何撤销对用户xyl的限制了。别着急,相信你已经阅读完前文中setfacl命令的参数介绍了,没错,有两种方式:

如果你想取消对指定文件或目录的所有ACL设定权限,可以使用以下命令:

setfacl -b test.sh

如果只想恢复指定用户对该文件的ACL权限,而保持其他组成员的权限设置不变,可以采用以下措施:

setfacl -m u:xyl:rwx test.sh

如上图所示,这样用户xyl就恢复了对这些文件的原始使用权限。

附录:

  1. Linux中Wheel用户组的概念:
  2. 如果对ACL访问控制权限还不了解,可以参考:Linux ACL访问控制权限完全攻略来进一步学习和了解。

参考文献:Linux使用手册

赞(57)