如何在不更改当前用户的情况下获得超级用户权限?

如何在不更改当前用户的情况下获得超级用户权限?

我想将我的点文件和其他配置文件(特别是在 /etc 目录中)保留在 git 存储库中。但为了在 /etc 目录中写入,git 必须以 root 身份运行。这会产生不可接受的后果 - 它将所有者和 git 触及的文件组更改为 root:root。 Git 还会更改存储库中某些文件的所有者(例如index),这使得下次无法以普通用户身份运行它。

是否可以运行具有升级权限的命令,但保留当前用户(而不是 root)作为执行该命令的用户?

答案1

处理这个问题的常见方法并不完全按照你的要求——使用 a 来管理 /etc 中的配置文件配置管理工具如安西布尔

例如,使用 Ansible,您可以将所有 playbook 存储在 git 中,并从该配置跨您的计算机群部署配置。文件的管理将以 root 身份运行,但您将以普通用户身份启动 ansible 运行。

这种在 /etc(以及操作系统上的其他位置)中管理文件的方式具有可重复性更高的额外好处(例如,您可以重新安装主机,它看起来总是一样)。它还可以管理安装了哪些软件包、正在运行哪些服务以及其他与操作系统相关的管理。

相关内容