java.nio.file.Files.setPosixFilePermissions()方法的使用及代码示例

x33g5p2x  于2022-01-17 转载在 其他  
字(11.8k)|赞(0)|评价(0)|浏览(207)

本文整理了Java中java.nio.file.Files.setPosixFilePermissions()方法的一些代码示例,展示了Files.setPosixFilePermissions()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Files.setPosixFilePermissions()方法的具体详情如下:
包路径:java.nio.file.Files
类名称:Files
方法名:setPosixFilePermissions

Files.setPosixFilePermissions介绍

暂无

代码示例

代码示例来源:origin: loklak/loklak_server

public final static void protectPath(Path path) {
  try {
    Files.setPosixFilePermissions(path, securePerm);
  } catch (UnsupportedOperationException | IOException e) {}
}

代码示例来源:origin: apache/storm

/**
 * Set directory permissions to (OWNER)RWX (GROUP)R-X (OTHER)--- On some systems that do not support this, it may become a noop
 *
 * @param dir the directory to change permissions on
 * @throws IOException on any error
 */
public void restrictDirectoryPermissions(File dir) throws IOException {
  Set<PosixFilePermission> perms = new HashSet<>(
    Arrays.asList(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE,
           PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.GROUP_READ,
           PosixFilePermission.GROUP_EXECUTE));
  Files.setPosixFilePermissions(dir.toPath(), perms);
}

代码示例来源:origin: apache/incubator-pinot

private void setDirectoryPermissions(File v3Directory)
  throws IOException {
 EnumSet<PosixFilePermission> permissions = EnumSet
   .of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE,
     PosixFilePermission.GROUP_READ, PosixFilePermission.GROUP_WRITE, PosixFilePermission.GROUP_EXECUTE,
     PosixFilePermission.OTHERS_READ, PosixFilePermission.OTHERS_EXECUTE);
 Files.setPosixFilePermissions(v3Directory.toPath(), permissions);
}

代码示例来源:origin: wildfly/wildfly

public static void makeExec(File file) throws IOException {
 try {
   Files.setPosixFilePermissions(file.toPath(), new HashSet<>(Arrays.asList(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE, GROUP_READ, GROUP_WRITE, GROUP_EXECUTE, OTHERS_READ, OTHERS_EXECUTE)));
 } catch (Throwable ignore) {
   // Our best effort was not good enough :)
 }
}

代码示例来源:origin: pxb1988/dex2jar

private static void setExec(Path path) {
    try {
      path.toFile().setExecutable(true);
      Files.setPosixFilePermissions(path, PosixFilePermissions.fromString("rwxr-xr-x"));
    } catch (Exception ex) {
      // ignored
    }
  }
}

代码示例来源:origin: Alluxio/alluxio

/**
 * Changes local file's permission.
 *
 * @param filePath that will change permission
 * @param perms the permission, e.g. "rwxr--r--"
 */
public static void changeLocalFilePermission(String filePath, String perms) throws IOException {
 Files.setPosixFilePermissions(Paths.get(filePath), PosixFilePermissions.fromString(perms));
}

代码示例来源:origin: jenkinsci/jenkins

private static void makeWritable(@Nonnull Path path) throws IOException {
  if (!Functions.isWindows()) {
    try {
      PosixFileAttributes attrs = Files.readAttributes(path, PosixFileAttributes.class);
      Set<PosixFilePermission> newPermissions = attrs.permissions();
      newPermissions.add(PosixFilePermission.OWNER_WRITE);
      Files.setPosixFilePermissions(path, newPermissions);
    } catch (NoSuchFileException ignored) {
      return;
    } catch (UnsupportedOperationException ignored) {
      // PosixFileAttributes not supported, fall back to old IO.
    }
  }
  /*
   * We intentionally do not check the return code of setWritable, because if it
   * is false we prefer to rethrow the exception thrown by Files.deleteIfExists,
   * which will have a more useful message than something we make up here.
   */
  path.toFile().setWritable(true);
}

代码示例来源:origin: netty/netty

private static boolean canExecuteExecutable(File file) throws IOException {
  if (PlatformDependent.javaVersion() < 7) {
    // Pre-JDK7, the Java API did not directly support POSIX permissions; instead of implementing a custom
    // work-around, assume true, which disables the check.
    return true;
  }
  // If we can already execute, there is nothing to do.
  if (file.canExecute()) {
    return true;
  }
  // On volumes, with noexec set, even files with the executable POSIX permissions will fail to execute.
  // The File#canExecute() method honors this behavior, probaby via parsing the noexec flag when initializing
  // the UnixFileStore, though the flag is not exposed via a public API.  To find out if library is being
  // loaded off a volume with noexec, confirm or add executalbe permissions, then check File#canExecute().
  // Note: We use FQCN to not break when netty is used in java6
  Set<java.nio.file.attribute.PosixFilePermission> existingFilePermissions =
      java.nio.file.Files.getPosixFilePermissions(file.toPath());
  Set<java.nio.file.attribute.PosixFilePermission> executePermissions =
      EnumSet.of(java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE,
          java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE,
          java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE);
  if (existingFilePermissions.containsAll(executePermissions)) {
    return false;
  }
  Set<java.nio.file.attribute.PosixFilePermission> newPermissions = EnumSet.copyOf(existingFilePermissions);
  newPermissions.addAll(executePermissions);
  java.nio.file.Files.setPosixFilePermissions(file.toPath(), newPermissions);
  return file.canExecute();
}

