【问题标题】:Getting "Access Denied" Error While Editing HOSTS Via JAVA program通过 JAVA 程序编辑主机时出现“拒绝访问”错误
【发布时间】:2015-03-27 17:11:46
【问题描述】:

通过 Java 程序编辑“主机”文件时出现“拒绝访问”错误。 程序需要管理员权限才能编辑 Hosts 文件。

那么是否有任何解决方案可以为 java 程序提供该管理权限,以便它可以编辑 Hosts 文件。

** 注意 ** 我正在使用 Window 8.1 操作系统。 主机文件位置是: C:\Windows\System32\Drivers\etc\Hosts

【问题讨论】:

  • HOSTS 文件并不是您真正应该弄乱的东西。修改需要管理员权限,因为您可以将任何 URL 设置为您选择的任何位置(病毒和网络钓鱼网站想要做的事情)。您唯一真正的解决方案是以管理员身份运行您的应用程序。

标签: java edit access-denied hosts system-administration


【解决方案1】:

查看 AccessController API:Java Access Controller

可以肯定的是,当用户运行 Java 程序时,用户必须右键单击并选择“以管理员身份运行”。

另一种选择是您可以读取文件,在内存中进行更改(文件可以作为字符串读取),然后写出文件以替换 HOSTS 文件。同样,您肯定需要管理员权限。

快速谷歌搜索还显示了一个包的源代码,可以让你编辑主机文件,你可能想看看。不过,它仍然肯定需要管理员权限。 Link here

看看这个previous SO question,它可能会给你一些想法。

编写此类程序的主要问题是权限。 Hosts 文件是每个操作系统的关键部分,从逻辑上讲,只有在其周围设置安全层才能防止任何随机程序更改 hosts 文件,从而避免所有这些额外的障碍。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 2014-10-23
    • 2016-08-17
    • 1970-01-01
    • 2016-05-05
    • 2014-07-07
    • 1970-01-01
    相关资源
    最近更新 更多