友情提示:本站最近进行了改版升级,如出现显示异常,请刷新页面或清除一下缓存!

   在Linux中,每个账号都可以加入多个群组,那用户登录后默认的用的是哪个群组呢?关于这个问题就要说说有效群组和初始群组了。

  在用户账号信息文件/etc/passwd中,那个由冒号分割的7个栏目中,第四个栏目是群组ID(GID),这里的群组就是这个账号的初始群组了,通过该账号登陆系统后默认的就会是这个群组。

  1. letuknowit@ubuntu:~$ groups
  2. letuknowit adm dialout cdrom plugdev lpadmin admin sambashare
  3. letuknowit@ubuntu:~$ grep letuknowit /etc/passwd /etc/group
  4. /etc/passwd:letuknowit:x:1000:1000:letuknowit,,,:/home/letuknowit:/bin/bash
  5. /etc/group:adm:x:4:letuknowit
  6. /etc/group:dialout:x:20:letuknowit
  7. /etc/group:cdrom:x:24:letuknowit
  8. /etc/group:plugdev:x:46:letuknowit
  9. /etc/group:lpadmin:x:116:letuknowit
  10. /etc/group:admin:x:118:letuknowit
  11. /etc/group:letuknowit:x:1000:
  12. letuknowit@ubuntu:~$ touch test | ls -al test
  13. -rw-rw-r– 1 letuknowit letuknowit 0 2012-03-05 06:06 test

  第1行中的groups指令可以查看当前账号加入的所有的群组,排在第一位的就是有效群组,以上面为例,有效群组为letuknowit,同时这个也是初始群组,也就是说刚登陆系统的时候有效群组就是账户的初始群组。

  第3行,通过grep指令查找/etc/passwd中letuknowit账号的新以及/etc/group中包含letuknowit账号的群组信息。

  第4行,账号letuknowit的初始群组的GID为1000

  第11行,GID为1000的群组为letuknowit,因此账号letuknowit的初始群组为letuknowit哈~(群组和账号的名字一样,不要搞混了噻)

  第12行,通过touch指令新建一个空文件test,并且查看该文件的熟悉,第14行显示的是文件test的属性,可以看出其拥有者以及群组都为letuknowit。

  下面我们更改下有效群组,通过newgrp指令可以重新设置新的有效群组,例如我们将admin设为当前账户的有效群组,可以这样做:

  1. letuknowit@ubuntu:~$ newgrp admin
  2. letuknowit@ubuntu:~$ groups
  3. admin letuknowit adm dialout cdrom plugdev lpadmin sambashare
  4. letuknowit@ubuntu:~$ touch test2 | ls -al test2
  5. -rw-rw-r– 1 letuknowit admin 0 2012-03-05 06:06 test2

  第1行,执行newgrp admin指令,将当前有效群组设置为admin,第1行,通过groups指令查看当前账户的群组信息,发现最前面出现的群组已经变成admin了,说明现在的有效群组为admin,为了验证,第4行,新建test2文件,并查看文件信息,第5行中的信息显示,文件的拥有者仍然为letuknowit,但是群组已经变为admin了。

转载请注明:Coding Ants » Linux中的有效群组和初始群组

相关文章

访客评论被关闭!