代码示例来源:origin: Netflix/Priam

private synchronized void ensurePaths() throws IOException {
  File directory = mergedConfigDirectory.toFile();
  if (directory.mkdirs()) {
    Files.setPosixFilePermissions(
        mergedConfigDirectory, PosixFilePermissions.fromString("rwx------"));
    logger.info("Set up PriamConfigurationPersister directory successfully");
  }
}

代码示例来源:origin: neo4j/neo4j

public static Closeable withPermissions( Path file, Set<PosixFilePermission> permissions ) throws IOException
  {
    Set<PosixFilePermission> originalPermissions = Files.getPosixFilePermissions( file );
    Files.setPosixFilePermissions( file, permissions );
    return () -> Files.setPosixFilePermissions( file, originalPermissions );
  }
}

代码示例来源:origin: redisson/redisson

private static boolean canExecuteExecutable(File file) throws IOException {
  if (PlatformDependent.javaVersion() < 7) {
    // Pre-JDK7, the Java API did not directly support POSIX permissions; instead of implementing a custom
    // work-around, assume true, which disables the check.
    return true;
  }
  // If we can already execute, there is nothing to do.
  if (file.canExecute()) {
    return true;
  }
  // On volumes, with noexec set, even files with the executable POSIX permissions will fail to execute.
  // The File#canExecute() method honors this behavior, probaby via parsing the noexec flag when initializing
  // the UnixFileStore, though the flag is not exposed via a public API.  To find out if library is being
  // loaded off a volume with noexec, confirm or add executalbe permissions, then check File#canExecute().
  // Note: We use FQCN to not break when netty is used in java6
  Set<java.nio.file.attribute.PosixFilePermission> existingFilePermissions =
      java.nio.file.Files.getPosixFilePermissions(file.toPath());
  Set<java.nio.file.attribute.PosixFilePermission> executePermissions =
      EnumSet.of(java.nio.file.attribute.PosixFilePermission.OWNER_EXECUTE,
          java.nio.file.attribute.PosixFilePermission.GROUP_EXECUTE,
          java.nio.file.attribute.PosixFilePermission.OTHERS_EXECUTE);
  if (existingFilePermissions.containsAll(executePermissions)) {
    return false;
  }
  Set<java.nio.file.attribute.PosixFilePermission> newPermissions = EnumSet.copyOf(existingFilePermissions);
  newPermissions.addAll(executePermissions);
  java.nio.file.Files.setPosixFilePermissions(file.toPath(), newPermissions);
  return file.canExecute();
}

代码示例来源:origin: embulk/embulk

private void setExecutableIfAvailable(final String targetFileName) throws IOException {
  final Path targetPath = this.pluginBasePath.resolve(targetFileName);
  final FileSystem fileSystem = targetPath.getFileSystem();
  if (fileSystem.supportedFileAttributeViews().contains("posix")) {
    // NTFS does not support PosixFilePermissions, for example.
    final Set<PosixFilePermission> permissions =
        new HashSet<PosixFilePermission>(Files.getPosixFilePermissions(targetPath));
    permissions.add(PosixFilePermission.OWNER_EXECUTE);
    permissions.add(PosixFilePermission.GROUP_EXECUTE);
    permissions.add(PosixFilePermission.OTHERS_EXECUTE);
    Files.setPosixFilePermissions(targetPath, permissions);
  }
}

代码示例来源:origin: embulk/embulk

private void setExecutableIfAvailable(final String targetFileName) throws IOException {
  final Path targetPath = this.basePath.resolve(targetFileName);
  final FileSystem fileSystem = targetPath.getFileSystem();
  if (fileSystem.supportedFileAttributeViews().contains("posix")) {
    // NTFS does not support PosixFilePermissions, for example.
    final Set<PosixFilePermission> permissions =
        new HashSet<PosixFilePermission>(Files.getPosixFilePermissions(targetPath));
    permissions.add(PosixFilePermission.OWNER_EXECUTE);
    permissions.add(PosixFilePermission.GROUP_EXECUTE);
    permissions.add(PosixFilePermission.OTHERS_EXECUTE);
    Files.setPosixFilePermissions(targetPath, permissions);
  }
}

