プログラムをrootとしてインストールしますが、一般ユーザー用に設定するスクリプト形式は何ですか?

プログラムをrootとしてインストールしますが、一般ユーザー用に設定するスクリプト形式は何ですか?

インストールするbashスクリプトを作成しています。そして構成いくつかのプログラム。
スクリプトを使用するにはパッケージをインストールする必要があるため、私はスクリプトをルートとして実行しています - それ自体は問題ありません(つまり、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それとも、通常のユーザーとしてサブシェルでステートメントを実行するなど、これを処理するより良い方法はありますか?

ベストアンサー1

正しい方向を教えてくれた@jordanmに感謝します。効果的な解決策を得ました。

  • 文書は以下で確認できます。info coreutil 'install invocation'

デフォルトでは、GNUコマンドはファイルを最終的な宛先に移動するときにinstallファイルを管理するためのさまざまなオプションを提供します。

一時ファイルを作成してtemp.txt実行します。

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

おすすめ記事