Linux平台及应用
潘小玲 郑国华 丁敏

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

口令管理和口令时效

发布时间:2020-03-14 21:41   发布人:潘小玲   浏览次数:563

(3)口令管理和口令时效

1)使用passwd命令进行口令管理

创建用户账户之后,还要给新用户设置口令。为此需使用命令passwd,其格式是:

passwd [<选项>][<登录用户名>]

常用选项如下表所示。

passwd 命令的常用选项

选项

说     明

选项

说   明

-S

列出口令的状态信息

-d

删除口令

-l

锁定用户账户

-k

保持口令不变,直到口令过期失效后方能更改

-u

解除已锁定账户

-stdin

从标准输入读取口令(菲交互模式)

注意:

(1)在输入口令时,屏幕上不会回显。口令的选取至少用8个字符,最好大小写字母和数字及特殊字符搭配使用,尽量不要用英文单词作为口令。

(2)只有管理员账户(root) 可以更改其他用户的口令,普通用户只能更改 自己的口令,且在更改口令之前,系统会要求用户输入旧的口令。

下面给出几个passwd命令的使用示例。

操作步骤3.2 passsd命令的使用示例

//1.创建新用户jason,显示口令状态,为其设置口令

# useradd jason

# passwd -S jason

jason LK 2020-03-13 0 99999 7 -1 (Password locked.)

# passwd jason

Changing password for user jason.

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

//2.用户jason要更改自己的口令

#su- jason        //切换到jason 用户

$ passwd

Changing password for user jason.

Changing password for jason.

(current) UNIX password:

New password:

Retype new password:

passwd: all authentication tokens updated successfully.

$exit                     //返回root的Shell

logout

#

//3.超级用户可以使用如下命令进行用户口令管理

# passwd -S jason             //显示口令状态

jason PS 2020-03-13 0 99999 7 -1 (Password set, SHA512 crypt.)

# passwd -l jason             //锁定用户jason

Locking password for user jason.

passwd: Success

# passwd -S jason             //显示口令状态

jason LK 2020-03 -13 0 99999 7 -1 (Password locked.)

# passwd -u jason              //解除对用户jason的锁定

Unlocking password for user jason.

passwd: Success.

# passwd -S jason              //显示口令状态:

jason PS 2020-03 -13 0 99999 7-1 (Password set, SHA512 crypt)

# passwd -d jason              //清空jason的口令

Removing password for user jason.

passwd: Success

# passwd -S jason              //显示口令状态:

jason NP 2020-03-13 0 99999 7 -1 (Empty password.)

# passwd jason                //重新设置用户jason的口令

Changing password for user jason.

New UNIX password:

Retype new UNIX password:

passwd: all authentication tokens updated successfully.

# passwd -S jason               //显示口令状态

jason PS 2020-03-13 0 99999 7 -1 (Password set, SHA512 crypt)

#

2)chage命令

硬件计算能力如今已经非常强大,这大大地缩短了利用自动运行的程序来猜测口令的时间。口令时效是系统管理员用来防止机构内不良口令的一种技术。防止口令被攻击的方法就是经常改变口令。为安全起见,要求用户定期改变用户口令是明智之举。

口令时效意味着过了一段预先设定的时间后,用户会被提示创建一个新口令。它所根据的理论是,如果用户被强制定期改变口令,某个口令的破译对入侵者来说就只有有限的利用机会。这种用来强制用户在一段时间之后更改口令的机制称为口令时效。

在Linux系统上,修改口令时效分为:

Ø  对于未来要创建的所有用户的口令时效需修改/etc/login.defs文件的相关参数。

Ø  对已存在的用户修改口令时效是通过chage命令来管理。

(1)设置新添用户的口令时效

编辑/etc/login.defs,通过指定下表中描述的几个参数来设置口令实效的默认设定。

/etc/login.defs中与口令时效相关的参数

参     数

说      明

PASS_MAX_DAYS

设定在多少天后要求用户修改口令。默认口令时效的天数为99999,即关闭了口令时效。明智的设定一般是60天(2个月)强制更改一次口令

PASS_MIN_DAYS

设定在本次口令修改后,至少要经过多少天后才允许更改口令

PASS_WARN_AGE

设定在口令失效前多少天开始通知用户更改口令(一般在用户刚刚登录系统时就会收到警告通知)

(2)设置已存在用户的口令时效

chage命令的格式是:

chage [<选项>] <用户登录名>

下表中列出了chage命令的选项说明。

chage命令的选项说明

选项

描 述

-m   days

指定用户必须改变口令所间隔的最少天数。如果值为0,口令就不会过期(PASS_MIN_DAYS)

-M   days

指定口令有效的最多天数。当该选项指定的天数加上-d选项指定的天数小于当前的日期时,用户在使用该账号前就必须改变口令(PASS_MAX_DAYS)

-d   days

指定自从1970年1月1日起,口令被改变的天数

-I   days

指定口令过期后,账号被锁前不活跃的天数。如果值为0,账号在口令过期后就不会被锁

-E   date

指定账号被锁的日期,日期格式为YYYY-MM-DD。若不用日期,也可以使用自1970年1月I日后约过的天数

-W   days

指定口令过期前要警告用户的天数(PASS_WARN_AGE)

-l

列出指定用户当前的口令时效信息,以确定账号何时过期

下面给出几个使用chage命令的例子。

操作步骤3.3 使用chage命令的例子

//1.使用户下次登录之后修改口令

# chage d 0 jason

//2.用户jason两天内不能更改口令,并且口令最长的存活期为30天

//并在口令过期前5天通知jason

# chage -m2 -M 30 _W 5 jason

//3.查看用户jason当前的口令时效信息

# chage -l jason

Last password change                            : password must be changed

Password expires                                : password must be changed

Password inactive                               : password must be changed

Account expires                                 : never

Minimum number of days between password change    : 2

Maximum number of days between password change    : 30

Number of days of warning before password expires     : 5

注意:

1.也可以使用chage <用户名>进入交互模式修改用户的口令时效。

2.使用chage命令实质上是修改影子口令文件/etc/shadow中的与口令时效相关的字段值。

3. chage命令仅适用于本地系统账户,对LDAP账户和数据库账户不起作用。

 

制订一项策略,定义多长时间后一个口令必须进行更改,然后强制执行该策略,是非常不错的一个做法。在解雇了某个雇员后,口令时效策略会保证该雇员不可能在被解雇3个月后发现他的口令依然可用。即使系统管理员忘了删除该雇员的账号,该账号也会因口令时效策略而被自动锁定。当然,这一点并不能成为不及时删除该雇员账号的理由,但是这个策略的确提供了一层额外的安全防护,尤其是在过去常常忽视及时清理账号的情况下。