パッケージのインストール中にフォルダの権限を変更する方法

パッケージのインストール中にフォルダの権限を変更する方法

カスタムアプリケーションをインストールするためのdebパッケージを作成しています。インストール中に警告が表示されないように、すべてのファイル/フォルダの所有権をrootに変更し、Ubuntuがファイル/フォルダの所有権をパッケージをインストールしたユーザーに変更したため、Ubuntuですべてがスムーズに機能しました。

しかし、Debianにインストールすると、ルートは依然として所有者です。アプリケーションはフォルダを使用してデータを書き込むのに問題があります。標準ユーザーとして実行されているアプリケーションには、このフォルダに書き込む権限がありません。

では、この問題をどのように処理するのですか?以下を実行する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」スクリプトを提供することでした。 「ルール」で権限を指定することを好むが、時には必要に応じて行う必要がある場合もあります。

関連情報