互联网中的任何应用都离不开用户账号与密码,只要涉及到管理就定会有用户账号的概念,Linux系统下也不例外,无规矩不成方圆,维护好本地的用户账户与组也是管理好我们Linux系统的大前提。
一、用户与组的概念
相信大家只要用过Windows系统都能够理解用户与组的关系,Linux是一个多用户多任务的操作系统,任何一个要使用系统资源的用户都必须先向系统管理员申请一个账号,然后以这个账号的身份进入系统,与Windows XP不同的是,Linux系统下可以进行多用户多任务的操作。在Red Hat Enterprise系统中,每一种账号可以创建42亿多个,当然这是理论值,我想不会有哪一台服务器的用户数量会超过42亿多。组的概念也很好理解,他就是用来记录一组用户的数据。
二、用户账号的管理
1.passwd
在Linux系统下,/etc/passwd文件中存储了本机所有的系统账号与用户账号,我们可以用vi编辑器手工的方式在这个文件下添加用户,当然这不是一个很好的添加用户的方法,但是却有助于我们了解passwd文件都是由什么来组成的,如下图所示。
我们以最后一行为例,“abuve”代表的是所要创建的用户;“X”是代表当前用户设有密码,当然密码文件是不存放在这里的;后面的这两个“500”分别代表用户ID和组ID,在Linux系统下,ID在1~500是为系统账户所预留的,而500往后是为普通用户预留的,如果要设置哪个用户为管理员的话,我们可以将用户与组的ID改为0;“This is my username”是账号描述信息,没有太多的意义;/home/abuve是这个用户的根目录,也就是说系统启动后会默认进入这个目录;最后的用户登录shell信息,就是用户登录系统时使用的shell。
2.shadow
在了解完/etc/passwd这个文件之后,我们来看看/etc/shadow这个文件,那么在早期的Unix系统中,用户账号与密码都是都是同一存放在passwd文件中的,虽然当时的密码已经做过加密处理,但是任何一个用户都可以读取这个文件,这样就造成了一定的安全隐患,为了解决这一问题就产生了shadow文件,而这个文件也只有管理员有权限读取,所以在一定程度上保证了系统的安全性,但由于这个文件同样存在着被破解的可能,所以管理起来一定不要泄露给他人,下面就让我们来看看这个shadow文件。
同样的我们可以使用vi编辑器打开这个文件,那么这里我们以root这个账户为例,看看他的后面都跟了什么参数,首先这一长串的密文相信大家都能够看明白,就是这个用户的加密密码,当然下面的密码都是明文的,同时我们可以注意到下面的账户后面会有一个星号,这是代表禁止这个账户的登录,如果我们不想让哪个用户登录的话,可以在这里添加一个星号;密码后面的这个“15057”指的是这段记录上次改动的信息,Linux系统默认是从1970年1月1日开始计算的,很让人纠结吧,这是不知道为什么要用这样的计算方式;后面的“0”很好理解,是指当前密码要经过多少天才可以更改,如果是0的话表示随时都可以更改;接下来的“99999”是指密码经过多少天就会失效,所以必须在设置的天数以前修改密码以保证系统的安全性;后面的“7”表示系统在用户密码过期的前7天发出警告,这里默认设置为7;最后两个分别代表的是账号失效期与账号取消日期,以及最后的功能预留位。
3.创建用户
在没有什么特别要求的情况下,我们一般使用“useradd”这条命令来添加用户,这条命令的语法格式如下
useradd [-u  UID] //用来指定账号的UID,如果这个参数为空的话,系统会最后一个可用的UID作为新账号使用的UID
[-g  GROUP] //定义用户的主要群组,使用这个命令前,一定要确保该组的存在
[-G  GROUPS] //指定用户的次要组,可以在这里指定多个次要组,他们之间只要用逗号连接起来就可以了
[-d  HOME] //指定用户的主目录,默认的主目录是建立在/home/下的,而且目录名称与所创建的用户名称相同
[-s  SHELL] //指定用户登录所执行的程序
[-c  COMMENT] //指定用户账户的说明信息
[-p  PASSWORD] //定义加密后的密码密码数据
[-m|-M] //表示是否要建立用户的主目录,m表示建立而M表示不建立
[-n] //取消自动建立账号的私有群组
[-r] //用来指定一个系统用户的账号
原创文章请注明转载自阿布的博客,本文地址:http://www.abuve.com/post/40.html