使用 .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)'

相关内容