/home/user にファイルをインストールするための Debian パッケージの作成方法

/home/user にファイルをインストールするための Debian パッケージの作成方法

私はDebianパッケージを作成し、/home/user/myapp代わりにこのディレクトリにファイルをインストールしたいと思います。/usr/bin

しかし、debをインストールした後、所有者/home/user/myappはrootです。

debをインストールした後、所有者がユーザーになりたいので、postinstを追加してポストアクションを実行します。

#postinst
chown -R user /home/user/myapp

ただし、常に「chown:...操作は許可されていません」というエラーが発生します。

どんなアイデアがありますか?

答え1

全体的なよりDebian パッケージは、システム全体のソフトウェアをインストールするために使用されます。考えてみてください。複数のユーザーがこのパッケージを自分の/home/user/myappゾーンにインストールする場合は、パッケージマネージャに何が表示されるべきですか?

ホームディレクトリにインストールするには、ソースソース(tarballなど)のディストリビューションを使用します。

答え2

自分の家に入れるべき内容をコピーしたパッケージのインストール後にルーチンを生成する必要があります。

このような:

# For every user in /home/ ...
for HOME_U in /home/*?; do

# Obtain the username
USER=$( basename ${HOME_U} )

# In case the user is active (exists in /etc/shadow) ...
if [ $( grep -c "${USER}:.*:.*:.*:.*:.*:::" /etc/shadow ) == 1 ] \
&& [ $( grep -c "${USER}:.*:.*:.*:.*:.*:/bin/.*sh" /etc/passwd ) == 1 ] \
&& [ -d ${HOME_U}/.config ] \
&& [ -d ${HOME_U} ]; then

# Making sure .config/your-package/ exists
mkdir -p /home/${USER}/.config/your-package/

# with appropiate permissions
chown ${USER}:${USER} /home/${USER}/.config/your-package/

# copy what we need
cp /etc/skel/.config/your-package/x.conf /home/${USER}/.config/your-package/
cp /etc/skel/.config/your-package/y.conf /home/${USER}/.config/your-package/
cp ... /home/${USER}/.config/your-package/

# with appropiate permissions
chown ${USER}:${USER} /home/${USER}/.config/your-package/x.conf
chown ${USER}:${USER} /home/${USER}/.config/your-package/y.conf
...

fi
done

あなたがそれを使用できることを願っています。

関連情報