gpt4 book ai didi

c - 如何在干净的环境中从 C 调用 bash?

转载 作者:IT王子 更新时间:2023-10-29 00:41:55 26 4
gpt4 key购买 nike

我正在尝试设置我的计算机,以便我可以使用连接到 python 脚本的外部设备对自己进行身份验证。我首先用我自己的程序替换了 inittab 中的 login 程序,并且我已经能够进入 bash shell。问题是它没有像(我推测)通过 login 提供的环境那样的新环境。我知道有很多方法可以让我弄乱环境,但我还没有找到给它一个“默认”配置的方法,如果这样的事情有意义的话。

最佳答案

一些想法:

首先,在大多数情况下,使用可插入登录架构 PAM 会更好。这将确保所有支持 PAM 的应用程序和服务都可以使用身份验证方法(例如 ssh),并且无法使用常规服务绕过它。

如果您真的想替换login,我建议您使用unsetenv 自行清理环境。对于每个环境变量集(您可以使用 environ 来确定已经设置的变量)。清理环境后,您可以使用类似 exec 的调用将您的程序替换为 bash,在此上下文中环境将保持不变。您可能希望添加命令行参数 -l 以启动 bash,因为它会被 login 调用。

Bash 在启动时运行一些初始化脚本。您可以检查 /etc/profile/etc/bashrc 和类似文件以查找您不想设置的环境变量。

如果要依赖env (这还不错,因为它应该出现在每个 linux 系统上)你可以使用 env -i bash 在干净的环境中调用 bash。

关于c - 如何在干净的环境中从 C 调用 bash?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18094242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com