SUID SGID FACL 命令

本文详细介绍了SUID和SGID权限的概念及其在Linux系统中的应用,包括如何设置这两种特殊权限,它们的风险及应用场景,并解释了Sticky位的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



SUID 运行某程序时,相应进程的属主是程序文件自身的属主,而不是启动者(启动者可以临时拥有root权限)

格式: chmod u+s FILE

chmod u-s FILE

注意: 如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)

 

 

[hadoop@zhg ~]$ cat /etc/shadow

备注:这样就可以看到了

注意: 我们发现一个文件的属主是root,又给了他SUID,这带来的风险是极大的!

如果这个文件其他人还有编辑权限就会更加麻烦,随便往里面编辑一条命令,比如rm -rf /,系统就完蛋了!

 

 

 

 

 

 

 

 

 

备注: 大家会发现默认就有s权限,因为普通用户也能该自己密码

实例: 写了一个脚本,如果需要获取系统属性,此时必须要有s权限。

以前网站后台用perl语言写的脚本都需要有s权限获取信息,这样的网站很容易被入侵。

 

 

 

 

 

 

SGID

运行某程序时,相应进程的属组是程序文件自身的属组,而不是启动者所属的基本组

格式: chmod g+s FILE

chmod g-s FILE

注意: 如果FILE本身原来就有执行权限,则SUID显示为s(小写),否则显示为S(大写)

 

 

举例:

公司内部有个开发团队develop team

有三个人hadoophbasehive,他们有共同的使用目录/tmp/project

要求三个用户都能在这个目录下创建文件

由于三个用户创建的文件都属于同一个项目,所以三个用户都能查看和编辑对方的文件。

如何来实现?

 

 

 

 

备注:这样就能实现三个用户都能查看和编辑对方的文件

注意: 现在出现一个很大问题,三个用户都能查看和编辑对方的文件

但是还能删除对方文件

[hbase@zhg project]$ rm b.hadoop

[hbase@zhg project]$ ls -l

此时应该怎么办呢?引出下面内容

Sticky

解释: 在一个公共目录,每个人都可以创建文件,删除自己的文件,但是不能删除别人的文件

格式: chmod o+t DIR(针对目录)

chmod o-t DIR(针对目录)

 

 

 

 

2.文件系统访问控制列表

 

显示结果: chown: 正在更改"a.tom" 的所有者: 不允许的操作

这怎么办呢?这就体现了文件系统访问控制列表的意义了

 

FACL Filesystem Access Control List

意义: 利用文件扩展属性,保存了额外的访问控制权限

setfacl:设置facl

-m:设定额外权限

格式: -m u:UID:perm //设定用户为perm权限

-m g:GID:perm //设定组为perm权限

-m d:u:UID:perm //主要针对目录操作,将目录扩展权限向下继承

-m d:g:GID:perm //主要针对目录操作,将目录扩展权限向下继承

-x:取消额外权限

格式: -x u:UID

-x g:GID

getfacl:获取facl

 

 

 

 

 

 

 

 

另一案例:设置用户hadoop对文件inittab读写权限

 

 

 

取消权限:

1.取消用户权限

 

2.取消组权限

 

 

 

 

 

 

 

 

 

 

YUM仓库的搭建

a.本地YUM

 

 

 

[root@node1 yum.repos.d]#vim CentOS-Media.repo

 

[c6-media] //中括号中的内容不能有空格

name=CentOS-$releasever - Media

baseurl=file:///mnt/ //YUM仓库的软件从什么地方提供

#file:///media/cdrom/

    #file:///media/cdrecorder/

gpgcheck=0 //是否验证软件包。0不验证,1验证

#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

enabled=1

 

 

 

 

mv

功能: 移动。重命名

备注: 只有在同一个目录下移动的时候,才能实现重命名的功能

举例: mv CentOS-Base.repo CentOS-Base.repo.bak

[root@node1 yum.repos.d]# ls

 

