当前位置: > Linux教程 > Linux学习 >

linux用户组、/etc/group文件及账户相关操作命令

时间:2016-05-08 22:29来源:linux.it.net.cn 作者:IT
主要概念:
1、基本上,一个组就是一个整数组ID(gid)
      lzgonline:x:500:
2、每个在系统上运行的进程都是属于一个组的集合(gids)
3、/etc/group 文件把组ID映射到组名称和组成员身上    
      /etc/group文件存储格式(组名称:组密码:组ID:组成员
      root:x:0:root
      lzgonline:x:500:
      字段解释:
      组名称:每个组都有一个组名称
      组密码:可以给组提供一个密码,一般很少这么做
      组ID:像用户ID一样,linux内核使用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 公共的
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
 
7、在redhat企业版中,用户的主要组几乎总是与用户名相同     
     /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  显示版本信息。
 
不加任何参数时,该命令报告用户的用户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
whoami 命令
作    用:显示当前用户的用户名,与 id -un 等效
[root@lzgonline ~]# whoami
root
[root@lzgonline ~]# id -un
root
users、w和who命令
作    用:查看当前都有谁登录了系统
 
users //简单地打印当前已登录用户列表
[root@lzgonline ~]# users
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)
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
 
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 - 



(责任编辑:IT)
------分隔线----------------------------