gpt4 book ai didi

java - 有没有办法在 java 中找到真正的 UID 而不是在 linux 中找到有效的 UID?

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

如果我以 sudo 用户身份运行 java 类文件,则有效用户标识会更改为 sudo 用户。我可以使用 System.getProperty("user.name") 获取有效的用户 ID。但是,有什么办法可以从 java 程序中获取真实的用户 ID 吗?变量 $SUDO_USER 在 shell 中不是一个可靠的变量。

最佳答案

是的,只需使用getuid(2) 系统调用,而不是geteuid(2) 系统调用。当您执行具有可执行权限的文件(可执行文件,而不是 shell 脚本)和 setuid 位(参见 chmod(2) 该位的描述)

一旦你执行了一个设置了 setuid 位的文件,你将拥有你的登录用户 id 作为真实使用的 id,有效的用户 id 将是文件所属的用户和你(作为普通用户) , 而不是 root) 只能通过 seteuid(2) 系统调用在真实用户 ID 和有效用户 ID 之间进行更改。普通用户不允许进行更多更改。 super 用户可以使用 setuid(2) 系统调用更改两者。

关于java - 有没有办法在 java 中找到真正的 UID 而不是在 linux 中找到有效的 UID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33876473/

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