以 root 身份安装程序但为普通用户配置的脚本格式?

以 root 身份安装程序但为普通用户配置的脚本格式?

我正在编写一些 bash 脚本来安装并配置一些程序。
因为脚本需要安装软件包 - 我以 root 身份运行脚本 - 这本身没有问题(即我有 root 权限等)。
但是,一旦安装了软件包,我想配置普通用户文件,理想情况下我会以普通用户身份执行此操作,因为创建的任何配置文件都将归 root 所有

示例程序片段类似于

#! /bin/bash

# Because this statement needs to be run as root - the entire script is 
# also run as root
apt-get install -y tmux

cat << EOF > ~/.tmux.conf
# 
# config stuff
#
EOF

我是否需要在脚本末尾手动将文件权限恢复给普通用户 - 这对于单个文件来说很简单,但在某些情况下可能会变得棘手。
例如添加类似的东西

chown $USER:$USER ~/.tmux.conf 
chmod 755 ~/.tmux.conf 

或者是否有更好的方法来处理这个问题 - 比如~/.tmux.conf以普通用户身份在子 shell 中执行该语句?

答案1

感谢 @jordanm 为我指明了正确的方向,我得到了一个可行的解决方案。

  • 文档可在info coreutil 'install invocation'

基本上,当您将文件移动到最终目的地时,GNUinstall命令提供了许多有关管理文件的选项。

只需创建一个临时文件temp.txt,然后运行

install temp.txt final/final.txt --owner=regular_user --mode=755

相关内容