如果外部程序编辑 sudoers 文件可以吗?

如果外部程序编辑 sudoers 文件可以吗?

我的程序在以 root 身份运行时需要一些本地环境变量来执行某些任务。编写一个可以更改用户 sudoers 以保留这些变量的子例程可以吗?它不仅会在我的个人计算机上运行,​​还会在许多用户计算机上运行。我需要的环境变量主要是 DESKTOP_SESSION 或其任何变体和 QT_X11_NO_MITSHM

答案1

/etc/sudoers编写一个在程序运行时修改系统文件(或任何其他文件)的子程序是一个糟糕的设计想法。

更优雅的解决方案是,当你为特定的 Linux 发行版(例如 RHEL/CentOS 6 和 7、Ubuntu 16 和 18)构建和打包程序时,你可以使用并安装一个配置代码片段,以/etc/sudoers.d/program-name确保在程序运行时应用您需要的特定 sudo 设置(例如保护特定的环境变量)。

相关内容