我对此有点陌生,所以我不确定去哪里看。
我可以访问一个服务器,作为一个执行有限版本 systemctl 的命令,我想扩展它。
该命令的作用如下:它允许没有 sudo 权限的特定用户执行 systemctl。它只允许用户在 3 个特定服务上运行 systemctl。
我看了一下这最初是如何完成的,这个命令的创建者制作了一个可执行文件(ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux -x86-64.so.2, BuildID[sha1]=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,对于 GNU/Linux 3.2.0,已剥离)由 root 拥有并且 setuid 位为真。我尝试反编译可执行文件,它似乎只是检查用户是否是特定用户并以 root 身份运行 systemctl。
我有两个问题:
- 我不确定如何将其转换回有效的源代码。
- 我担心使用 setuid 位的安全风险。