xwill

To be double-cool

07 Apr 2024

nginx: [emerg] getgrnam("root") failed in nginx.conf

1
nginx: [emerg] getgrnam("root") failed in nginx.conf

这样的错误通常在mac上出现

在nginx配置文件中,group 值默认是和user名相同。

在mac系统上,对于root用户,或者使用sudo执行nginx时,系统并没有root的group,所以就提示了如上的错误。

快捷的修改方式:

1
2
#修改nginx.conf文件,指定root用户mac中的group
user root admin;

如果nginx.conf不能修改,比如test::Nginx中,对应case自动生成nginx.conf 那么,mac中增加一个root用户组,并把root用户加入到group中也可以。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// 切换到root用户
su

// 新建root用户组,并指定id 为2024 (和现有id不冲突即可,尽量>500)
dscl . -create /Groups/root PrimaryGroupID 2024
// 添加root用户到root用户组中
dscl . -append /Groups/root GroupMembership root


// 其他的一些命令

// list所有的用户组
groups
// 查看user所属的用户组
groups <user>
// 同上,同时展示用户组id
id -a <user>

// 查看当前登陆的用户名
whoami

// mac 管理用户及用户组命令
// dscl

// 创建<user-name>用户,且id 为<id-num>
sudo dscl . -create /Users/<user-name> UniqueID <id-num>
// 查看所有用户和id
sudo dscl . -list /Users UniqueID
// 删除
sudo dscl . -delete /Users/<user-name>

// 创建<group-name>用户组,且id 为<id-num>
sudo dscl . -create /Groups/<group-name> PrimaryGroupID <id-num>
// 查看所有用户和id
sudo dscl . -list /Groups PrimaryGroupID
// 删除
sudo dscl . -delete /Groups/<group-name>

// 添加<user-name> 到用户组<group-name>中
sudo dscl . -append /Groups/<group-name> GroupMembership <user-name>
// 删除用户组<group-name>中<user-name>
sudo dscl . -delete /Groups/<group-name> GroupMembership <user-name>
// 查看所有组下个用户信息
dscl . -list /Groups GroupMembership