
各用户组中,以 ":" 作为字段之间的分隔符,分为 4 个字段,每个字段对应的含义为:
组名:密码:GID:该用户组中的用户列表
而在gshadow文件中,每行代表一个组用户的密码信息,各行信息用 ":" 作为分隔符,分为 4 个字段,每个字段的含义如下:
组名:加密密码:组管理员:组附加用户列表
root用户可以直接修改/etc/group文件达到管理组的目的,也可以使用以下命令:groupadd、groupdel、groupmod -n、gpasswd -a、gpasswd -d、newgrp。
下面使用案例分别讲解这些命令:
添加用户组的命令是 groupadd,命令格式如下:
groupadd [ -g gid [ -o ] ] [ -r ] [ -f ] group
参数说明:
-g:指定新建工作组的 id;
-r:创建系统工作组,系统工作组的组ID小于 500;
-K:覆盖配置文件 "/ect/login.defs";
-o:允许添加组 ID 号不唯一的工作组。
-f,--force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
示例:创建一个新的组,并添加组 ID。
[root@VM-4-4-centos ~]# groupadd -g 888 newgroup
此时在/etc/group文件中产生了一个id为888的项目:
删除用户组时,可用groupdel(group delete)指令来完成。倘若该组中仍包括某些用户,则必须先删除这些用户后,方能删除组。 注意:删除的组不能为主属组! 命令格式:
groupdel [组名]
示例:删除用户组 newgroup
[root@VM-4-4-centos ~]# groupdel newgroup
此时再查看/etc/group文件时可以看到用户组newgroup已经不存在,删除成功!
要更改用户组识别码或名称可使用 groupmod 来完成。命令格式:
groupmod [ -g <群组识别码> <-o >] [ -n <新群组名称 >] [原群组名称]
参数说明 :
-g <群组识别码> 设置欲使用的群组识别码。
-o 重复使用群组识别码。
-n <新群组名称> 设置欲使用的群组名称。
示例:创建用户组newgroup并修改其名称为modifiedgroup
[root@VM-4-4-centos ~]# groupadd newgroup
[root@VM-4-4-centos ~]# groupmod -n modifiedgroup newgroup
查看/etc/group文件,只存在名称为modifiedgroup的用户组,修改成功!
gpasswd 是 Linux 下工作组文件 /etc/group 和 /etc/gshadow 管理工具,用于将一个用户添加到组或者从组中删除。命令格式:
gpasswd [可选项] 组名
可选项参数 :
-a:添加用户到组;
-d:从组删除用户;
-A:指定管理员;
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
示例1:将用户yangwei添加到组modifiedgroup中
[root@VM-4-4-centos ~]# gpasswd -a yangwei modifiedgroup
此时查看/etc/group文件发现组 modifiedgroup中出现用户yangwei
示例2:将用户yangwei从组modifiedgroup中给删除
[root@VM-4-4-centos ~]# gpasswd -d yangwei modifiedgroup
再次查看/etc/group文件发现用户yangwei已经不存在。
当需要在不同的群组下工作的时候我们需要进行切换群组 *** 作,这个 *** 作由newgrp指令来完成。命令格式如下:
newgrp [群组名称]
注意!当前用户必须都是两个群组的成员,否则切换群组时需要输入切换组的组密码,这时候当前用户作为临时成员在切换组下工作,所创建的文件全都属于切换组。
示例1:用户yangwei不属于群组modifiedgroup,请将当前工作组切换为modifiedgroup。
示例2:将用户yangwei添加到组modifiedgroup中,并切换工作组为modifiedgroup。
总结:Linux用户组管理需要掌握最基本的几个命令及其选项参数: groupadd 、groupdel 、groupmod 、gpasswd 、newgrp !
添加用户,并指定用户ID:useradd -u userID username
e.g. useradd -u 1001 user1
注意,这里的userID最好取500以上,否则和系统虚拟用户ID相冲突。如果加上-M参数,则不为该用户创建用户目录,如 /home/user1 。
设置用户密码:
passwd username
之后,要两次输入新密码
查看所有已有的用户:
cat /etc/passwd
一般新加的都在最后一行,例如上面的 useradd -u 1001 user1,会看到最后一行为 user1:x:1001:1001::/home/user1:/bin/bash
删除一个用户:
userdel -r username
e.g. userdel -r user1
注意,这里的-r 是连同user一道,将 /home/user1/ 目录也删除;如果不加 -r,就只删除用户 user1,而不删除目录 /home/user1/
添加一个group,并指定group id:
groupadd -g groupID groupname
e.g. groupadd -g 1000 group1
注意,这里的groupID最好取500以上,否则和系统虚拟用户组ID相冲突。
查看当前有哪些group:
cat /etc/group
e.g. 在上面的 groupadd -g 1000 group1 之后,会在 cat /etc/group 看到最后一行:group1:x:1000:
(这里的x表示有密码,只是个占位符,真正有没有密码还有看其他文件。cat /etc/shadow 会看到所有用户的MD5加密后的密码)
删除一个group:
groupdel groupname
e.g. groupdel group1
注意,如果要删除的group中还有成员user,该 *** 作会失败。解决办法:先删除group下的所有user,然后再删group;或者,将group下的所有user放到其他group下,再删当前group。
显示用户ID及其所属group的groupID:
id username
e.g. id user1
(输出 uid=1001(user1) gid=1000(group1) groups=1000(group1))
查看一个user的主group:
cat /etc/passwd
例如其中有这样一行 user1:x:1001:1000::/home/user1:/bin/bash,而 cat /etc/group 显示结果中有 group1:x:1000: ,这说明 user1的主group就是group1。
添加一个user到一个group:
gpasswd -a username groupname
e.g. gpasswd -a user2 group2
结果显示 Adding user user2 to group group2,并且在cat /etc/group 时,会看到有 group2:x:2000:user2,说明 user2 在group2 下面了。
注意:cat /etc/group 的结果中,一个group的行中不会出现这样的user,即该user的主group就是该group。
将一个user从一个group中删除:
gpasswd -d username groupname
修改文件夹的所有者(owner):
chown -R username some-folder
e.g. 先前有一个/yasi 文件夹,在/下 ll 显示 drwxr-xr-x 2 root root 4096 Jan 24 04:42 yasi,即/yasi 文件夹的所有者(owner)是root,所有group(owner group)是root group。当执行 chown -R user1 /yasi 后,在/下 ll 显示 drwxr-xr-x 2 user1 root 4096 Jan 24 04:42 yasi,即/yasi 的owner 已经改成了 user1。
注意,这里的-R 表示将所有子目录和目录中所有文件的所有权一起修改。不加-R,修改失败,不知道为什么。
修改文件夹的所有者group(owner group):
类似上面的 *** 作 chown -R .groupname some-folder
e.g. chown -R .group2 /yasi
注意,这里的groupname前面要加一个点
同时修改文件夹的所有者(owner)和所有者group(owner group):
类似上面的 *** 作 chown -R username.groupname some-folder
e.g. chown -R user1.group2 /yasi
修改文件的所有者(owner):
chown username some-folder
e.g. chown user1 /yasi
修改文件的所有者group(owner group):
chown .groupname some-folder
e.g. chown .group2 /yasi
同时修改文件的所有者(owner)所有者group(owner group):
chown username.groupname some-folder
e.g. chown user1.group2 /yasi
添加用户,并指定用户ID,同时添加到指定的group:
useradd -u userID -g groupID username
e.g. useradd -u 2001 -g 2000 user2
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)