Python脚本中的身份验证

0 投票
1 回答
1557 浏览
提问于 2025-04-16 10:33

我正在编写一个主控脚本,用来管理我们的基础设施。安全性是一个很重要的问题,所以我想解决两个方面:

首先,我希望用户能够运行这个应用程序,然后系统会提示他们用根用户的凭据(也就是管理员账号)登录。如果登录失败,就会触发一个发送邮件的事件,并锁定这个程序。我可以通过检查 /etc/passwd 文件来进行身份验证吗?还有,我该如何锁定这个应用程序呢?

其次,我想知道如何保护这个应用程序不被修改。我可能需要把某些属性写死在应用程序里。对于一个可以执行但不能被编辑的脚本,理想的权限设置是什么样的呢?

1 个回答

2

虽然这个解决方案有点复杂,但最安全的方法是采用客户端/服务器的方式,把你的主控脚本做成一个系统服务,只有超级用户(root)可以读取和运行。你可以通过 init.d 启动系统服务。

当服务启动时,你需要打开一个套接字或远程过程调用(RPC)服务器来处理控制命令。在Python中,这可以很简单地通过 Twisted 来实现。

要通过 /etc/passwd 进行身份验证,你可以使用 cryptpwd 这两个Python模块。

撰写回答