博客
关于我
Linux学习--第八天--acl、SetUID、SetGID、chattr、lsattr、sudo
阅读量:808 次
发布时间:2023-02-03

本文共 1365 字,大约阅读时间需要 4 分钟。

ACL 权限管理

文件系统中的 ACL(访问控制列表)权限管理是一种灵活的权限分配机制,允许管理员为特定文件或目录指定访问权限,不受用户组的限制。与传统的组权限不同,ACL权限直接针对用户或组,提供更细粒度的控制。

查看分区信息

在操作 ACL权限之前,需确保文件系统支持 ACL。可以通过以下命令查看分区信息:

df -hdump2fs -h /dev/sda3

注意:-h 参数仅显示超级块信息,若需查看磁盘快组详情,请勿使用该参数。

临时设置 ACL

为特定文件或目录设置 ACL权限,可使用以下命令:

mount -o remount,acl /

此命令设置 ACL权限为临时生效,永久设置需修改 /etc/fstab 文件。

####永久设置 ACL将 ACL权限永久添加至文件系统配置中,编辑 /etc/fstab 文件:

vi /etc/fstab

在文件末尾添加以下行:

UUID=fadf-fds-adfaf-sdfa-fafdasdsadfsdf / ext4 defaults,acl

然后重新挂载文件系统:

mount -o remount /

ACL权限命令参考

选项 描述
-m 设置 ACL权限
-x 删除指定 ACL权限
-b 删除所有 ACL权限
-d 设置默认 ACL权限
-k 删除默认 ACL权限
-R 递归设置 ACL权限

示例

为用户 shiting 设置 ACL权限:

setfacl -m u:shiting:rwx /test

若需递归设置权限:

setfacl -m u:shiting:rwx -R /test

删除 ACL权限

删除特定用户或组的 ACL权限:

setfacl -x u:用户名 /testsetfacl -x g:组名 /test

删除所有 ACL权限:

setfacl -b /home/project

SetUID 和 SetGID

SetUID 和 SetGID 是 Linux 中文件和目录的特殊权限,允许普通用户执行特定任务。SetUID 让普通用户成为超级用户,SetGID 类似于 SetUID,但适用于组。

SetUID 示例

为文件或目录设置 SetUID:

chmod u:suid:u:uid /test

注意:SetUID 权力极为危险,建议谨慎使用。

chattr 命令

chattr 命令用于设置和查看文件或目录的特殊属性(attributes)。

示例

设置不可删除属性:

chattr +i /test

设置只允许增加数据属性:

chattr =a /test

查看属性

查看文件或目录的属性:

lsattr -a /test

sudo 配置

sudo 是一种常用的权限管理工具,允许普通用户执行特定的超级权限任务。

示例配置

编辑 /etc/sudoers 文件:

visudo

添加以下规则:

root ALL=(ALL) ALL%wheel ALL=(ALL) ALL

常用命令

执行特定命令:

sudo apt updatesudo useradd micu

总结

通过合理配置 ACL权限、SetUID/SetGID、chattr 和 sudo,可以有效管理文件系统权限,提升系统安全性。请谨慎操作,避免滥用权限。

转载地址:http://hqzfk.baihongyu.com/

你可能感兴趣的文章
PostgreSQL 新增数据返回自增ID
查看>>
postgresql 更新多列数据
查看>>
PostgreSQL 服务启动后停止
查看>>
PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
查看>>
PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
查看>>
Qt开发——简易调色板QPalette
查看>>
PostgreSQL-解决连接时遇到的乱码问题
查看>>
PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
查看>>
PostgreSQL9.1 双机部署配置(主备数据同步)
查看>>
Qt开发——简易网络浏览器(一)
查看>>
Qt开发——简易成绩登记系统
查看>>
Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
查看>>
Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
查看>>
SpringBoot中集成XXL-JOB分布式任务调度平台,轻量级、低侵入实现定时任务
查看>>
Postgresql中的表结构和数据同步/数据传输到Mysql
查看>>
Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
查看>>
SpringBoot中集成websocket后WebSocketServer中注入mapper为空
查看>>
postgreSQL入门命令
查看>>
PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
查看>>
Qt开发——爱情公寓人事管理系统
查看>>