【发布时间】:2011-05-28 02:11:19
【问题描述】:
如何更改我的 c 程序标识的用户?
我想自动调用的命令行工具需要以特定用户身份运行,否则将无法工作。
我尝试过使用setuid(0),但仍然没有得到想要的结果。
我要模仿的用户不是“root”,而是普通的无权限、无壳用户。我希望能够运行以用户nobody 身份登录的二进制文件。我能够使用以下方法将解决方案设置为“root”:
su -ls /bin/bash -c /binary(超级用户)
但是我希望能够实现与用户 nobody
相同的登录我有什么遗漏吗?
【问题讨论】:
-
我确信不应该有办法做到这一点。如果有,那就是操作系统中需要修复的一个主要漏洞。如果用户没有权限,你应该做的是让你的程序抱怨并退出(也许建议他们使用 sudo)
-
您真正想做的是什么?除了破坏整个系统之外,可能还有其他方法。
-
虽然重要性有限,但我只想指出,每个人都假设“特定用户”是 root。如果不是这样,我不会感到惊讶。
-
你是对的,“特定用户”不是root,而是没有分配shell的通用用户;但是我要运行的工具会检查运行它的用户是否是该特定用户。
标签: c linux permissions