Linux学习笔记之用户组

Advertisement

下面我们来看看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来登录;

Similar Posts:

  • linux 学习笔记{转}

    linux 学习笔记 http://www.chinaunix.net 作者:jinscan 发表于:2006-07-06 16:32:08 [发表评论][查看原文][Linux讨论区][关闭] 很久前就打算把这些笔记写下来,由于种种原因一直没动,打算从今天起慢慢的把自己学习linux的过程写下来,对与错请CU的各位前辈指点,非常感谢牛海峰(JohnBull)老师,您是我的linux启蒙老师,俗话说"师傅领进门修行靠个人",非常汗颜,我自打离开长城后就很少拿出精力来研究linux了,磕

  • LINUX学习笔记—SAMBA使用篇(转)

    LINUX学习笔记—SAMBA使用篇 2001-04-06· ·illiad··yesky 1 前言:半个月前开始安装.学习REDHAT LINUX7.0.作为一个Linux新手,不可避免的遇上了一些问题,通过翻阅书籍资料,查看BBS,自己的摸索实践,也解决了一些问题.想到自己的经验教训可供他人借鉴,于是大胆写出来,一来可以当作学习笔记保存,二来希望对刚刚接触Linux的朋友有所帮助.由于本人能力所限,笔记中有所疏漏不足也在所难免,还请各位高手指正.一.SAMBA简介 NetBIOS 是一个为了

  • Linux学习笔记(三)——Shell脚本基础总结

    Linux学习笔记(三)--Shell脚本基础总结 2012-03-27 06:56:00 我来说两句 收藏 我要投稿 [字体:小 大] 1. vi编辑器快捷键备忘 [Ctrl]+[ud] 向上/下移动半页 n 右移n个字符 H/M/L 移动到屏幕最上方/中央/最下方一行 u [Ctrl]+r 复原和重做 .(点) 重复前一个动作 :e! 将文件还原到最原始状态 [Ctrl]+v 块选择 2. Bash Shell基础 env 环境变量 set 环境变量和其他变量 export 使变量变成环境变

  • 写得蛮好的linux学习笔记(转帖)

    写得蛮好的linux学习笔记(转帖) linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/N

  • Linux学习笔记8

    Linux学习笔记8 Linux学习笔记8 DHCP分配IP地址 打印或控制内核环缓冲区 查看某个分区格式化时指定的块大小 获取命令的安装包 文本编辑工具vim 上一条命令的最后一个参数 gzip压缩工具的使用 bzip2压缩工具 使用zip压缩工具常用 使用tar压缩工具常用 三种压缩工具压缩的简单比较 RPM介绍 嵌套命令的简单使用 打印行数 yum工具的使用 创建本地yum源 利用yum工具下载一个rpm包 安装源码包 查看上一次命令是否执行成功 查看进程并kill相应进程 启动apach

  • 一篇非常好的linux学习笔记分享(Linux入门绝佳)

    一篇非常好的linux学习笔记分享,对于常用命令整理的比较详细,推荐使用. linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTN

  • Linux学习笔记(三):权限管理(文件目录权限、用户权限)

    这篇文章主要介绍了Linux学习笔记(三):权限管理(文件目录权限.用户权限),本文讲解了权限相关知识.相关管理命令等内容,需要的朋友可以参考下 文件及目录的权限管理 上篇简单介绍了下文件和目录的一些简单的操作,接下来介绍用户和文件权限的管理.首先了解用户和组账号的配置文件,然后是管理用户和组账号,最后要会设置文件和目录权限和归属. Linux基于用户身份对资源访问进行控制.用户账号分为超级用户root(相当于windows下的Administrator),然后是普通用户.Linux中是不建议使

  • 总结:linux学习笔记

    总结:linux学习笔记 Linux目录架构 / 根目录 /bin 常用的命令 binary file 的目錄 /boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内 /boot/grub/menu.lst GRUB设置 /boot/vmlinuz 内核 /boot/initrd 核心解壓縮所需 RAM Disk /dev 系统周边设备 /etc 系统相关设定文件 /etc/DIR_COLORS 设定颜色 /etc/HOSTNAME 设定用户的节点名 /etc/NETWORK

  • Linux学习笔记5:Linux分区,Linux安装

    Linux学习笔记5:Linux分区,Linux安装 1. 分区概述 硬盘的分区主要分为基本分区和扩展分区两种,基本分区和扩展分区的数目之和不能大于四个.基本分区可以马上被使用但不能再分区.扩展分区必须再进行分区后才能使用.由扩展分区的二次分区得到的是逻辑分区,逻辑分区无数量限制. Linux无论有几个分区,分给哪一个目录使用,归根结底只有一个根目录,一个独立且唯一的文件结构.每个分区都用来组成文件系统的一部分,采用"载入"的处理方法.文件系统包含了一整套的文件和目录,且将一个分区和一

  • Linux学习笔记之find

    ## Linux学习笔记之find ### 1.查找指定时间的内容 bash find . -atime #access time,文件被读取或者执行的时间 find . -ctime #change time文件状态改变时间 find . -mtime #modify time,指文件内容被修改的时间 ### 2.查找指定时间 bash find . -mtime +n #最后一次修改发生在n+1天以前,距离当前时间为(n+1)*24小时或者更早 find . -mtime -n #最后一次修