Linux文件权限详解

普通权限

  Linux权限注意分为读、写、执行三种控制,使用ls -l 命令查看文件或目录信息时,系统会显示为 r (读取权限)、w(写入权限)、x(执行权限),以下ls -l 显示的信息:
[root@rhel8-3 ~]# ls -l
总用量 4
-rw-------. 1 root root 1213 9月   1 16:50 anaconda-ks.cfg
-rw-r--r--. 1 root root    0 9月  14 16:14 nginx.log

第一列:第一个字符为文件类型:
- 代表普通文件
d 代表目录
l 代表链接文件
b/c 代表设备
三位一组分别为所有者权限、所属组权限、其他账户权限、rwxrwxrwx 表示文档所有者(user)、组(group)、其他账户(other)权限均为可读、可写、可执行,rwxr--r-- 表示文档所有者权限为读写执行,所属组权限为只读,其他账户权限为只读。
第二列:为链接数量或子目录个数
第三列:为文档的所有者
第四列:为文件的所属组
第五列:为容量
第六列:为最近文档被修改的月份
第七列:为文档被修改的日期
第八列:为文档被修改的时间
第九列:为文件或目录名称
对于权限的表示,除了可以使用比较直观的rwx表示外,还可以使用数字表示

数字 字符 文件 目录
4 r 查看文件内容 查看目录下的文件与目录名称
2 w 修改文件内容 在目录下增、删、改文件与目录名称
2 x 可执行、一般为程序或脚步 可以用cd命令进入该目录

数字字符文件目录4r查看文件内容查看目录下的文件与目录名称2w修改文件内容在目录下增、删、改文件与目录名称1x可执行,一般为程序或脚步可以用cd命令进入该目录

特殊权限

SUID:u+s,让进程不再属于它的发起者,而是属于程序文件本身。(suid只对二进制文件有效;调用者对该文件有执行权;在执行过程中,调用者会暂时获得该文件的所有者权限;该权限只在程序执行的过程中有效)
注:SUID仅可用在二进制文件(binary file),而且对目录无效。
SGID:g+s
SGID可以用在两个方面:
1. 文件:如果SGID设置在二进制文件上,无论用户是谁,在执行该程序的时候,它的有效用户组将会变成该程序的用户组所有者;
2. 目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。
练习题:创建共享目录/test,share组的用户对/test目录里的文件可读可写。
1、创建/test,修改属组为share
2、g+s 共享目录里面新创建的文件属组是share

sticky:o+t,不能够删除其他用户在同目录里创建的文件,可删除自己创建的文件
一般用于目录上,对文件的意义不大。sticky对目录的作用是:在具有t权限的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权利删除。sticky可以理解为防删除位。如果希望用户能够添加文件但同时不能让其他人删除文件,则可以对文件使用sticky位。设置该位后,就算用户对该文件的父目录具有写权限,也不能删除文件。
练习题:
1.创建目录/test
2.添加三个用户
3.让每一个用户在目录里面写文件
4.用户3删除1和2用户的文件
5.目录 o+t
6.重复3、4步操作,验证是否能够删除其他用户在同目录里创建的文件

隐藏权限

linux系统中除了一般权限和特殊权限外还有一种隐藏权限,默认情况下并不会被用户发现,这种可以提高linux系统的安全性。

设置方式

语法:

chattr:可以设置隐藏权限
# 语法
chattr [参数] 文件
     # “+参数”是添加隐藏权限;
     # “-[参数]”是将隐藏的权限移除。
lsattr:可以查看用户是否拥有隐藏权限。

参数描述

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

操作演示

原文地址:https://www.cnblogs.com/galsnag/p/13950638.html