首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java-如何在更改文件权限之前以编程方式将用户更改为root?

java-如何在更改文件权限之前以编程方式将用户更改为root?
EN

Stack Overflow用户
提问于 2018-10-10 06:19:30
回答 1查看 436关注 0票数 1

在Java中,我想动态更改Linux文件的文件权限。我试着按照另一个来源How do I programmatically change file permissions?的建议用Files.setPosixFilePermissions设置它,但是我得到了错误

不允许执行

java.nio.file.FileSystemException::操作

我发现我无法以用户身份设置文件权限,因为该文件属于root用户。我的问题是:在java中,是否可以通过从用户切换到根用户来执行Files.setPosixFilePermissions?然后在完成后切换回用户?

下面是我的大部分代码:

代码语言:javascript
复制
String path = "/usr/local/bin/driver";
try {
  Utility.setAsExecutable(path);
} catch (IOException e) {
  logger.error("Unable to set driver as executable.");
  e.printStackTrace();
}

  public static void setAsExecutable(String filePath) throws IOException {

    // using PosixFilePermission to set file permissions 755
    Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
    perms.add(PosixFilePermission.OWNER_READ);
    perms.add(PosixFilePermission.OWNER_WRITE);
    perms.add(PosixFilePermission.OWNER_EXECUTE);

    perms.add(PosixFilePermission.GROUP_READ);
    perms.add(PosixFilePermission.GROUP_EXECUTE);

    perms.add(PosixFilePermission.OTHERS_READ);
    perms.add(PosixFilePermission.OTHERS_EXECUTE);

    Files.setPosixFilePermissions(Paths.get(filePath), perms);
    logger.info("Modified as executable " + filePath);

  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-10 06:23:07

无法更改正在运行的进程( JVM或任何其他进程)的所有者。

但是,您可以创建一个新的、有特权的进程来执行“脏”工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52730104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档