gpt4 book ai didi

linux - 如何使用 puppet 脚本创建具有同名主要组的用户?

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:21 26 4
gpt4 key购买 nike

我正在阅读 this article它建议使用此代码创建用户:

user { 'myuser':
ensure => present,
uid => '1000',
gid => '1000',
shell => '/bin/bash',
home => '/home/myuser'
}

但是,当我运行它时,抛出以下错误:

Error: Could not create user myuser: Execution of '/usr/sbin/useradd -g 1000 -G wheel -d /home/myuser -s /bin/bash -u 1000 -M myuser' returned 6: useradd: group '1000' does not exist

我让它与以下项目一起工作:

group {'myuser':
ensure => present
}

user { 'myuser':
ensure => present,
uid => '1000',
gid => 'myuser',
shell => '/bin/bash',
home => '/home/myuser'
}

但我不确定这种方式是否正确。有没有一种方法可以通过使用 user puppet 资源来实现我想要的?

最佳答案

我认为答案取决于您用来创建用户的操作系统和/或提供商。在您的配置中,它是 useradd。根据documentation , 当与 -g 选项一起使用时:

The group name must exist. A group number must refer to an already existing group.

可能的解决方案是删除 gid:

user { 'myuser':
ensure => present,
uid => '1020',
shell => '/bin/bash',
home => '/home/myuser',
managehome => true,
}

然后puppet会自动创建poper组:

root@vagrant-ubuntu-trusty-64:/home# su myuser

myuser@vagrant-ubuntu-trusty-64:/home$ id

uid=1020(myuser) gid=1020(myuser) groups=1020(myuser)

好主意是添加一个选项 managehome => true,。它将:

create the home directory when ensure => present, and delete the home directory when ensure => absent

关于linux - 如何使用 puppet 脚本创建具有同名主要组的用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com