草庐IT

c++ - 一种更改正在运行的程序的有效用户 ID 的方法?

我正在编写一个简单的包管理器,如果程序不是以root身份运行,我想自动尝试sudo。我找到了一个名为seteuid的函数,这看起来正是我所需要的,但我没有运行它的权限。到目前为止,我能想到的只是一个bash脚本,以便在它们到达实际的二进制文件之前进行检查,但如果可能的话,我想将所有这些都作为C++来完成。有什么方法可以在进程开始执行后更改其euid吗?或者调用sudo的方法? 最佳答案 以下是这些函数的工作原理。如果程序有setuid位,它将以其所有者身份执行。一旦执行,它可以调用seteuid以原始用户而不是其所有者的身份运行。s

c++ - 一种更改正在运行的程序的有效用户 ID 的方法?

我正在编写一个简单的包管理器,如果程序不是以root身份运行,我想自动尝试sudo。我找到了一个名为seteuid的函数,这看起来正是我所需要的,但我没有运行它的权限。到目前为止,我能想到的只是一个bash脚本,以便在它们到达实际的二进制文件之前进行检查,但如果可能的话,我想将所有这些都作为C++来完成。有什么方法可以在进程开始执行后更改其euid吗?或者调用sudo的方法? 最佳答案 以下是这些函数的工作原理。如果程序有setuid位,它将以其所有者身份执行。一旦执行,它可以调用seteuid以原始用户而不是其所有者的身份运行。s

python - 以 Root 身份执行 Python 脚本(seteuid 与 c-wrapper)

我在python脚本中有一个快速的一次性任务,我想从Django(www用户)调用它,这将需要root权限。起初我以为我可以使用Python的os.seteuid()并在脚本上设置setuid位,但后来我意识到我必须在Python本身上设置setuid位,我认为这很重要不不.据我所知,如果使用sudo也会出现这种情况,我真的很想避免这种情况。在这一点上,我正在考虑只编写一个使用seteuid的C包装器并以root身份调用我的python脚本,将必要的参数传递给它。这是正确的做法还是我应该看看别的东西? 最佳答案 sudo在Pytho