我刚刚将 mysql 傀儡化,然后遇到了一个奇怪的问题,即开发环境中 mysql 组的 gid 与生产环境中的 gid 不同。显然,在生产环境中,我有一个在开发环境中不存在的用户,并且目前正在声明我希望用于 mysql 组的 gid。
我的问题是,无论在什么环境下,确保用户/组排队的最佳方法是什么?我读过一些文章,其中通常的做法是从 uid/gid @ 1000 开始。如果我强制执行此做法并更改现有的 uid/gid,这会对我的服务器造成严重破坏吗?
我还考虑过更改声明我希望使用的 gid 的用户的 gid,但想看看是否有解决这种情况的最佳实践。
- 更新 -
呃,可以看出今天是星期一。发生冲突的不是 gid,而是 uid:
class user::mysql inherits user {
include group::logger
include group::mysql
user { 'mysql':
gid => 'mysql',
groups => [ 'logger' ],
managehome => false,
membership => 'inclusive',
require => Class['group::mysql'],
shell => '/sbin/nologin',
uid => '498'
}
Class['group::logger']->Class['user::mysql']
}
上述问题仍然有意义:
“无论在什么环境下,确保用户/群组排队的最佳方法是什么?”
“如果我强制执行这种做法并改变现有的 uid/gid,这会对我的服务器造成严重破坏吗?”
答案1
我猜你正在做类似的事情
group => 500,
mysql 的组 ID 在哪里 500?好吧,如果你不介意组 ID 不匹配,那么就使用名称
group => "mysql",
编辑
uid 也一样。如果你没有为用户指定一个,操作系统会为你选择一个。所以如果你不关心 uid 是否匹配,那么删除 uid 行