gpt4 book ai didi

javascript - 我怎样才能在桌面登录 session 期间记住一些东西

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:46 25 4
gpt4 key购买 nike

我正在用 Node 编写一个命令行程序(尽管如果其他语言使这更容易,我会切换)并将用户数据存储在一个加密文件中。我希望用户在桌面/ssh session 期间提供一次密码,并在她注销之前记住该密码。

大概我的脚本无法修改环境变量,以便它们在调用之间保持不变。 Keychain 和 sudo 等程序如何记住您的密码,并确保在注销时忘记密码?

最佳答案

Sudo 使用 setuid 运行并归 root 所有。因此,任何运行 sudo 的用户实际上都将以 root 用户身份运行 sudo。从那里,sudo(作为 root,代表用户)检查 sudoers 文件(只能由 root 读取)以查看是否允许用户运行 sudo 以及他们可以做什么。如果用户不在 sudoers 文件中,则 sudo 退出并记录尝试。如果用户在 sudoers 文件中,sudo 会询问用户的密码并根据影子文件中的内容检查它(也只能由 root 读取)。如果匹配,sudo 会将访问时间记录在另一个只能由 root 读取的文件中,然后执行命令。该用户在超时期限内后续运行 sudo 不会提示输入密码,因为 sudo 可以检查其最后一条记录的时间。 Sudo 不记得用户的密码。

关键是,无论什么用户运行它,sudo 始终以 root 身份运行,因此可以访问只有 root 才能访问的文件。

我想您的应用程序可以模仿这种行为,使用一个特殊的用户和一个只有该用户获得许可的缓存。重要的是不要保留密码。曾经。

应用程序使用的另一种方法(例如 TrueCrypt)是将密码存储在内存中。此方法仅适用于始终运行的应用程序(如 TrueCrypt 甚至操作系统)。一旦应用程序关闭,“保存”的密码就会丢失。此技术是 mostly secure .

希望这对您有所帮助!

关于javascript - 我怎样才能在桌面登录 session 期间记住一些东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8428747/

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