.debパッケージを使用して、ユーザーのホームディレクトリにコンテンツを配置します。

.debパッケージを使用して、ユーザーのホームディレクトリにコンテンツを配置します。

.debインストーラを作成していますが、ユーザーのホームディレクトリにいくつかのファイルを保存したいのですが、ユーザー名をハードコードできません。ファイルやフォルダを配置できるファイルシステムの他の場所やフォルダをそこに配置する方法を知っている人はいますか?これを行うためにpostinstスクリプトを使用したくありません。

答え1

パッケージと共にホームディレクトリにファイルをインストールしないでください。

/etc/skel代わりに、パッケージのインストール後に作成された新しいユーザーが新しく作成されたホームディレクトリにこれらのファイルをコピーするようにデフォルトの設定ファイルをインストールできます。ただし、既存のユーザーはこれらの新しいファイルを取得できません。アプリケーションが初めて実行されると、ユーザーのホームディレクトリに構成ファイルを作成できます。

全員(または特定の人)のホームディレクトリにファイルを追加したい場合は、実際に欲しいもの構成管理システム。パッケージのインストールは間違ったアプローチです。

答え2

~は、ユーザーが所有するユーザー名のユーザーフォルダーを表します。

しかし、代わりに使用することをお勧めします。/tmp使用する理由はありません~

答え3

rootユーザーとして実行する必要があるdebパッケージをインストールします。 (で説明)を
使ってSUDO_USER万水道)

したがって、正しいユーザーのホームディレクトリを取得するには、次のようにします。

USER_HOME_DIR=$(getent passwd $SUDO_USER | cut -d: -f6)
echo "User Home Dir: $USER_HOME_DIR"

端末でテストしてみてください。

sudo bash -c 'echo $(getent passwd $SUDO_USER | cut -d: -f6)'

関連情報