原文链接:https://wtj6891.iteye.com/blog/2096076
groupadd创建组群
使用groupadd命令可以在系统中创建组群账户
语法:
groupadd[选项][组群名]
groupadd命令选项含义
选项 |
含义 |
-g<GID> | 为组群设置GID |
-r | 创建系统组群 |
-o | 允许使用和别的组群相同的GID创建组群 |
-f | 即使组群已经存在,还是强制创建组群 |
-p | 为新组群设置加密的密码 |
示例:
创建组群china
[root@localhost ~]# groupadd china
创建组群ou,并且设置该组群GID为800
[root@localhost ~]# grouadd -g 800 ou
创建系统组群chinese
[root@localhost ~]# groupadd -r chinese
主要概念:
1、基本上,一个组就是一个整数组ID(gid)
lzgonline:x:500:
2、每个在系统上运行的进程都是属于一个组的集合(gids)
3、/etc/group 文件把组ID映射到组名称和组成员身上
/etc/group文件存储格式(组名称:组密码:组ID:组成员)
root:x:0:root
root:x:0:root
lzgonline:x:500:
字段解释:
组名称:每个组都有一个组名称
组密码:可以给组提供一个密码,一般很少这么做
组ID:像用户ID一样,linux内核使用ID来识别
组成员:定义组成员用户名列表,用半角逗号隔开
4、文件系统中的每个文件有唯一的组ID,就像拥有唯一的所有者ID一样
4、文件系统中的每个文件有唯一的组ID,就像拥有唯一的所有者ID一样
drwxrwxr-x. 2 lzgonline lzgonline 4096 6月 23 23:47 coding
drwxr-xr-x. 2 lzgonline lzgonline 4096 6月 23 22:03 公共的
drwxr-xr-x. 2 lzgonline lzgonline 4096 6月 23 22:03 公共的
5、用户有一个在/etc/passwd 文件中定义的主要组(第4个字段定义)
root:x:0:0:root:/root:/bin/bash
6、用户可以在/etc/group 文件中定义多个次要组(例从下面可以看到root用户属于多个组)
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
disk:x:6:root
wheel:x:10:root
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
disk:x:6:root
wheel:x:10:root
7、在redhat企业版中,用户的主要组几乎总是与用户名相同
/etc/passwd 文件:lzgonline:x:500:500:liuzhigong:/home/lzgonline:/bin/bash
/etc/group文件: lzgonline:x:500:
8、文件系统上的每个文件有一个用户所有者和一个组所有者
/etc/passwd 文件:lzgonline:x:500:500:liuzhigong:/home/lzgonline:/bin/bash
/etc/group文件: lzgonline:x:500:
8、文件系统上的每个文件有一个用户所有者和一个组所有者
如何在linux中查询一个组有哪些用户?
执行cat /etc/group | less 命令,寻找相应的组名称,查看其最后一个字段即可
如何在linux中查询一个用户属于哪些组?
执行cat /etc/group | grep username 即可(将username替换为查找的用户名)
相关命令讲解:
1、linux id 命令详解
作 用:用于输入username和当前用户的信息
语 法:id [-gGnru][--help][--version][用户名称]
参 数:
-g 或 --group 显示用户所属群组的ID。
-G 或 --groups 显示用户所属附加群组的ID。
-n 或 --name 显示用户,所属群组或附加群组的名称。
-r 或 --real 显示实际ID。
-u 或 --user 显示用户ID。
--help 显示帮助。
--version 显示版本信息。
-g 或 --group 显示用户所属群组的ID。
-G 或 --groups 显示用户所属附加群组的ID。
-n 或 --name 显示用户,所属群组或附加群组的名称。
-r 或 --real 显示实际ID。
-u 或 --user 显示用户ID。
--help 显示帮助。
--version 显示版本信息。
不加任何参数时,该命令报告用户的用户ID、主要组和主要组ID、用户所属的所有组的组名称和组ID
[root@lzgonline ~]# id
uid=0(root) gid=0(root) 组=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
uid=0(root) gid=0(root) 组=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
whoami 命令
作 用:显示当前用户的用户名,与 id -un 等效
[root@lzgonline ~]# whoami
root
[root@lzgonline ~]# id -un
root
root
[root@lzgonline ~]# id -un
root
users、w和who命令
作 用:查看当前都有谁登录了系统
users //简单地打印当前已登录用户列表
[root@lzgonline ~]# users
lzgonline lzgonline lzgonline lzgonline
lzgonline lzgonline lzgonline lzgonline
who //列出当前登录用户的详细信息
[root@lzgonline ~]# who
lzgonline tty1 2011-06-23 22:35 (:0)
lzgonline pts/1 2011-06-23 22:48 (:0.0)
lzgonline pts/2 2011-06-24 01:13 (192.168.229.1)
lzgonline pts/3 2011-06-24 02:31 (192.168.229.1)
lzgonline tty1 2011-06-23 22:35 (:0)
lzgonline pts/1 2011-06-23 22:48 (:0.0)
lzgonline pts/2 2011-06-24 01:13 (192.168.229.1)
lzgonline pts/3 2011-06-24 02:31 (192.168.229.1)
w //列出当前已登录用户,提供最详细的信息
[root@lzgonline ~]# w
03:29:07 up 5:01, 4 users, load average: 1.04, 0.94, 0.51
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lzgonlin tty1 :0 22:35 5:01m 9.08s 0.17s pam: gdm-passwo
lzgonlin pts/1 :0.0 22:48 4:40m 0.00s 0.00s /bin/bash -l
lzgonlin pts/2 192.168.229.1 01:13 1:09m 0.23s 0.22s sshd: lzgonline
lzgonlin pts/3 192.168.229.1 02:31 1.00s 1.11s 0.70s sshd: lzgonline
03:29:07 up 5:01, 4 users, load average: 1.04, 0.94, 0.51
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
lzgonlin tty1 :0 22:35 5:01m 9.08s 0.17s pam: gdm-passwo
lzgonlin pts/1 :0.0 22:48 4:40m 0.00s 0.00s /bin/bash -l
lzgonlin pts/2 192.168.229.1 01:13 1:09m 0.23s 0.22s sshd: lzgonline
lzgonlin pts/3 192.168.229.1 02:31 1.00s 1.11s 0.70s sshd: lzgonline
linux下用户切换命令
1、su 命令可以让用户切换到其他用户ID(su 代表 switch user 而不是 superuser)
2、su 命令通常用连字符调用,如 su - ,指明用户应该作为新用户有效登录
3、newgrp 命令(sg),让用户切换主要组ID(switch primary group)
需要注意的问题
1、为了使新用户完全登录,su 命令需使用连字符 - 调用,这指定了新用户的Shell应该是登录Shell,登录Shell和非登录Shell之间的区别以及环境变量的使用这里不讨论,只需记住一点:要完全成为新用户,su命令应该使用连字符 - 和用户名
2、切换为root用户使用 su - ,