我在 DockerFile 中下载了 sudo
运行 yum -y update &&
yum -y install which sudo
我已经设置了 suid 位
运行 chown root:root /usr/bin/sudo 运行 chmod 4755 /usr/bin/sudo
在容器中,我看到很多设置了 suid 位的二进制文件
root@89f28b09dee0 go]# ls -la /usr/bin/* | grep rwsr
-rwsr-xr-x 1 根 73888 2019 年 8 月 9 日 /usr/bin/chage
-rwsr-xr-x 1 根 78408 2019 年 8 月 9 日 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 44264 2019 年 8 月 9 日 /usr/bin/mount
-rwsr-xr-x 1 根 41936 2019 年 8 月 9 日 /usr/bin/newgrp
-rwsr-xr-x 1 根 27856 2019 年 8 月 9 日 /usr/bin/passwd
-rwsr-xr-x 1 root root 32128 2019 年 8 月 9 日 /usr/bin/su
-rwsr-xr-x 1 根 147320 2019 年 8 月 9 日 /usr/bin/sudo
-rwsr-xr-x 1 root root 31984 2019 年 8 月 9 日 /usr/bin/umount
作为基础映像一部分的其他二进制文件可以无视
[test@89f28b09dee0 go]$ passwd 更改用户 test 的密码。更改密码进行测试。(当前)UNIX 密码:
但是 sudo 失败了
sudo sudo:有效的 uid 不是 0,/usr/bin/sudo 是在设置了“nosuid”选项的文件系统上还是在没有 root 权限的 NFS 文件系统上?[test@89f28b09dee0 去]$
互联网上的大多数搜索都说这可能是因为文件系统权限,但其他二进制文件在设置了 suid 位的同一位置工作正常。