如何在软件包安装期间更改文件夹权限

Nun*_* V. 6 permissions debian package-management deb

我正在制作一个 deb 包来安装自定义应用程序。我将所有文件/文件夹的所有权更改为 root 以避免在安装过程中收到警告,并且在 Ubuntu 中所有运行都顺利,因为 Ubuntu 将文件/文件夹的所有权更改为安装包的用户。

但是当我在 Debian 上安装时,root 仍然是所有者。该应用程序使用一个文件夹来写入数据,这就是问题所在。以标准用户身份运行,该应用程序无权写入文件夹。

现在,我应该如何处理这个问题?我应该在 deb 包上制作安装后脚本chmod o+w吗?我是否应该将已经设置了这些权限的目录打包?

或者有什么方法可以将文件的所有者设置为自动安装应用程序的用户(就像 Ubuntu 一样)?

Ste*_*itt 11

我不确定 Ubuntu 中的行为是什么,但通常对于.deb包含具有非标准权限的文件或目录的包,您需要确保在 dh_fixperms运行后设置这些权限。如果您使用的是dh-style rules,则可以按如下方式执行此操作:

override_dh_fixperms:
        dh_fixperms
        chmod 777 yourfolder
Run Code Online (Sandbox Code Playgroud)

你也可以在一个postinst:

if [ "$1" = "configure" ]; then
    chmod 777 yourfolder
fi
Run Code Online (Sandbox Code Playgroud)

但rules方法更简单(至少,我更喜欢这样做而不是依赖维护者脚本)。