gpt4 book ai didi

java - 对于尝试访问不可读文件的 JAVA 程序,unix 看到的用户名是什么

转载 作者:行者123 更新时间:2023-11-30 03:16:00 25 4
gpt4 key购买 nike

如果我尝试在受读保护的文件上创建 FileInputStream

new FileInputStream(new File("temp.txt"))

然后我收到一个 FileNotFoundException ,其中包含消息访问被拒绝

操作系统看到的该 java 程序的用户名是什么?

最佳答案

操作系统实际上永远不会看到用户名,但在类 Unix 系统中,它会看到 UID(用户 ID)。这将是运行应用程序的 JVM 进程所有者的任何用户的 UID。

这可能是当前登录的用户,或者 setuid位在 JVM 可执行文件的 ACL 中配置(或在系统其他位置的安全策略中),则可以根据该策略以另一个用户的权限运行(本质上 JVM 将显示为以不同用户身份运行)。

简而言之,这取决于您的系统配置。

<小时/>在 Java 中,要获取表示运行应用程序的当前用户的字符串,可以使用以下命令:

System.getProperty("user.name");

无论您运行什么操作系统,这都将起作用。然后,您可以将其打印到控制台或您有权访问的其他地方。如果这个问题只是基于解决访问被拒绝问题,那么我建议将其打印到控制台,然后确保该用户对您尝试从中读取/写入的任何目录具有读/写权限到。

关于java - 对于尝试访问不可读文件的 JAVA 程序,unix 看到的用户名是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32570232/

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