패키지 설치 중 폴더 권한을 변경하는 방법

패키지 설치 중 폴더 권한을 변경하는 방법

사용자 정의 응용 프로그램을 설치하기 위해 deb 패키지를 만들고 있습니다. 설치 중에 경고가 표시되지 않도록 모든 파일/폴더의 소유권을 루트로 변경했으며 Ubuntu가 파일/폴더의 소유권을 패키지를 설치한 사용자로 변경하기 때문에 Ubuntu에서 모든 것이 원활하게 작동했습니다.

하지만 데비안에 설치할 때 루트는 여전히 소유자입니다. 응용 프로그램은 폴더를 사용하여 데이터를 쓰는데 거기에 문제가 있습니다. 표준 사용자로 실행되는 애플리케이션에는 이 폴더에 쓸 수 있는 권한이 없습니다.

이제 이 문제를 어떻게 처리해야 할까요? 다음을 수행하는 deb 패키지에 설치 후 스크립트를 만들어야 합니까 chmod o+w? 이미 이러한 권한이 설정된 디렉터리를 패키지해야 합니까?

아니면 (Ubuntu처럼) 응용 프로그램을 자동으로 설치한 사용자에게 파일 소유자를 설정하는 방법이 있습니까?

답변1

Ubuntu에서 동작이 무엇인지 잘 모르겠지만 일반적으로 .deb비표준 권한이 있는 파일이나 디렉터리가 포함된 패키지의 경우 해당 권한이 설정되어 있는지 확인해야 합니다.뒤쪽에 dh_fixperms달리기. dh-style을 사용하면 rules다음과 같이 이를 수행할 수 있습니다.

override_dh_fixperms:
        dh_fixperms
        chmod 777 yourfolder

또는

execute_after_dh_fixperms:
        chmod 777 yourfolder

다음 사이트에서도 이 작업을 수행할 수 있습니다 postinst.

if [ "$1" = "configure" ]; then
    chmod 777 yourfolder
fi

하지만 rules방법은 더 간단합니다. (적어도 유지관리자 스크립트에 의존하는 것보다 이 방법을 선호합니다.)

답변2

제가 댓글을 달 자격이 없어서 다른 답변을 드리겠습니다.

dh_installdirs를 사용하여 디렉토리를 생성했지만 "override_dh_fixperms" 또는 최신 "execute_after_dh_fixperms" 규칙이 작동하도록 할 수 없습니다. "https://manpages.debian.org/testing/debhelper/dh.1.en.html"에 따라 "debian/<package_name>/path/to/dir"을 포함한 다양한 경로를 시도했습니다.

궁극적으로 유일하게 효과가 있었던 것은 "postinst" 스크립트를 제공하는 것이었습니다. "규칙"에서 권한을 지정하는 것을 선호하지만 때로는 원하는 대로 수행해야 하는 경우도 있습니다.

관련 정보