代码示例来源:origin: org.codehaus.plexus/plexus-utils

public static void chmod( File file, int mode )
  throws IOException
{
  Path path = file.toPath();
  if ( !Files.isSymbolicLink( path ) )
  {
    Files.setPosixFilePermissions( path, getPermissions( mode ) );
  }
}

代码示例来源:origin: jenkinsci/jenkins

/**
 * Change permissions via NIO.
 */
private static void _chmod(File f, int mask) throws IOException {
  // TODO WindowsPosix actually does something here (WindowsLibC._wchmod); should we let it?
  // Anyway the existing calls already skip this method if on Windows.
  if (File.pathSeparatorChar==';')  return; // noop
  if (Util.NATIVE_CHMOD_MODE) {
    PosixAPI.jnr().chmod(f.getAbsolutePath(), mask);
  } else {
    Files.setPosixFilePermissions(fileToPath(f), Util.modeToPermissions(mask));
  }
}

代码示例来源:origin: Alluxio/alluxio

/**
 * Formats the worker data folder.
 *
 * @param folder folder path
 */
private static void formatWorkerDataFolder(String folder) throws IOException {
 Path path = Paths.get(folder);
 if (Files.exists(path)) {
  FileUtils.deletePathRecursively(folder);
 }
 Files.createDirectory(path);
 // For short-circuit read/write to work, others needs to be able to access this directory.
 // Therefore, default is 777 but if the user specifies the permissions, respect those instead.
 String permissions = ServerConfiguration.get(PropertyKey.WORKER_DATA_FOLDER_PERMISSIONS);
 Set<PosixFilePermission> perms = PosixFilePermissions.fromString(permissions);
 Files.setPosixFilePermissions(path, perms);
 FileUtils.setLocalDirStickyBit(path.toAbsolutePath().toString());
}

代码示例来源:origin: eclipse-vertx/vert.x

public Void perform() {
  try {
   Path target = vertx.resolveFile(path).toPath();
   if (dirPermissions != null) {
    Files.walkFileTree(target, new SimpleFileVisitor<Path>() {
     public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
      //The directory entries typically have different permissions to the files, e.g. execute permission
      //or can't cd into it
      Files.setPosixFilePermissions(dir, dirPermissions);
      return FileVisitResult.CONTINUE;
     }
     public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
      Files.setPosixFilePermissions(file, permissions);
      return FileVisitResult.CONTINUE;
     }
    });
   } else {
    Files.setPosixFilePermissions(target, permissions);
   }
  } catch (SecurityException e) {
   throw new FileSystemException("Accessed denied for chmod on " + path);
  } catch (IOException e) {
   throw new FileSystemException(e);
  }
  return null;
 }
};

代码示例来源:origin: apache/flink

private void makeJarDirReadOnly() {
  try {
    Files.setPosixFilePermissions(jarDir, new HashSet<>(Arrays.asList(
      PosixFilePermission.OTHERS_READ,
      PosixFilePermission.GROUP_READ,
      PosixFilePermission.OWNER_READ,
      PosixFilePermission.OTHERS_EXECUTE,
      PosixFilePermission.GROUP_EXECUTE,
      PosixFilePermission.OWNER_EXECUTE)));
  } catch (final Exception e) {
    Assume.assumeNoException(e);
  }
}

代码示例来源:origin: eclipse-vertx/vert.x

private void setPerms(Path path, String perms) {
 if (Utils.isWindows() == false) {
  try {
   Files.setPosixFilePermissions( path, PosixFilePermissions.fromString(perms) );
  }
  catch(IOException e) {
   throw new RuntimeException(e.getMessage());
  }
 }
}

代码示例来源:origin: apache/flink

@Test
public void testDoNotCancelJobIfSavepointFails() throws Exception {
  setUpWithCheckpointInterval(10L);
  try {
    Files.setPosixFilePermissions(savepointDirectory, Collections.emptySet());
  } catch (IOException e) {
    Assume.assumeNoException(e);
  }
  try {
    cancelWithSavepoint();
  } catch (Exception e) {
    assertThat(ExceptionUtils.findThrowable(e, CheckpointTriggerException.class).isPresent(), equalTo(true));
  }
  final JobStatus jobStatus = clusterClient.getJobStatus(jobGraph.getJobID()).get(60, TimeUnit.SECONDS);
  assertThat(jobStatus, equalTo(JobStatus.RUNNING));
  // assert that checkpoints are continued to be triggered
  triggerCheckpointLatch = new CountDownLatch(1);
  assertThat(triggerCheckpointLatch.await(60L, TimeUnit.SECONDS), equalTo(true));
}

相关文章

微信公众号

最新文章

更多