[CI/CD]在OS X(优胜美地)上创建服务账户

180 阅读2分钟

原文地址:pelaxa.com/blog/2015/0…

原文作者:pelaxa.com/

发布时间:2015年3月17日

在OS X上创建服务用户并不像在Linux系统上那样简单。 首先,useradd命令是不可用的。

因此,为了在OS X上执行同样的操作,请打开一个终端窗口并运行以下命令。在这个例子中,我将创建一个组和用户,以便运行MongoDB。

[korey@localhost ~]$ sudo dscl . -list /Users UniqueID
_amavisd                83
_appleevents            55
_appowner               87
_appserver              79
_ard                    67
_assetcache             235
_astris                 245
_atsserver              97
_avbdeviced             229
_calendar               93
_ces                    32
_clamav                 82
_coreaudiod             202
_coremediaiod           236
_cvmsroot               212
....

上面的命令列出了所有当前的用户以及他们的UID。这是必要的,这样我们就可以挑选一个低于500的未使用的ID(高于500的UID为普通用户)。你可以用/Groups代替/Users来运行同样的命令,得到一个组的列表。

首先,让我们为同名的用户创建一个组。

[korey@localhost ~]$ sudo dscl . -create /Groups/_mongo gid 300
[korey@localhost ~]$ sudo dscl . -create /Groups/_mongo RealName "Mongo DB Server Group"
[korey@localhost ~]$ sudo dscl . -create /Groups/_mongo passwd "*"

正如你所看到的,组的ID被设置为300,而密码被设置为 "*"。这是一个特殊的密码,不允许作为该组的用户登录。我不确定这是否有必要,但看看OS X上其他类似的组,这似乎是正确的方法。

现在,让我们创建这个用户,并确保它不会在登录屏幕上显示为一个用户。

[korey@localhost ~]$ sudo dscl . -create /Users/_mongo
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo uid 300
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo gid 300
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo NFSHomeDirectory /var/empty
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo UserShell /usr/bin/false
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo RealName "Mongo DB Server"
[korey@localhost ~]$ sudo dscl . -create /Users/_mongo passwd "*"

在这一点上,服务账户已经创建,其主要组别设置为我们刚刚创建的组别。设置shell和home文件夹是必要的,以确保该账户不会显示在登录屏幕上,并确保即使有人以该用户的身份登录,他们也不会有任何访问权限。再一次,这里的账户密码被设置为 "*",以便不允许登录。

如果你看看你的OS X机器上的/etc/passwd,你会注意到大多数服务账户都列在其中,但上述账户却没有。我不确定从长远来看这是否会有问题,但就所有的意图和目的而言,服务账户是按预期工作的。

当然,在我想出上述命令集之前,我搜索了很长时间,这里有一些帮助我的链接。


www.deepl.com 翻译