프로그램을 루트로 설치하지만 일반 사용자용으로 구성하는 스크립트 형식은 무엇입니까?

프로그램을 루트로 설치하지만 일반 사용자용으로 구성하는 스크립트 형식은 무엇입니까?

설치할 bash 스크립트를 작성 중입니다.그리고 구성일부 프로그램.
스크립트를 사용하려면 패키지를 설치해야 하기 때문에 - 저는 스크립트를 루트로 실행하고 있습니다 - 그 자체로는 문제가 없습니다(즉, 루트 권한이 있습니다 등).
그러나 패키지가 설치되면 일반 사용자 파일을 구성하고 싶습니다. 생성된 모든 구성 파일은 루트가 소유하므로 이상적으로는 일반 사용자로 이 작업을 수행합니다.

샘플 프로그램 조각은 다음과 같습니다.

#! /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

관련 정보