<think>嗯,用户之前问过如何设置SUID权限,现在又想知道如何查找所有SUIDSGID文件的命令。这说明他们可能在进行系统安全审计或者管理,需要检查系统中的特殊权限文件,确保没有不当的权限设置。 首先,我需要回忆Linux中查找文件的命令,find是常用的工具。SUIDSGID对应的权限位分别是40002000,所以使用find的-perm选项。用户可能需要知道基本命令,以及如何处理权限组合,比如精确匹配或者包含这些位的文件。 然后,用户可能不仅需要命令,还需要解释每个参数的意义,比如-type f表示只找普通文件,排除目录等。另外,权限参数中的-4000-2000,或者/u+s/g+s的区别是什么,可能需要说明符号表示法数字表示法的不同。 还要考虑用户可能的权限问题,比如普通用户运行find时可能遇到权限拒绝的错误,所以2>/dev/null来忽略错误信息是常用的技巧,需要包含在命令中。 另外,用户可能想知道如何分开查找SUIDSGID,或者同时查找两者,所以给出不同的命令示例会更好。比如分开查找的命令,以及同时查找的命令,还有如何组合使用-perm参数。 可能还需要提醒用户注意安全风险,定期检查这些文件,删除不必要的SUID/SGID设置,或者使用审计工具如auditd来监控。同时,提到替代方案如Capabilities,但用户当前的问题是查找命令,所以这部分可以简略。 还要考虑用户的使用场景,比如在脚本中使用这些命令,或者手动检查,因此命令的可读性准确性很重要。可能需要解释输出结果,比如权限中的sS的区别,以及如何处理无效的SUID/SGID文件。 总结下来,用户需要清晰、准确的命令,以及相关的解释注意事项,帮助他们有效管理系统中的特殊权限文件,确保系统安全。</think>--- ### SUID/SGID 文件查找命令详解 #### 一、核心命令模板 ```bash # 查找 SUID 文件(权限位含 4000) find / -perm -4000 -type f -exec ls -l {} \; 2>/dev/null # 查找 SGID 文件(权限位含 2000) find / -perm -2000 -type f -exec ls -l {} \; 2>/dev/null # 同时查找 SUID SGID 文件 find / \( -perm -4000 -o -perm -2000 \) -type f -exec ls -l {} \; 2>/dev/null ``` --- #### 二、命令参数解析 | 参数组合 | 功能说明 | |--------------------|------------------------------------------------------------------------| | `-perm -4000` | 匹配 **精确包含 SUID** 的文件(八进制模式) | | `-perm -2000` | 匹配 **精确包含 SGID** 的文件 | | `-perm /u+s` | 符号模式匹配 SUID(`/` 表示包含即触发) | | `-perm /g+s` | 符号模式匹配 SGID | | `-type f` | 仅搜索普通文件(排除目录特殊文件) | | `2>/dev/null` | 屏蔽权限错误提示(建议普通用户使用时添加) | | `-exec ls -l {} \;`| 显示文件详细信息 | --- #### 三、典型应用场景 ##### 1. 快速安全检查 ```bash # 查找所有 SUID 的可执行文件(危险操作监控) find /usr/bin /usr/sbin -perm -4000 -ls 2>/dev/null # 查找 /var 目录下的 SGID 文件(共享目录审计) find /var -perm -2000 -type f 2>/dev/null ``` ##### 2. 权限组合过滤 ```bash # 查找同时设置 SUID SGID 的文件(罕见高危对象) find / -perm -6000 -type f 2>/dev/null # 查找其他用户可写的 SUID 文件(重点风险目标) find / -perm -4002 -type f 2>/dev/null ``` --- #### 四、输出结果解读 **示例输出**: ``` -rwsr-xr-x 1 root root 30836 Aug 21 2023 /usr/bin/passwd -rwxr-sr-x 1 root ssh 147144 Jan 10 2024 /usr/bin/ssh-agent ``` - **s 字符位置**: - 第4字符 `s`:SUID(用户权限位) - 第7字符 `s`:SGID(组权限位) - **大写 S**:表示对应的执行位(x)未设置(权限配置错误) --- #### 五、安全建议 1. **定期扫描**(推荐每周执行): ```bash # 生成 SUID/SGID 文件清单 find / -path /proc -prune -o -type f \( -perm -4000 -o -perm -2000 \) -ls > suid_sgid.log ``` 2. **异常处理流程**: - 确认文件是否必需设置特殊权限 - 使用 `chmod u-s/g-s` 清除可疑权限 - 检查文件完整性(md5sum 比对) 3. **高级防护**: ```bash # 使用 auditd 监控权限变更 sudo auditctl -w /usr/bin -p wa -k suid_modification ``` --- #### 六、替代方案对比 | 方法 | 优点 | 缺点 | |--------------------|--------------------------|--------------------------| | `find` 命令 | 原生支持,灵活性强 | 需要记住权限码 | | `ls -l` 遍历 | 可视化检查方便 | 效率低,不适合大批量 | | **Rkhunter** 工具 | 集成恶意文件检测功能 | 需额外安装 | | **Lynis** 审计套件 | 提供修复建议 | 扫描范围不可定制 | --- 通过以上命令可快速定位系统中的特殊权限文件,建议配合 `cron` 定时任务实现自动化安全检查。发现未知 SUID/SGID 文件时,应优先通过软件包管理器验证文件来源(例如使用 `dpkg -S` 或 `rpm -qf`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值