Linux账户管理的几个文件

   用户账户管理是我们经常用到的,尤其是对于系统管理员来说,更应该是熟练掌握。

   对于用户账户管理我们经常用到的配置文件有:/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 解除锁定(去掉那个!)。

你可能感兴趣的:(linux,账户文件)