## SetUID (二进制程序权限)
>[success] 只有可以执行的二进制程序才能设定 SUID 权限
> 命令执行者要对该程序拥有 x(执行)权限
> 命令执行者在执行该程序时获得该程序文件属主的身份(在执行程序的过程中灵魂附体为文
> 件的属主)
> SetUID 权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效
```
为什么/etc/shadow
所有人都没有权限却能修改?
[root@localhost mydata]# ll /etc/passwd
-rw-r--r--. 1 root root 1220 11月 3 10:50 /etc/passwd
[root@localhost mydata]# ll /etc/shadow
----------. 1 root root 978 11月 3 10:50 /etc/shadow
因为/usr/bin/passwd
命令有特殊权限SetUID
如果取消 SetUID 权限,则普通用户就不能修改自己的密码了
[root@localhost mydata]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 4月 1 2020 /usr/bin/passwd
```
```
危险的 SetUID
[root@localhost ~]# chmod u+s /usr/bin/vim
[root@localhost ~]# ll /usr/bin/vim
-rwsr-xr-x 1 root root 1847752 4月 5 2012 /usr/bin/vim
```
>[info] 建议:
> 关键目录应严格控制写权限。比如“/”、“/usr”等;
> 对系统中默认应该具有 SetUID 权限的文件作一列表,定时检查有没有这之外的文件被设置
> 了 SetUID权限。
```
#!/bin/bash
#搜索系统中所有拥有SUID和SGID的文件,并保存到临时目录中。
find / -perm -4000 -o -perm -2000 > /tmp/setuid.check
#做循环,每次循环取出临时文件中的文件名
for i in $(cat /tmp/setuid.check)
do
#比对这个文件名是否在模板文件中
grep $i /root/suid.list > /dev/null
#如果在,不报错
if [ "$?" != "0" ]
then
echo "$i isn't in listfile! " >> /mydata/script/suid_log_$(date +%F)
fi
done
#删除临时文件
rm -rf /tmp/setuid.check
----
执行shell脚本:sh 文件名
```
- 基础
- 文档帮助
- 计算机基础知识
- Centos文件系统
- Linux基础知识入门
- Linux命令帮助文档
- 常见命令
- 其他
- vim编辑器
- 编辑命令
- 末行模式
- 常见命令
- 配置文件
- 用户useradd
- 用户login.defs
- 环境变量设置
- 常用命令
- 帮助命令
- 管道符
- 关机和重启
- 目录操作
- 目录结构
- ls
- cd
- pwd
- mkdir
- rmdir
- cp
- rm
- mv
- 文件操作
- touch
- ln 重点
- stat 重点
- file
- cat
- tac
- nl
- more
- less
- head
- tail
- 文件处理工具
- wc
- cut
- sort
- uniq
- 文件属性(权限)
- chmod
- chown
- chgrp
- umask
- sudo权限
- chattr权限
- chattr
- lsattr
- 文件特殊权限
- SetUID
- SetGID
- StickyBIT粘着位
- ACL权限
- 搜索命令
- 命令搜索whereis
- grep
- 拓展
- 元字符
- egrep
- locate
- find
- type
- 压缩和解压
- zip和unzip
- gzip和gunzip
- bzip2和bunzip2
- tar
- 网络管理
- netstat网络状态
- 消息邮件
- 软件包安装
- 源码包
- 二进制包
- rpm手工安装
- yum在线安装
- 系统管理
- 常用命令
- shell内建命令
- pstree
- bash 特性
- history 历史命令
- 补全、快捷键
- 命令行展开
- 命令执行结果
- alias命令别名
- 通配符
- 重定向及管道
- 计算机运算
- bash 中的变量的种类
- bash 的配置文件
- bash中的算术运算
- bash条件测试
- 用户和组管理
- 用户管理
- useradd
- usermod
- userdel
- passwd
- pwck
- chage
- chsh
- chfn
- id
- finger
- su
- 用户组管理
- groupadd
- groupmod
- groupdel
- gpasswd
- groups
- 用户查看
- whoami
- w
- who
- last
- lastlog
- lastb
- 网络管理
- 相关命令
- 防火墙
- 文件拷贝
- 软件工具
- 软件包管理
- Gcc软件安装
- 其他
- redis
- 相关资料
- swoole
- IDE工具
- vscode + Xdebug 断点调试
- vscode 远程链接
- git
- 不想输入账户密码
- window电脑问题
- 浏览器https访问不了
- php
- 常用函数
- rabbitMQ
- mysql
- 触发器
- 常用更新语句
- 忘记密码处理方法
- 查询
- 数据迁移
- 加索引不加锁
- 查询优化
- 基础知识
- 进程线程协程
- tp6
- 注册自定义命令空间
- Ajax异常错误
- nginx
- 域名变成ip问题
- 概念知识点
- QPS,TPS,RT概念
- Nginx服务大量TIME-WAIT
