我正在尝试设置我的计算机,以便我可以使用连接到python脚本的外部设备对自己进行身份验证.我开始通过更换login程序inittab用我自己的计划,我已经能够进入一个bash shell的.问题是,它没有获得像(我推测)那样的新环境login.我知道有办法让我弄乱环境,但我还没有找到一种方法来给它一个"默认"配置,即使这样的事情是有道理的.
一些想法:
首先,大多数情况下使用可插拔登录架构 PAM 会更好。这将确保所有启用 PAM 的应用程序和服务都可以使用身份验证方法(例如 ssh),并且无法使用常规服务绕过它。
如果您确实想替换,我建议您自己使用每个环境变量集login来清除环境(您可以用来确定已设置的变量)。清理环境后,您可以使用-like 调用将程序替换为 a ,在此上下文中环境将保持不变。您可能想要添加命令行参数来启动 bash,因为它会被 调用。unsetenvenvironexecbash-llogin
Bash 在启动时运行一些初始化脚本。您可以检查/etc/profile,/etc/bashrc和类似文件以查找您不想设置的环境变量。
如果你想依赖env(这还不错,因为它应该存在于每个 Linux 系统上),你可以env -i bash在干净的环境中调用 bash。