每天动态更改Linux root密码

每天动态更改Linux root密码

我想每天根据日期更改我的 root 密码。密码就像字符串和日期的组合。下面的代码工作正常。

echo -e "pass"$(date +"%d%m%Y")"\n""pass"$(date +"%d%m%Y") | passwd root

但是如何在每次系统启动时以及在午夜日期更改时调用它(如果系统处于打开状态)?

答案1

我不知道为什么你会想这么做的。如果您担心安全问题,如果有人在 7 月 1 日发现您的密码,他们会在 7 月 31 日或 9 月 15 日知道该密码......

要回答您的问题,如果您想确保在预定时间或系统重新启动时完成密码更新,您需要安装anacron.它可以进行周期性调度,而无需假设系统始终处于开启状态。我不确定您使用的是什么发行版,但它应该位于您的包档案中。

或者,您可以混合使用传统脚本cron(在午夜更改密码)和初始化脚本(处理重新启动的情况),以确保密码始终是最新的。

无论哪种情况,都将更改密码的命令放入脚本中(例如,/usr/local/sbin/rootpass.sh),然后使用cronanacron和 从初始化脚本中调用该脚本。

答案2

我认为通过尽可能保护帐户来强化系统并不是一个坏主意。在许多情况下,它会在身份验证过程中引入额外的障碍,但如果您愿意解决这个问题,那就没问题了。不过,需要考虑的一个重要事项是风险实际上引入了更多缺陷通过增加系统的复杂性。

仅使用开源且经过彻底测试的软件是系统安全和加密领域的常见做法。因此,我不建议您使用自己的基于脚本的解决方案,而是使用现有的解决方案。

我的建议是使用基于时间的一次性密码(TOTP)例如由以下实施者实现:Google Authenticator.这是一种两步验证方法,使用当前时间生成一次性密码。对于 Google Authenticator,此密码可以通过 Google Authenticator 智能手机应用程序计算。通常的配置方式是依次要求(固定)用户帐户密码和一次性密码。这可插拔验证器模块(PAM) 可用于配置哪些应用程序(SSH、显示管理器...)和帐户(root、所有...)需要一次性密码。

根据您的目标,我建议您阅读教程[1][2]看看您是否可以使它们满足您的需求。

相关内容