【问题标题】:Check if another user have the permission to write a File检查其他用户是否有写入文件的权限
【发布时间】:2011-05-12 02:54:24
【问题描述】:

在安装过程中,我需要检查用户提供的路径是否对指定用户可写。

路径(像 \fileserver\share 这样的 UNC 路径)可能对正在执行 Setup.exe 的用户不可写(这是一个仅限 Windows 的软件),所以我认为 How do you check for permissions to write to a directory or file? 可能不适合我.

我知道在 Java7 中会有一个新的 Filesystem-API,但是 Java7 还没有发布。

编辑: 用户 1 - 运行安装程序 用户 2 - 运行已安装的应用程序

如果用户1收到错误“权限被拒绝”我仍然不知道,关于用户2。我需要在安装过程中检查其他用户帐户的权限。

我可以使用net use /user:<user2> <passwd2>,但我不确定我是否获得了我需要的所有信息。我得到信息,路径存在,但如果允许用户 2 写入,则不存在。

【问题讨论】:

    标签: java windows security permissions io


    【解决方案1】:

    在 java 7 之前,您没有标准方法来检查用户是否可以使用标准库写入 java 文件。这是因为旧的 java io 不够强大。

    例如,如果考虑文件所有者等,File.canWrite() 将不起作用......

    你可以做的是直接签入,例如,尝试写一个空行给它。 (这需要考虑您的应用程序,如果您的应用程序不关心末尾的空行并自动删除结尾的空行,那么它可以工作......这只是一个示例,考虑到您的应用程序,您可以获得许多棘手的方法应用。

    【讨论】:

    • 对不起,这将检查“我”是否有写入文件的权限。我需要知道其他用户是否可以写入该文件。我可以通过 ProcessBuilder 生成一个 Process 并在另一个用户上下文中编写一个文件来解决这个问题。
    猜你喜欢
    • 2015-05-28
    • 2011-03-10
    • 2016-04-23
    • 1970-01-01
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 2013-12-09
    相关资源
    最近更新 更多