gpt4 book ai didi

c - 如何在 C 代码中更改 linux 用户?

转载 作者:IT王子 更新时间:2023-10-29 00:56:37 24 4
gpt4 key购买 nike

如何更改我的 c 程序将自己标识为的用户?

我想自动调用的命令行工具需要以特定用户身份运行,否则将无法运行。

我已经尝试使用 setuid(0) 但我仍然没有得到想要的结果。

我要模拟的用户不是'root',而是一个普通的无特权、无shell 的用户。我希望能够运行以用户 nobody 身份登录的二进制文件。我能够使用以下方法将解决方案设计为“root”:

su -ls/bin/bash -c/binary( super 用户)

但是我希望能够实现与用户 nobody 相同的登录

有什么我想念的吗?

最佳答案

如果任何人都可以通过将 setuid(0); 放入他们的程序中成为 root,那么 Unix 就是 Windows。

一些想法:

  1. 从 C 运行外部命令行工具几乎总是错误的。
  2. 如果您真的需要这个命令行工具,该工具真的需要 root 权限才能工作吗?如果不是,请修复该工具(或返回到第 1 步并将该功能合并到您自己的程序中)。
  3. 如果您确实需要该工具并且它确实需要 root,请考虑为其设置 sudo 权限并通过 sudo 运行它。

考虑到您提出的非常基本的问题,您甚至不应该尝试编写将以 root 身份运行的代码,因此我省略了有关如何为您的程序设置 root 权限的任何详细信息。

关于c - 如何在 C 代码中更改 linux 用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4487112/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com