我正在设置一个新的 SLES 12 服务器并希望为新用户设置默认组,以便不将其命名为 users
而是<username>
(例如用户 foo
将被分配到组 foo
)。
我发现选项 USERGROUPS_ENAB
在 /etc/login.defs
应该做这个工作,但是在我把它改成 USERGROUPS_ENAB yes
之后并尝试通过 yast
创建新用户,这样的新用户会 - 根据 yast
- 仍分配给 users
.
如何通过 yast
完成所需的行为?还是我错过了什么?
最佳答案
更改后USERGROUPS_ENAB
至yes
在 /etc/login.defs
文件,您已根据需要更改了 useradd 命令默认值的行为。因此,例如,您可以以 root 身份运行此命令,它会执行您所期望的操作:
linux-54pe:~ # grep "USERGROUPS_ENAB" /etc/login.defs
USERGROUPS_ENAB yes
linux-54pe:~ # useradd bob
linux-54pe:~ # cat /etc/passwd | grep bob
bob:x:1003:1003::/home/bob:/bin/bash
linux-54pe:~ # cat /etc/group | grep bob
bob:!:1003:
问题是您使用的是 YaST2。 YaST2 使用自己的默认组分配,因此它不遵守对 useradd 所做的默认更改。在
/var/log/YaST2/y2log
您可以看到,当我尝试创建用户 frank 时:2017-04-25 10:44:02 <1> linux-54pe(2871) [Perl] modules/Users.pm(Users::CommitUser):3517 commiting user 'frank', action is 'add_user', modified: 1, ldap modified: 0
2017-04-25 10:44:02 <1> linux-54pe(2871) [Perl] modules/Users.pm(Users::CommitGroup):3787 commiting group 'users', action is 'user_change_default'
此外,在 YaST2 模块中,当您在 Details 选项卡中创建用户时,您可以在底部看到它正在将其分配给其自己的默认用户组参数。
screenshot showing parameter
如果您拥有 SUSE 的支持权利,您可以联系他们以查看他们是否愿意将此作为错误提交。至少他们应该能够将此作为增强请求。
关于default - SLES 12 : Setting default group for new users via/etc/login. defs 选项 USERGROUPS_ENAB 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36326864/