运维实施28-权限拓展

权限拓展

1、文件归属更改 

可以改变属主和属组

chown 命令(修改属主和/或属组)

chown [选项] 新属主:新属组 文件或目录

或(仅修改属组)
chown [选项] :新属组 文件或目录

常用选项

-R:递归处理目录及其子内容。 -v:显示操作详情

案例:同时修改属主和属组

将文件 file.txt 的属主设为 alice,属组设为 developers
chown alice:developers file.txt

案例:仅修改属主

将目录 /data 的属主设为 bob(不修改属组)
chown bob /data

案例:仅修改属组

将文件.log的属组设为 admins(等价于 chgrp)chown :admins file.log

案例:递归修改目录及其子内容

将 /var/www 目录下所有内容的属主设为 www-data,属组设为 webchown -R www-data:web /var/www

2、设置位S(SUID/SGID,针对二进制文件)

设置位S的作用

SUID(Set User ID):当普通用户执行具有SUID权限的二进制文件时,临时继承文件属主的权限(通常是root).

SGID(Set Group ID):类似SUID,但继承的是文件属组的权限。

主要针对二进制文件(命令),为了让一般使用者临时具有该文件所属主/组的执行权限.

/usr/bin/passwd 在执行它的时候需要去修改 /etc/passwd 和 /etc/shadow 等文件。

这些文件除了root外,其他用户都没有写权限,但是又为了能让普通用户修改自己的密码,该怎么办呢?

whereis 命令,主要功能就是查询某个命令所在的路径,基本语法 => whereis passwd

 普通账号 => 执行 /usr/bin/passwd => 修改/etc/shadow 文件(存放用户的密码)

/etc/shadow 文件比较特殊,其权限为(000),除root外,其他人都没有权限

/usr/bin/passwd 的SUID机制

ls -l /usr/bin/passwd​输出示例:-rwsr-xr-x 1 root root 59976 Nov 24  2022 /usr/bin/passwd

s 表示SUID已启用(属主执行位为 s 而非 x)。

=普通用户执行 passwd 时,临时获得root权限,从而修改 /etc/shadow(默认权限:-rw-r-----,仅root可写)

 添加SUID:

chmod u+s /path/to/file 符号法
chmod 4755 /path/to/file 数字法(4表示SUID,755为基本权限)

移除SUID:

chmod u-s /path/to/file 符号法
chmod 0755 /path/to/file 数字法(0表示清除特殊权限)

验证权限:

ls -1 /usr/bin/passwd  检查属主执行位是否为 `-rws`

3、沾滞位T(针对文件夹)

SBIT核心功能:在具有写权限的目录中,仅文件所有者、目录所有者或root可删除文件。

典型场景:多用户共享目录(如 /tmp),防止用户误删他人文件。

/tmp 目录的粘滞位

默认权限分析:

ls -ld /tmp​输出示例:drwxrwxrwt 10 root root 4096 Aug 30 10:00 /tmp

t 表示粘滞位已启用(其他用户执行位为 t 而非 x).

功能验证:

用户A在 /tmp 创建文件 fileA.txt

用户B无法删除 fileA.txt,除非用户B是root或文件所有者。

添加粘滞位:

chmod o+t /path/to/dir     符号法​
chmod 1777 /path/to/dir    数字法(1表示粘滞位,777为基本权限)

移除粘滞位:

chmod o-t /path/to/dir     符号法
chmod 0777 /path/to/dir    数字法(0表示清除特殊权限)

验证权限:

ls -ld /tmp                检查其他用户执行位是否为 `rwt`

注意事项

  1. 仅对目录有效:对文件设置粘滞位无意义。

  2. 权限配合:粘滞位需与目录的写权限(w)配合使用,例如 1777 表示所有用户可读写,但受删除限制。

4、ACL访问控制

ACL,是 Access Control List(访问控制列表)的缩写,在Linux系统中,ACL可实现对单一用户设定访问文件的权限。

扩展:ACL权限可以针对某个用户,也可以针对某个组。ACL优势就是让权限控制更加的精准。

传统权限的局限性:

  1. 无法为多个用户/组单独授权:例如,共享目录需要允许用户A、B、C分别读写,但又不属于同一个组。

  2. 权限继承不灵活:目录下新建文件无法自动继承复杂权限规则。

ACL 的优势:

支持为任意用户或组单独设置权限.

支持为目录设置默认权限规则(新建文件自动继承).

ACL 权限优先级

当多个规则冲突时,优先级顺序为:

用户条目 > 组条目 > 传统属主权限 > 传统属组权限 > 其他用户权限

 获取某个文件的ACL权限

基本语法:

getfacl 文件或目录名称
给某个文件设置ACL权限
setfacl【选项】文件或目录名称

选项说明:
-m:添加/修改 ACL 规则。
-x:删除 ACL 规则。
-b:删除所有 ACL 规则。
-R:递归操作目录。
-d:设置默认 ACL 规则(仅目录)。

案例:针对readme.txt文件给linuxuser设置一个权限=>可读

setfacl1 -m u:linuxuser:r readme.txt => 针对某个用户开通ACL权限

案例:针对shop文件夹给zking组设置一个权限=>可读可写权限rw

setfacl -R -m g:zking:rw shop => 针对某个用户组开通ACL权限

案例:把linuxuser用户权限从readme.txt中移除掉

setfacl -x u:linuxuser readme.txt

案例:把zking用户组权限从shop中移除掉

setfacl -x g:zking shop

案例:把readme.txt文件中的所有ACL权限全部移除

setfacl -b readme.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值