linux查看密码配置文件,如何在Linux上查看和配置密码时效

使用正确的设置,可以强制

用户定期更改密码。以下是查看密码时效以及如何更改其中设置的方法。可以将 Linux 系统上的用户密码配置为永久或设置过期时间,以让人们必须定期重置它们。出于安全原因,通常认为定期更改密码是一种好习惯,但默认并未配置。

27bd35b45797b7f29b34f7bda9011cc8.png

要查看和修改密码时效,你需要熟悉几个重要的

:chage

及其 -l 选项,以及 passwd 命令及其 -S 选项。本文会介绍这些命令,还有其他一些 chage 命令选项来配置密码时效。

查看密码时效设置

确定某个特定帐户是否已设置密码时效的方法是使用如下 chage命令。请注意,除了你自己的帐户以外,其他任何帐户都需要 root 权限。请注意下面的密码到期日期。

$ sudo chage -l dory

Last password change : Mar 15, 2020

Password expires : Jun 13, 2020 <==

Password inactive : never

Account expires : never

Minimum number of days between password change : 10

Maximum number of days between password change : 90

Number of days of warning before password expires : 14

如果未应用密码时效,那么帐户信息将如下所示:

$ sudo chage -l nemo

Last password change : Jan 14, 2019

Password expires : never <==

Password inactive : never

Account expires : Mar 26, 2706989

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

你也可以使用 passwd -S 命令查看某些信息,但是你需要知道输出中的每个字段代表什么:

dory$ passwd -S

dory P 03/15/2020 10 90 14 -1

这里的七个字段代表:

1 – 用户名

2 - 帐户状态(L = 锁定,NP = 无密码,P = 可用密码)

3 – 上次密码更改的日期

4 – 可更改最低时效(如果没有这么多天,则不能更改密码)

5 – 最长时效(这些天后,密码必须更改)

6 – 密码过期前提前警告的天数

7 – 密码过期后锁定之前的天数(设为无效)

需要注意的一件事是,chage 命令不会显示帐户是否被锁定;它仅显示密码时效设置。另一方面,passwd -S 命令将告诉你密码被锁定的时间。在此例中,请注意帐户状态为 L:

$ sudo passwd -S dorothy

dorothy L 07/09/2019 0 99999 7 10

通过将 /etc/shadow 文件中通常包含密码的“哈希”字段变为 !,从而达成锁定的效果。

$ sudo grep dorothy /etc/shadow

dorothy:!:18086:0:99999:7:10:: <==

帐户被锁定的事实在 chage 输出中并不明显:

$ sudo chage -l dorothy

Last password change : Jul 09, 2019

Password expires : never

Password inactive : never

Account expires : never

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

密码时效的一些选项

最常用的设置是最短和最长的天数。它们经常结合使用。例如,你可以配置一个密码,使其最长不能使用超过 90 天(最大),然后添加一个有效期为一周或 10 天(最小)的密码。这样可以确保用户不会在需要更改密码后马上改回以前的密码。

$ sudo chage -M 90 -m 10 shark

$ sudo chage -l shark

Last password change : Mar 16, 2020

Password expires : Jun 14, 2020

Password inactive : never

Account expires : never

Minimum number of days between password change : 10 <==

Maximum number of days between password change : 90 <==

Number of days of warning before password expires : 7

你还可以使用 -E 选项为帐户设置特定的到期日期。

$ sudo chage -E 2020-11-11 tadpole

$ sudo chage -l tadpole

Last password change : Oct 15, 2019

Password expires : never

Password inactive : never

Account expires : Nov 11, 2020 <==

Minimum number of days between password change : 0

Maximum number of days between password change : 99999

Number of days of warning before password expires : 7

密码时效可能是一个重要的选择,只要它不鼓励用户使用过于简单的密码或以不安全的方式写下来即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用Python中的datetime和pickle模块来实现用户名和密码的一个月登录时效。 首先,你需要创建一个用户类,其中包含用户名、密码和最后登录时间的属性。然后,你可以将用户对象保存到文件中,以便下次登录时可以检查用户的最后登录时间。 以下是一个简单的示例代码: ```python import datetime import pickle class User: def __init__(self, username, password): self.username = username self.password = password self.last_login = None def save_users(users): with open('users.pickle', 'wb') as file: pickle.dump(users, file) def load_users(): try: with open('users.pickle', 'rb') as file: users = pickle.load(file) except FileNotFoundError: users = [] return users def login(username, password): users = load_users() for user in users: if user.username == username and user.password == password: if user.last_login is None or datetime.datetime.now() - user.last_login > datetime.timedelta(days=30): user.last_login = datetime.datetime.now() save_users(users) return True return False # 示例用法 users = load_users() users.append(User('user1', 'password1')) users.append(User('user2', 'password2')) save_users(users) username = input('请输入用户名:') password = input('请输入密码:') if login(username, password): print('登录成功!') else: print('登录失败或登录时效已过期!') ``` 在上面的示例中,我们创建了一个名为`User`的用户类,包含用户名、密码和最后登录时间的属性。`save_users`函数用于将用户列表保存到文件中,`load_users`函数用于从文件中加载用户列表。 在登录函数`login`中,我们首先加载用户列表,然后遍历每个用户对象,检查用户名和密码是否匹配。如果匹配成功,我们检查最后登录时间是否为空或者距离当前时间是否超过了30天。如果通过了这两个条件,我们更新最后登录时间并保存用户列表,并返回登录成功。 注意:上述代码只是一个简单的示例,实际应用中可能需要更加复杂的用户验证和存储机制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值