Linux 用户管理工具介绍

本文主要介绍 Linux 系统的用户和用户组的查询、添加、修改及删除等管理工具;
Linux 是一个多用户的操作系统,她有完美的用户管理工具,这些工具包括用户的查询、添加、修改,以及用户之间相互切换的工具等;通过这些工具,我们能安全、轻松的完成用户管理;
一、与用户管理相关的配置文件
1/etc/passwd /etc/groups
linux 系统下,对用户和用户组进行添加、修改、删除等操作的最终目的都是通过修改用户和组的配置文件来实现的,这些主要配置文件主要有: /etc/passwd /etc/shadows /etc/groups /etc/gshadow /etc/skel 目录等;
用户和用户组的配置文件,是系统管理员最应该了解和掌握的系统基础之一,从另一方面来说,了解这些文件也是系统安全管理的重要组成部分;
1 /etc/passwd  用户帐号密码文件
[root@jekay /]# cat /etc/passwd
登陆名   口令  UID   GID  用户全称和描述   用户主目录   用户登陆的shell环境
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
……
/etc/passwd 中,每一行都表示的是一个用户的信息;一行有 7 个段位;每个段位用:号分割,如上:
说明:
UID 是用户的 ID 值,是确认用户权限的标识,在系统中每个用户的 UID 的值是唯一的,更确切的说每个用户都要对应一个唯一 UID ,系统管理员应该确保这一规则。系统用户的 UID 的值从 0 开始,是一个正整数,至于最大值可以在 /etc/login.defs 可以查到,一般 Linux 发行版约定为 60000 Linux 中, root UID 0 ,拥有系统最高权限;把几个用户设置为同样的 UID 会造成系统安全的隐患,尤其是设置成 root UID 0
Linux 系统中的用户角色:
用户在系统中是分角色的,在Linux 系统中,由于角色不同,权限和所完成的任务也不同;值得注意的是用户的角色是通过UID和识别的,特别是UID;在系统管理中,系统管理员一定要坚守UID 唯一的特性;
root 用户:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;
虚拟用户:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bindaemonadmftpmail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户;
普通用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的;
 
/etc/login.defs 是设置用户帐号限制的文件 , 在这里我们可配置密码的最大过期天数 , 密码的最大长度约束等内容;
     多数发行版本,添加新用户时的 UID 500 开始的, GID 也是从 500 开始; 500 内的为系统预留;
 
2 /etc/shadows  用户帐号的加密文件
[root@jekay /]# cat /etc/shadow
root:$1$MebjzxXM$0hVmQ6MMDB5ZVVAGuUG 7G 1:13599:0:99999:7:::
bin:*:13599:0:99999:7:::
daemon:*:13599:0:99999:7:::
adm:*:13599:0:99999:7:::
lp:*:13599:0:99999:7:::
sync:*:13599:0:99999:7:::
……
/etc/shadow 文件的内容包括 9 个段位,每个段位之间用:号分割;
第一字段: 用户名(也被称为登录名) ,在/etc/shadow中,用户名和/etc/passwd 是相同的,这样就把passwd shadow中用的用户记录联系在一起;这个字段是非空的;
第二字段:密码(已被加密),如果是有些用户在这段是x,表示这个用户不能登录到系统;这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从 19700101日 算起到最近一次修改口令的时间间隔(天数),您可以通过passwd 来修改用户的密码,然后查看/etc/shadow中此字段的变化;
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的 11日 开始的天数),如果这个字段的值为空,帐号永久可用;
第九字段:保留字段;
/etc/shadow 文件是 /etc/passwd 的投影文件,这个文件并不由 /etc/passwd 而产生的,这两个文件是应该是对应互补的; shadow 内容包括用户及被加密的密码以及其它 /etc/passwd 不能包括的信息,比如用户的有效期限等;这个文件只有 root 权限可以读取和操作,权限如下:
-r--------    1 root     root          740 Mar 27 17:03 /etc/shadow
 
3 /etc/groups  用户组帐号文件
具有某种共同特征的用户集合起来就是用户组( Group )。用户组( Group )配置文件主要有 /etc/group /etc/gshadow ,其中 /etc/gshadow /etc/group 的加密信息文件;
/etc/group 文件相对来说比较简单,通过这个配置文件,我们可以清楚地看到系统中用户组,以及用户属于哪个组,某个组中的用户成员有谁等;
 
Linux 系统下用户组分为 2 种,用户私有组和公有组;
私用组 : 只包含一个用户 , 创建用户时自动创建一个和用户同名的组
公有组 : 可以包含多个用户
  当一个用户属于多个用户组时,某个用户的权限只能是当前所属组的权限,而不能是多个组权限的累加,这与 windows 是不一样的;
不要随便把普通用户加入到 root 组;
[root@jekay /]# cat /etc/group
组名   群组密码   GID   组中用户列表
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
tty:x:5:
……
/etc/group 中的每条记录分四个字段,中间使用:隔开
GID UID 类似,是一个正整数或 0 ,是用户组的 ID 值, GID 0 开始, 0 被系统赋予 root 用户组;系统会预留一些较靠前的 GID 给系统虚拟用户组之用;多数 linux 发行版本预留了 500 ,也就是说新用户组的 GID 500 开始;查看 /etc/login.defs 中的 GID_MIN GID_MAX 值,可以知道 GID 的最大设置值;