Chinaunix首页 | 论坛 | 博客
  • 博客访问: 285227
  • 博文数量: 69
  • 博客积分: 2946
  • 博客等级: 少校
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 04:15
文章分类

全部博文(69)

文章存档

2013年(6)

2012年(16)

2011年(18)

2010年(29)

分类: LINUX

2011-09-17 12:08:16

下面我们来看看group有关登录文件内容,跟查看用户登录文件一样:
  1. [huang@myhost/etc]$ vim ./group
  2. root:x:0:root
  3. audio:x:92:huang
  4. huang:x:1000:huang    
  5. ##  部分内容省略  ##
查看第四行有关“huang”这行:
第一字段:
huang    表示huang用户组;
第二字段:
x        表示用户组密码,一般用户组是不设置密码的,如果设置密码,密码放置在文件/etc
                   /gshadow里;
第三字段:
1000     表示huang用户组的GID;
第四字段:
huang    这个是表示属于用户组huang的用户,如果有多个用户,直接在后天添加,中间以逗号隔开。
Note:细心的朋友可能会看到,用户huang同时属于audio和huang两个组,也就是说,一个用户可以属于多个组,并且身具多个用户组的权限。就像现实中的人一样,一个人可能同时属于两个或者更多家庭的成员。

下面来看看存放用户组密码的文件:/etc/gshadow
  1. [huang@myhost/etc]$ sudo gedit ./gshadow
  2. root:::root
  3. bin:::root,bin,daemon
  4. daemon:::root,bin,daemon
  5. sys:::root,bin
  6. adm:::root,daemon
  7. audio:::huang
  8. storage:x::hal
  9. huang:!::huang
  10. test:!::
  11. ##  部分内容省略  ##
同样,我们来分析上面每行四个字段(:)的具体含义:
第一字段:
huang    用户组名称;
第二字段:
      有感叹号表示该用户组不能使用密码来登录系统,在创建改group时,没有设置密码;
第三字段:
       用户组管理员账号;
第四字段:
       属于用户组的所有用户账号;
Note:用户huang属于audio用户组,是配置ALSA声卡时设置的.

  1. [huang@myhost/~]$ sudo grep huang /etc/passwd /etc/shadow /etc/group /etc/gshadow
  2. /etc/passwd:huang:x:1000:1000::/home/huang:/bin/bash
  3. /etc/shadow:huang::15225:0:99999:7:::
  4. /etc/group:audio:x:92:huang
  5. /etc/group:huang:x:1000:huang
  6. /etc/gshadow:audio:::huang
  7. /etc/gshadow:huang:!::huang
上面第一行命令就是要在:/etc/passwd、/etc/shadow、/etc/group、/etc/gshadow中找到所有包含'huang'的行。
返回值的前两行内容,请参看本博客《Linux学习笔记之用户登录》博文,里面有详细介绍,不再赘述。
需要强调一下的是:用户 huang ,UID = 1000 并且 GID = 1000 ,这里的GID为初始GID,即用户huang登录系统后,他便获得的GID(=1000).这样就不会导致混乱,因为用户huang既属于huang组,又属于audio组,那在用户huang登录的时候到底是属于huang组,属于audio组还是都属于呢?用户huang新建的文件GID是那个呢??
通常情况,在不知道某个用户属于那个或者那些组时,可以用groups命令来产看:
  1. [huang@myhost/~]$ groups
  2. audio huang
说明:用户huang 同时属于两个group,分别是:audio和huang.书上说第一个(audio)为有效用户组,但是实际情况并非如此,请看下面简单测试:
  1. [huang@myhost/work]$ touch ./test
  2. [huang@myhost/work]$ ls -al
  3. total 16
  4. drwxr-xr-x 4 huang huang 4096 Sep 10 02:26 .
  5. drwx------ 30 huang huang 4096 Sep 10 02:08 ..
  6. -rw-r--r-- 1 huang huang 0 Sep 10 02:26 test
  7. ##  部分无关内容省略  ##
用命令touch新建文件test,发现test所属用户组为huang,并非audio.下面用命令newgrp改变所属的有效用户组:
  1. [huang@myhost/work]$ newgrp audio
  2. [huang@myhost/work]$ groups
  3. audio huang
  4. [huang@myhost/work]$ touch ./test2
  5. [huang@myhost/work]$ ls -al
  6. drwxr-xr-x 4 huang huang 4096 Sep 10 02:29 .
  7. drwx------ 30 huang huang 4096 Sep 10 02:08 ..
  8. -rw-r--r-- 1 huang huang 0 Sep 10 02:26 test
  9. -rw-r--r-- 1 huang audio 0 Sep 10 02:29 test2
查看test2文件属性,可以清楚的看到test2文件所属用户组为audio。而且无论在使用newgrp命令前后,用groups查看用户所属用户组的排列顺序并没有发生改变,因此书上的这点论断值得商榷。
用exit命令推出改变有效用户组后,用touch新建文件,然后查看文件属性,所属用户组变回原来的huang。

当然查看某个用户UID及group属性时,可以用id命令来直接查看。当要查看登录用户自己属性时,直接输入id即可,例如:
  1. [huang@myhost/~]$ id
  2. uid=1000(huang) gid=1000(huang) groups=1000(huang),92(audio)
查看其他用户UID和GID,用:id+[username],例如查看root的UID和GID:
  1. [huang@myhost/~]$ id root
  2. uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),19(log)
下面看一个添加用户组的命令-- groupadd:
  1. [huang@myhost/etc]$ sudo groupadd  [-参数]   组名称
  1. [huang@myhost/etc]$ sudo groupadd  [-参数]
  2. [-f] 强制添加用户组,即使该用户组已经曾在;
  3. [-g] 后天跟gid
  4. [-o] 后可以接非唯一的gid,可以允许添加非唯一的gid到系统中;
  5. [-p] 同usermod的[-p]选项;
  6. [-r] 添加系统用户组;
下面看看一些简单的例子:
  1. [huang@myhost/etc]$ sudo groupadd -g 1290 gtest
  2. [huang@myhost/etc]$ sudo grep 'gtest' /etc/group /etc/gshadow
  3. /etc/group:gtest:x:1290:
  4. /etc/gshadow:gtest:!::
  5. [huang@myhost/etc]$ sudo groupmod -g 1291 gtest
  6. [huang@myhost/etc]$ sudo grep 'gtest' /etc/group /etc/gshadow
  7. /etc/group:gtest:x:1291:
  8. /etc/gshadow:gtest:!::
  9. [huang@myhost/etc]$ sudo groupadd -r stest
  10. [huang@myhost/etc]$ sudo grep 'stest' /etc/group /etc/gshadow
  11. /etc/group:stest:x:578:
  12. /etc/gshadow:stest:!::

  13. [huang@myhost/etc]$ sudo groupdel stest
  14. [huang@myhost/etc]$ sudo grep 'stest' /etc/group /etc/gshadow
  15. [huang@myhost/etc]$
以groupadd新增加的用户组默认都不能带password登录的,也就是说都是私有用户组,无法使用newgrp来登录;








阅读(1367) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~