用户账户管理是我们经常用到的,尤其是对于系统管理员来说,更应该是熟练掌握。
对于用户账户管理我们经常用到的配置文件有:/etc/passwd,/etc/shadow,/etc/group。还有就是/etc/gshadow,不过这个我们一般情况下用不到。
用到的命令则有:useradd,userdel,groupadd,groupdel。还有一些命令就是用来修改上面提到的配置文件的,如果你比较了解那些配置文件,直接去修改配置文件就好了,因为用命令也是去修改他们,直接修改既方便又快。
首先先介绍一下这几个配置文件。
1、/etc/passwd
account:passwd:UID:GID:GECOS:directory:shell
上面这些就是该文件中存储数据的格式,七条内容,六个冒号分隔开,下面逐一介绍一下。
account:用户名,是UID到名称的一种映射。
passwd:密码,在你的配置文件中你会看到一个X,在以前的版本中这个位置就是用来存储加密的密码的,但是这个文件的特性是所有的用户都能够读取,所以密码放在这里非常的不安全,现在的版本都将密码单独的放在在一个配置文件中(/etc/shadow)。
UID:用户的ID,最基本的标识用户的编号。(UID范围:0为root,1--499为系统用户,一般为非交互账户,500以后为普通用户)
GID:用户主组的ID。
GECOS:用户信息说明栏,不是很重要,里面的内容随便,不写也没关系,通常写该用户的姓名,电话之类的。
directory:用户的家目录。
shell:用户登录时默认给该用户使用的shell。
2、/etc/shadow
现在以我电脑上root为例:
该文件中有九条内容,八个冒号分隔开。这个文件中的内容需要读者仔细对比一下,那些关于密码的时间问题不容易搞清楚。我尽可能用我通俗易懂的语言解释。
1、用户名
2、密码散列
3、最近一次更改密码的日期。
4、最短密码期限。(即修改完密码后,在该字段规定的天数内是不能修改此密码的)
5、最长密码期限。(即该密码的有效期,在该字段内规定的天数内该密码是有效的,到期后密码是需要重新修改的。)
6、密码警告期限。(假设该字段内设置为n,即在密码到期的前n天内系统都会给予警告,提示你密码需要修改了)
7、密码非活动期限。(假设该字段内设置为x,即密码到期后你还没有修改,那么你还有x天时间可以修改密码)
8、账户到期日。(即你的账户在该字段规定的时间内有效,到期后则不可用。注意:这是账户到期时间,到期后你的账户就不可用了,修不修改密码就没什么用了。)
9、该字段为保留字段。目前还没有规定其用途。
你会奇怪的发现有些日期是一个5位数,不用奇怪,因为那些都是自1970年1月1日以来的天数。
还有就是如果在密码散列前边加一个!或*,则该用户就会被锁定无法登录。看一看,你的配置文件里绝对会有这样的用户。
chage命令可以用来修改这些时间(个人觉得直接修改配置文件更省事儿)。
示例:
chage -m 0 -M 90 -W 7 -l 14 username
如果执行 chage -d 0 username 。那么该用户在下次登录时将强制修改密码。
chage -l username 列出该用户的当前设置。
3、/etc/group
groupname:passwd:GID:member
这个就比较简单明了了。
groupname:用户组名
passwd:用户组密码
GID:用户组ID。
member:所属该组的成员。
下面介绍常用的命令。
1、useradd 参数 username
参数:
-u:后面跟UID,是一组数字。为用户指定一个特定的UID。
-g:后面跟用户组名或GID。为用户指定一个初始组。
-G:后面跟用户组名或GID。为用户添加附属组。
-c:随便加一些内容。会保存在/etc/passwd第5栏中。
-d:后面跟路径。为用户指定一个家目录,而不使用默认值。
-s:后面跟一个shell,为用户指定一个shell。
-m:强制建立用户家目录。
-M:强制不要建立用户家目录。
-r:建立的用户的UID会受/etc/login.fefs限制。
2、userdel -r username 会删除用户和用户主目录。用这个就足够了。
3、groupadd 参数 groupname
参数:
-g:为用户指定一个特定的GID。
-r:建立的用户组GID会受到/etc/login.defs限制。
4、groupdel groupname 这个不用多说,直接用就行了。
如果你在创建的时候出了错,也不用删除在重新创建,使用usermod和groupmod这两个命令就可以修改,后面跟的参数和uderadd和groupadd大部分相同,有个别的例外,用起来很简单。实在不会man一下吧!
usermod -L username 就是将用户锁定(在/etc/passwd第二字段前加一!)。
usermod -U username 解除锁定(去掉那个!)。