0

所以我正在编写一个接近初始版本的包管理器。考虑以下代码流:

# Some code that needs root privalages. Database syncing, etc.
...
...
# Building packages. *Does not require root.* 
# In fact, this is a call to a child process through the shell and it will complain if called by root.
...
...
# Copying built packages to root-owned locations. Needs root.
# Installing packages. Needs root.

我希望最初能够使用 sudo 运行程序,因为上面的复制部分是在本机代码中完成的,如果整个程序没有以 root 权限开始运行,则会失败。但是,构建过程不需要以root身份完成。我的问题本质上是,在调用进行构建的子进程之前,是否有办法“拒绝”或“停止”根权限?它需要采用这样一种方式,即当控制权返回父级时,根状态仍然有效,以便实际安装不受阻碍地进行。

请提前致谢。

此外,这里是任何人感兴趣的回购。

4

1 回答 1

0

所以看起来,当一个程序用 sudo 运行时,会创建环境变量 SUDO_USER。通过阅读,我可以使用su -c.

于 2012-06-12T22:18:03.540 回答