Linux 中的文件权限(基础权限+高级权限)

一、基本权限

在 CentOS 7 中,文件和目录的权限由三组权限位来控制,分别代表了文件所有者(u)同一组用户(g)其他用户(o)的权限。

  • u:代表文件或目录的所有者(user)
  • g:代表与文件或目录属于同一组的用户(group)
  • o:代表其他用户(others),即既不是所有者也不属于同一组的用户
  • r(read):读取权限,对应数字 4
  • w(write):写入权限,对应数字 2
  • x(execute):执行权限,对应数字 1

执行权限x的效果:将sh文件内每一行放在命令行执行

例如:

d rwx r-x r-x

该目录文件的

所有者(u) 有读r、写w、执行x权限

同一组的用户(g) 有读r、执行x权限

其他用户(o) 有读r、执行x权限

chmod 777 文件名:给文件赋最大权限

(1+2+4=7)

二、高级权限

分类:

  1. suid ==== 4 提权 (只对二进制命令文件生效,其他不管用)
  2. sgid ==== 2 组继承 (只能对目录设置)
  3. sticky == 1 (t权限) 权限控制

一、命令提权(Set UID)

(一)作用:执行者将具有该程序拥有者(owner)的权限.

***只对二进制命令文件生效,其他不管用!!

(二)语法:chmod u+s 命令路径

***提权后的命令,可以给除owner外的其他用户使用,且使用效果和owner用户使用时一样!!

(三)使用实例:

1.root用户下使用chmod u+s 给touch命令提权

2.从root用户切换到其他用户(如alan),并使用touch命令,在/root目录下创建文件(/root目录没有给其他组任何权限),可以创建成功

3.再次切换到root用户下时,发现alan用户使用touch创建的文件,创建者是文件的拥有者root,而不是alan

二、组继承权限(GID)

(一)作用:把s放到文件的所属用户组的x位置上的话,就是SGID。SGID是获得该程序所属用户组的权限。

SGID主要用在目录上:如果用户在此目录下具有w权限的话,使用者在此目录下建立新文件,则创建的这个文件的群组与此目录的所属群组相同。

(二)语法:chmod g+s 目录路径

(三)使用实例:

1.目录/A的所属组为QF2403,使用chmod g+s /A 给/A目录添加组继承权限

2.切换至alan用户,并在/A目录下创建文件。文件所属组与/A目录的所属组一致。

3.切换到root用户,在/A下创建一个目录,目录的所属组也与/A的所属组一致。

三、Sticky Bit(T权限)

针对others用户设置,只针对目录有效。

(一)作用:当用户在该目录下进行操作时,仅自己与 root才有权力删除(防止误删除)。

(二)语法:chmod o+t 目录路径

(三)使用实例:

1.给/A目录的o用户赋予t权限

2.分别切换至alan用户和tom用户,各自在/A目录下创建一个文件

3.当使用alan用户时,无法删除tom用户创建的文件;使用tom用户时,无法删除alan用户创建的文件。

四、使用sudo给普通用户提权

允许普通用户以其他用户的身份执行命令,通常是超级用户(root)。它提供了一种安全的方法来授权普通用户执行特权操作,而无需完全切换到超级用户。

(一)用法:

1.visudo 修改配置文件,给指定用户赋权

配置解释:

第一列:root 表示要提权的用户名

第一个 ALL :指示允许从任何终端、机器访问 sudo

第二个 (ALL) :指示 sudo 命令被允许以任何用户身份执行

第三个 ALL :表示所有命令都可以作为 root 执行

NOPASSWD:表示使用sudo时不需要输入该用户的密码

2.给alan用户赋权后,切换至alan,使用sudo调用root的useradd命令,创建用户,创建成功,效果等同于使用root创建。

五、文件属性 chattr

(一)作用:隐藏权限,防止root误删除

(二)参数详解:

i:即Immutable,系统不允许对这个文件进行任何的修改

a:即Append Only,系统只允许在这个文件之后追加数据,不允许任何覆盖或截断这个文件

A:即Atime,告诉系统不要修改对这个文件的最后访问时间

#设置权限

[root@linux-server ~]# chattr +a file1 #不允许修改,只允许追加

[root@linux-server ~]# chattr +i file2 #不允许做任何操作

[root@linux-server ~]# chattr +A file3 #不修改文件最后访问时间

[root@linux-server ~]# lsattr file1 file2 file3 #查看文件的attr权限

-----a---------- file1

----i----------- file2

-------A-------- file3

(三)使用实例:

1.使用 chattr +i 文件路径 给文件赋予 i 权限,限制root的删除权限

2.使用 chattr +a 文件路径 给文件赋予 a 权限,使文件仅可以追加和查看,不能修改(覆盖/vim)和删除

3.使用 chattr +A 文件路径 给文件赋予A权限,固定文件的最后访问时间

**在系统中有一个system用户的级别高于root!!

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值