설치할 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