Skip to content

Commit 450febc

Browse files
update groupmod command (#676)
1 parent eb6178f commit 450febc

File tree

1 file changed

+67
-7
lines changed

1 file changed

+67
-7
lines changed

command/groupmod.md

Lines changed: 67 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,88 @@
11
groupmod
22
===
33

4-
更改群组识别码或名称
4+
修改系统上的组定义
55

66
## 补充说明
77

8-
**groupmod命令** 更改群组识别码或名称。需要更改群组的识别码或名称时,可用groupmod指令来完成这项工作
8+
**groupmod命令** 通过修改组数据库( /etc/group 与 /etc/gshadow )的相应条目来更改指定组的定义,例如GID,组成员,组名称,组密码等
99

1010
### 语法
1111

1212
```shell
13-
groupmod(选项)(参数)
13+
groupmod (选项) (参数)
1414
```
1515

1616
### 选项
1717

1818
```shell
19-
-g<群组识别码>:设置欲使用的群组识别码;
20-
-o:重复使用群组识别码;
21-
-n<新群组名称>:设置欲使用的群组名称。
19+
-a, --append: 与 -U 选项配合使用,将指定用户追加到现有成员列表,而不是采用默认的覆盖方式。
20+
-g, --gid GID: 将组修改为指定值,必须是非负整数且唯一(除非同时使用 -o 选项),以该组为主要组的成员会自动更新以保持该组。
21+
-n, --new-name 新组名称: 设置要修改为的组名称。
22+
-o: 可以设置重复的gid;
23+
-p, --password 密码: 设置组密码(也可以直接修改 /etc/gshadow 文件),密码必须是 crypt 加密后的密文,用于配合 newgrp 命令让非组成员临时切换到该组,但该机制在现代系统中已不推荐使用。
24+
-U, --users user1,user2...: 以逗号分隔的用户列表,将组成员覆盖为该列表;若同时指定 -a 选项,则改为追加到现有成员列表中。
2225
```
2326

2427
### 参数
2528

26-
组名:指定要修改的工作的组名
29+
组名:指定要修改的组
2730

31+
### 实例
2832

33+
修改 group1 的GID
34+
35+
```shell
36+
groupmod -g 1003 group1
37+
```
38+
39+
修改 group2 的GID为重复的gid 1003
40+
41+
``` shell
42+
groupmod -g 1003 -o group2
43+
```
44+
45+
修改 group2 名称为 group3
46+
47+
```shell
48+
groupmod -n group3 group2
49+
```
50+
51+
覆盖 group3 的组成员为 user1
52+
53+
```shell
54+
groupmod -U user1 group3
55+
```
56+
57+
追加 user2 user3 到 group3
58+
59+
```shell
60+
groupmod -a -U user2,user3 group3
61+
```
62+
63+
### 说明
64+
65+
部分系统(如 Ubuntu 22.04)上的`groupmod`命令可能不支持 -a 和 -U 选项,可以使用`gpasswd`命令代替。
66+
67+
```shell
68+
groupmod -U user1,user2 groupname
69+
```
70+
71+
等价于
72+
73+
```shell
74+
gpasswd -M "" groupname
75+
gpasswd -M user1,user2 groupname
76+
```
77+
78+
```shell
79+
groupmod -a -U user1,user2,user3 groupname
80+
```
81+
82+
等价于
83+
84+
```shell
85+
gpasswd -a user1 groupname
86+
gpasswd -a user2 groupname
87+
gpasswd -a user3 groupname
88+
```

0 commit comments

Comments
 (0)