一天一点学习Linux之用户(user)和用户组(group)理论知识

来源:岁月联盟 编辑:exp 时间:2011-10-13

通过前面几个内容的学习,我想各位看官对linux有了定的了解,今天我们就来看看在linux系统中重要的一个部分,那就是用户(user)和用户组(group)以及如何来管理用户(user)和用户组(group
先来了解一些用户(user)和用户组(group)有相关知识

 

Linux系统的用户角色

 

root用户:系统唯一一个用户,可以登录系统并操作系统任何文件和命令,拥有最高权限;
系统用户:这类用户不具有登录系统的能力,但却是系统运行不可缺少的用户,比如bin、daemon、adm、ftp、mail等;这类用户都系统自身拥有的,而非后来添加的,当然我们也可以自己增加这类用户;
普通用户:这类用户能登录系统,但只能操作自己家目录的内容;权限有限;这类用户都是系统管理员根据实际需要自行添加的;

如果说,我想为系统增加很多用户,而这些用户的权限都是一样的,这些相同的权限设置会不会不方便?当然不是,我们可以使用用户组。
用户组(group)就是具有相同特征的用户(user)的集合体。他是通过GID来识别的。
我们可以把这些具有相同特性的用户规划到一个组里面,这样管理起来是不是就方便了很多。

我们也可以把用户和用户组比喻成我们的家庭一样。家庭成员就相当于用户,而这个家就相当于一个组。家庭成员具有一些相同的权限。如进入家门,看电视等等。但家庭成员之间还是有个人隐私的,如个人日记等等。这些是家庭其他成员所没有的权限。那么这个家庭之外的,我们都称为其他(other)。

passwd
注:
1、UID为0就表示管理员ROOT,他有最高的权限。如果你想把某个用户调整成系统的管理员ROOT的时候,可以直接把这个用户的UID改成0。所以说,系统的超级管理员不一定只有ROOT。但还是不建议把其他的用户UID改成0哦!
2、系统默认把UID从1~499做为系统的帐户使用。这主要是出于安全方面的考虑,系统上的服务,应尽可能的拥有较小的限制运行,而且这些帐户应该是不能登陆系统(/sbin/nologin)的。
在这个系统帐户中,还分
1~99:由Linux系统自行建立的系统账号;
100~499:若用户有系统账号需求时,可以使用的账号UID。
3、UID从500~65535是一般用户所使用的UID,其实现在系统最多能提供的UID为2的32次方-1(4294967295)个。

 

/etc/shadow 用户(user)影子密码文件;
这个文件也和passwd的格式差不多,也是用“:”分隔,只是代表的意义稍有不同。

showd
这个文件的格式如下

注:
1、因为这个文件的特殊性(是放置密码的地方),所以他的权限只有一个R权限(权限的问题,我们后面再来学习,这里先了解)。
2、在密码栏前面加上个!或*,通过改变密码字段长度,就会让密码暂时失效了,也就是说,禁止了某个用户的登陆权限了。
3、在RHEL6中,加密的算法和以前的版本也不一样了,加密后的字段长度也增加了很多。
4、计算某个日期的累加天数,我们可以通过echo $(($(date –date="2011/01/06" +%s)/86400+1))来计算。其中2011/01/06就是想计算的日期,86400为每一天的秒数,%s为1970/01/01 以来的累积总秒数,加上1表示补齐1970/01/01当天。

说了这么多,大家可能还是很模糊,没有关系,我们再来看一下例子。
shadow_example

14980是:2011/01/06
第一和第二个字段:用户名和密码这个我相信大家都明白,只是大家可能会怀疑,密码全不会被翻译成明文,这一点放心,因为相同的密码,经过系统加密后的密码也是不一样的。所以说,由密码反推回明码那不是一件容易的事。
第三个字段14980:表示的是最近一次更改密码的日期2011/01/06
第四个字段3:能够再次修改密码的时间是3天以后,也就是说2011/01/09前,opser不能修改自己的密码。
如果说用户要改自己的密码,那么就会出现下面的提示
You must wait longer to change your password
passwd: Authentication token manipulation error
第五个字段30:密码过期日期在30天后(2011/01/06+30=2011/02/06)。也就是说,在2011/02/06这一天密码就过期了。但如果用户在2011/01/09~2011/02/05这期间改过了密码(为什么不是从2011/01/06开始?因为我们限制了3天内不容许修改密码),由于在更改密码的时候,第三个字段也随之改变,那么这个30天也会随之向后推。因为这个数值是参考第三个字段的。
第六个字段7:是密码过期日前的7天会提示用户密码快要过期。
第七个字段5:如果说用户到2011/02/06还是没有修改密码,那么这个密码还没有过期,还有5天的宽限。好就是说,在2011/02/11前还是可能登陆的,但系统会强制你输入旧密码和新密码。如果说到了2011/02/11还是没有修改的话,那么密码就失效了。
第八个字段15005:无论前面如何限制,只要到了15005=14980+25=2011/01/06+25=2011/01/31这一天,这个帐户就无效了。
我想通过上面的说明,大家对这个文件的意义应该很明白了吧!

 

与用户组(group)相关的配置文件

 

/etc/group 用户组(group)配置文件;
这个文件的格式如下
group

/etc/gshadow 用户组(group)的影子文件;
这个文件的格式如下
gshdow

这两个文件的格式和意义与用户的相关配置文件非常相似,在这里就不做更多的说明了,如果想了解更多,那就可以通过man来自己学习吧。

注:/etc/gshadow这个文件中的密码栏上面是“!”时,表示该用户组不具有用户组管理员。gshadow 最大的功能就是建立用户组管理员

摘自:羽飞博客