useradd 在 SUSE 中未创建组

useradd 在 SUSE 中未创建组

我维护一个为 debian、RedHat 和 SUSE Linux 发行版构建的软件包。安装后脚本的一部分如下:

/usr/sbin/useradd -r -d /var/opt/CampbellSci/LoggerNet loggernet

此命令似乎可以在其他发行版中使用,但在 SUSE 下,不会创建“loggernet”组,而是在“root”组下创建主目录。根据 useradd 的手册页,除非使用 -g -N 或 -U 选项,否则应该自动创建组。 SUSE 无法创建适当的组有什么原因吗?

答案1

手册页说的有些不同。引用自 OpenSUSE 13:

默认情况下,还将为新用户创建一个组(请参阅-g,-N, -U, 和USERGROUPS_ENAB)。

-g,--gid 团体
用户初始登录组的组名或组号。组名必须存在。组编号必须引用已存在的组。

如果未指定,则行为useradd将取决于 USERGROUPS_ENAB中的变量/etc/login.defs。如果该变量设置为是的(或者-U/--user-group在命令行上指定),将为该用户创建一个组,其名称与其登录名相同。如果变量设置为 no(或-N/--no-user-group在命令行上指定),useradd会将新用户的主要组设置为 中 GROUP 变量指定的值 /etc/default/useradd,默认情况下为 100。

在我的 OpenSUSE 13 VM 中,设置/etc/login.defs为(默认)

在 OpenSUSE 12 中,此功能不存在。

相关内容