Linux学习之文件属性chattr权限与sudo权限(十二)
Linux学习之文件属性chattr权限与sudo权限
文件属性chattr
1 | Linux文件的隐藏属性在保护系统文件的安全性上非常重要,是防止误操作的,对root用户也同样有效。<br>chattr命令只能在Ext2 / Ext3的文件系统生效。 |
设置文件属性
1 | chattr [ + - = ][选项] 文件或目录名 |
常用选项详解
1 2 | i:如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;<br>如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。<br> a:如果对文件设置a属性,那么只能在文件中增加数据,但不能删除也不能修改数据;<br>如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。 |
所有选项
1 2 3 4 5 6 7 8 9 10 | 参数 含义 A 设置A属性后,若你访问此文件或目录时,它的访问时间atime不会被修改,可避免I / O较慢的机器过度访问磁盘。这对速度较慢的计算机有帮助。 S 一般文件是异步写入磁盘,加上S属性后,文件将同步写入磁盘 a 当设置a后,文件只能增加数据,既不能删除也不能修改数据,只有root才能设置这个属性 c 设置c属性后,会自动将文件压缩,在读取时自动解压缩 d 当dump程序执行时,设置d属性将可使改文件或目录不被dump备份 i i属性可使文件不能被删除、改名,设置连接也无法写入或添加数据。对于系统安全性有很大帮助。只有root能设置此属性。 s 当文件设置s属性时,如果文件被删除,将从硬盘彻底删除 u 与s相反,当文件设置u属性时,文件删除后数据内容还存在磁盘,可以使用来找回该文件 j A file with the `j' attribute has all of its data written to the ext3 journal before being written to the file itself, if the filesystem is mounted with the "data=ordered" or "data=writeback" options. When the filesystem is mounted with the "data=journal" option all file data is already journalled and this attribute has no effect. Only the superuser or a process possessing the CAP_SYS_RESOURCE capability can set or clear this attribute. |
查看文件系统属性
1 | lsattr [选项] 文件名 |
选项
1 2 | - a 显示所有文件和目录 - d 若目标是目录,仅列出目录本身的属性,而不是子文件 |
演示
1 | 创建一个文件test<br>给test文件设置文件属性i<br>查看test文件的文件属性为i<br>不能往文件写入数据<br>不能删除文件 |
sudo权限
1 2 | root把本来只能超级用户执行的命令赋予普通用户执行。 sudo的操作对象是系统命令。 |
1 2 | 首先sudo是将root用户能使用但是普通用户没有权限使用的命令重新赋予权限,让普通用户也能使用 比如关机,重启这些命令,添加 1 新的用户,只能root用户才能使用的命令 |
设置sudo权限
1 2 3 | visudo 实际修改的是 / etc / sudoers文件 vi / etc / sudoers |
给某个用户设置sudo权限
1 2 | root ALL = ( ALL ) ALL #用户名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) |
1 2 3 4 | 第一个是普通用户。 第二个指定ip或网段,并不是远程访问过来的主机,指的是被管理的IP,就是本机IP。 等号后面是指把前面的用户当成什么身份,这里就是指root用户,我们可以不写。 最后不要写 ALL ,指定一个命令就好了,但是我们最好尽量压缩命令的使用选项,注意要写绝对路径。 |
给某个组设置sudo权限,组成员也会拥有sudo权限
1 2 | % wheel ALL = ( ALL ) ALL #%组名 被管理主机的地址=(可使用的身份) 授权命令(绝对路径) |
1 | 这里 % 是语法格式,一定要加上。 |
实际演示
1 2 3 | 授权sc用户可以重启服务器 下面例子 : sc ALL = / sbin / shutdown - r now |
1 2 3 4 5 | 普通用户执行sudo赋予的命令 su - sc #切换到sc用户 sudo - l #查看所有sudo权限 sudo / sbin / shutdown - r now #在执行这条命令的时候,还是要在前面加上sudo,这是语法格式。 |
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?