打包/用户和组

跳转到:导航搜索
Icon-trash.png 本文正在考虑删除!
理由

这是 openSUSE:Packaging_guidelines#Users_and_Groups 的重复内容,不应位于主命名空间。

请勿删除、合并、移动本文档或移除此通知。请参阅本文档的 页面和我们的 删除策略 以获取更多信息。


用户和组

在软件包安装期间创建用户和组是包含守护进程的软件包的主要部分之一。如果您的软件包包含守护进程,请考虑创建一个特殊的用于运行此守护进程的用户/组,以提高安全性。

Specfile 片段

在软件包安装期间创建组 =

Requires(Pre): pwdutils
%define        daemon_group bar
Provides:      group(%{daemon_group})
...
%pre
# create daemon group, if not existing
if
    getent group %{daemon_group} >/dev/null
then
    : OK group %{daemon_group} already present
else
    groupadd -r %{daemon_group}  2>/dev/null || :
fi

在软件包安装期间创建用户

请注意,此示例使用了一个通过上述片段之前创建的特殊组。

用户应该获得至少具有读取权限的主目录。有时使用可由守护进程用户写入的目录也是有意义的。这使得调试更容易(想想“su - $daemon_user”)。

Requires(Pre): pwdutils
%define        daemon_user foo
Provides:      user(%{daemon_user})
...
%pre
# create daemon user, if not existing
if
    getent passwd %{daemon_user} >/dev/null
then
    : OK user %{daemon_user} already present
else
    useradd  -r -o -g %{daemon_group} -s /bin/false -c "FOO daemon" -d %{_var}/lib/%{name} %{daemon_user} 2> /dev/null || :
fi

已使用的用户和组列表

可以在软件包 rpmlint 的“config”文件中找到 openSUSE Factory 中当前允许的用户和组列表。