AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1119830
Accepted
Gabriel Grinspan
Gabriel Grinspan
Asked: 2023-01-10 08:45:11 +0800 CST2023-01-10 08:45:11 +0800 CST 2023-01-10 08:45:11 +0800 CST

如何在没有 sudo/su/root 的情况下授予部分用户对 systemctl 的访问权限

  • 772

我对此有点陌生,所以我不确定去哪里看。

我可以访问一个服务器,作为一个执行有限版本 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。

我有两个问题:

  1. 我不确定如何将其转换回有效的源代码。
  2. 我担心使用 setuid 位的安全风险。
systemctl
  • 1 1 个回答
  • 26 Views

1 个回答

  • Voted
  1. Best Answer
    Rino Bino
    2023-01-10T09:04:21+08:002023-01-10T09:04:21+08:00

    目前还不清楚你想做什么作为最终目标:

    • 您是否正在尝试对自定义编译的二进制文件进行逆向工程?
    • 或者您是否试图将 systemctl 授予非 root 用户?

    其中每一个都应该作为自己单独的问题组成。

    首先,如果您正在尝试“反编译”二进制可执行文件,那么将其转回源代码并没有真正简单的答案,如果您无权访问代码或构建方法,您应该重新开始构建自定义解决方案或做一些事情否则来实现你的目标。编译后的二进制可执行文件甚至不知道它最初是用什么语言编写的,更不用说能够将自己转回源代码了。你确实有一些基本的 ELF 信息,所以也许从这里开始:https ://reverseengineering.stackexchange.com/

    其次,要回答您的主要问题:(忽略问题的逆向工程二进制文件部分),您可以使用现有的 sudoer 系统将特定的“root/sudo”命令授予非 root 用户。这是一个示例 sudoers 行:

    nancy ALL=(ALL) /usr/bin/systemctl restart nginx
    

    这允许nancy用户运行sudo systemctl restart nginx,但不允许他们使用sudo 做任何其他事情。您可以根据用例的需要扩展它,并允许用户(或组)运行不同的特定命令。

    • 1

相关问题

  • After= 选项在 systemd 服务文件中不起作用

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve