分类: LINUX
2008-06-15 11:39:01
本文主要介绍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
用户
:系统唯一,是真实的,可以登录系统,可以操作系统任何文件和命令,拥有最高权限;
虚拟用户
:这类用户也被称之为伪用户或假用户,与真实用户区分开来,这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以添加虚拟用户;
普通用户
:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员自行添加的;
/etc/login.defs是设置用户帐号限制的文件,在这里我们可配置密码的最大过期天数,密码的最大长度约束等内容;
多数发行版本,添加新用户时的UID从500开始的,GID也是从500开始;500内的为系统预留;
2、/etc/shadows 用户帐号的加密文件
[root@jekay /]# cat /etc/shadow
root:$1$MebjzxXM$0hVmQ6MMDB5ZVVAGuUG
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,表示这个用户不能登录到系统;这个字段是非空的;
第三字段:上次修改口令的时间;这个时间是从
第四字段:两次修改口令间隔最少的天数;如果设置为0,则禁用此功能;也就是说用户必须经过多少天才能修改其口令;此项功能用处不是太大;默认值是通过/etc/login.defs文件定义中获取,PASS_MIN_DAYS 中有定义;
第五字段:两次修改口令间隔最多的天数;这个能增强管理员管理用户口令的时效性,应该说在增强了系统的安全性;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_MAX_DAYS 中定义;
第六字段:提前多少天警告用户口令将过期;当用户登录系统后,系统登录程序提醒用户口令将要作废;如果是系统默认值,是在添加用户时由/etc/login.defs文件定义中获取,在PASS_WARN_AGE 中定义;
第七字段:在口令过期之后多少天禁用此用户;此字段表示用户口令作废多少天后,系统会禁用此用户,也就是说系统会不能再让此用户登录,也不会提示用户过期,是完全禁用;
第八字段:用户过期日期;此字段指定了用户作废的天数(从1970年的
第九字段:保留字段;
/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的最大设置值;