List of usage examples for java.nio.file.attribute PosixFilePermission OWNER_EXECUTE
PosixFilePermission OWNER_EXECUTE
To view the source code for java.nio.file.attribute PosixFilePermission OWNER_EXECUTE.
Click Source Link
From source file:org.assertj.examples.PathAssertionsExamples.java
@Test public void path_rwx_assertion() throws Exception { assumeTrue(SystemUtils.IS_OS_UNIX);//w w w . j a v a 2 s . c o m // Create a file and set permissions to be readable by all. write(rwxFile, "rwx file".getBytes()); // using PosixFilePermission to set file permissions 777 Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>(); // add owners permission perms.add(PosixFilePermission.OWNER_READ); perms.add(PosixFilePermission.OWNER_WRITE); perms.add(PosixFilePermission.OWNER_EXECUTE); // add group permissions perms.add(PosixFilePermission.GROUP_READ); perms.add(PosixFilePermission.GROUP_WRITE); perms.add(PosixFilePermission.GROUP_EXECUTE); // add others permissions perms.add(PosixFilePermission.OTHERS_READ); perms.add(PosixFilePermission.OTHERS_WRITE); perms.add(PosixFilePermission.OTHERS_EXECUTE); Files.setPosixFilePermissions(rwxFile, perms); final Path symlinkToRwxFile = FileSystems.getDefault().getPath("symlink-to-rwxFile"); if (!Files.exists(symlinkToRwxFile)) { createSymbolicLink(symlinkToRwxFile, rwxFile); } // The following assertions succeed: assertThat(rwxFile).isReadable().isWritable().isExecutable(); assertThat(symlinkToRwxFile).isReadable().isWritable().isExecutable(); }
From source file:net.krotscheck.util.ResourceUtilTest.java
/** * Assert that we can read a resource as a stream. * * @throws Exception Should not be thrown. *//*from w w w. jav a 2s . com*/ @Test public void testGetResourceAsStream() throws Exception { String name = "/valid-resource-file.txt"; InputStream stream = ResourceUtil.getResourceAsStream(name); Assert.assertTrue(stream.available() > 0); String invalidName = "/invalid-resource-file.txt"; InputStream invalidContent = ResourceUtil.getResourceAsStream(invalidName); Assert.assertTrue(invalidContent instanceof NullInputStream); Assert.assertTrue(invalidContent.available() == 0); // Make the file write only File resource = ResourceUtil.getFileForResource(name); Set<PosixFilePermission> oldPerms = Files.getPosixFilePermissions(resource.toPath()); Set<PosixFilePermission> perms = new HashSet<>(); perms.add(PosixFilePermission.OWNER_WRITE); perms.add(PosixFilePermission.OWNER_EXECUTE); perms.add(PosixFilePermission.GROUP_WRITE); perms.add(PosixFilePermission.GROUP_EXECUTE); perms.add(PosixFilePermission.OTHERS_WRITE); perms.add(PosixFilePermission.OTHERS_EXECUTE); // Write only... Files.setPosixFilePermissions(resource.toPath(), perms); String writeOnlyName = "/valid-resource-file.txt"; InputStream writeOnlyContent = ResourceUtil.getResourceAsStream(writeOnlyName); Assert.assertTrue(writeOnlyContent instanceof NullInputStream); Assert.assertTrue(writeOnlyContent.available() == 0); Files.setPosixFilePermissions(resource.toPath(), oldPerms); }
From source file:org.mitre.mpf.wfm.util.PropertiesUtil.java
@PostConstruct private void init() throws IOException, WfmProcessingException { parseCoreMpfNodes();//from ww w . j a v a 2s .c o m mpfPropertiesConfig = mpfPropertiesConfigBuilder.getCompleteConfiguration(); if (!mediaTypesFile.exists()) { copyResource(mediaTypesFile, getMediaTypesTemplate()); } Set<PosixFilePermission> permissions = new HashSet<>(); permissions.add(PosixFilePermission.OWNER_READ); permissions.add(PosixFilePermission.OWNER_WRITE); permissions.add(PosixFilePermission.OWNER_EXECUTE); Path share = Paths.get(getSharePath()).toAbsolutePath(); if (!Files.exists(share)) { share = Files.createDirectories(share, PosixFilePermissions.asFileAttribute(permissions)); } if (!Files.exists(share) || !Files.isDirectory(share)) { throw new WfmProcessingException( String.format("Failed to create the path '%s'. It does not exist or it is not a directory.", share.toString())); } artifactsDirectory = createOrFail(share, "artifacts", permissions); markupDirectory = createOrFail(share, "markup", permissions); outputObjectsDirectory = createOrFail(share, "output-objects", permissions); remoteMediaCacheDirectory = createOrFail(share, "remote-media", permissions); uploadedComponentsDirectory = createOrFail(share, getComponentUploadDirName(), permissions); createOrFail(getPluginDeploymentPath().toPath(), "", EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.GROUP_READ, PosixFilePermission.GROUP_EXECUTE, PosixFilePermission.OTHERS_READ, PosixFilePermission.OTHERS_EXECUTE)); // create the default models directory, although the user may have set "detection.models.dir.path" to something else createOrFail(share, "models", permissions); log.info("All file resources are stored within the shared directory '{}'.", share); log.debug("Artifacts Directory = {}", artifactsDirectory); log.debug("Markup Directory = {}", markupDirectory); log.debug("Output Objects Directory = {}", outputObjectsDirectory); log.debug("Remote Media Cache Directory = {}", remoteMediaCacheDirectory); log.debug("Uploaded Components Directory = {}", uploadedComponentsDirectory); }
From source file:io.stallion.boot.NewJavaPluginRunAction.java
public void makeNewApp(String javaFolder) throws Exception { targetFolder = javaFolder;/* w ww . j a v a 2s. co m*/ templating = new JinjaTemplating(targetFolder, false); setGroupId(promptForInputOfLength("What is the maven group name? ", 5)); setPluginName( promptForInputOfLength("What is the plugin package name (will be appended to the groupid)? ", 2)); setArtifactId(promptForInputOfLength("What maven artifact id? ", 5)); setPluginNameTitleCase(getPluginName().substring(0, 1).toUpperCase() + getPluginName().substring(1)); setJavaPackageName(getGroupId() + "." + getPluginName()); File dir = new File(javaFolder); if (!dir.isDirectory()) { FileUtils.forceMkdir(dir); } String sourceFolder = "/src/main/java/" + getJavaPackageName().replaceAll("\\.", "/"); List<String> paths = list(targetFolder + "/src/main/resources", targetFolder + "/src/main/resources/sql", targetFolder + "/src/test/resources", targetFolder + "/src/main/java/" + getJavaPackageName().replaceAll("\\.", "/"), targetFolder + "/src/test/java/" + getJavaPackageName().replaceAll("\\.", "/")); for (String path : paths) { File file = new File(path); if (!file.isDirectory()) { FileUtils.forceMkdir(file); } } new File(targetFolder + "/src/main/resources/sql/migrations.txt").createNewFile(); Map ctx = map(val("config", this)); copyTemplate("/templates/wizard/pom.xml.jinja", "pom.xml", ctx); copyTemplate("/templates/wizard/PluginBooter.java.jinja", sourceFolder + "/" + pluginNameTitleCase + "Plugin.java", ctx); copyTemplate("/templates/wizard/PluginSettings.java.jinja", sourceFolder + "/" + pluginNameTitleCase + "Settings.java", ctx); copyTemplate("/templates/wizard/MainRunner.java.jinja", sourceFolder + "/MainRunner.java", ctx); copyTemplate("/templates/wizard/Endpoints.java.jinja", sourceFolder + "/Endpoints.java", ctx); copyTemplate("/templates/wizard/build.py.jinja", "build.py", ctx); copyTemplate("/templates/wizard/run-dev.jinja", "run-dev.sh", ctx); Files.setPosixFilePermissions(FileSystems.getDefault().getPath(targetFolder + "/build.py"), set(PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE)); Files.setPosixFilePermissions(FileSystems.getDefault().getPath(targetFolder + "/run-dev.sh"), set(PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE)); copyFile("/templates/wizard/app.bundle", "src/main/resources/assets/app.bundle"); copyFile("/templates/wizard/app.js", "src/main/resources/assets/app.js"); copyFile("/templates/wizard/app.scss", "src/main/resources/assets/app.scss"); copyFile("/templates/wizard/file1.js", "src/main/resources/assets/common/file1.js"); copyFile("/templates/wizard/file2.js", "src/main/resources/assets/common/file2.js"); copyFile("/assets/vendor/jquery-1.11.3.js", "src/main/resources/assets/vendor/jquery-1.11.3.js"); copyFile("/assets/basic/stallion.js", "src/main/resources/assets/vendor/stallion.js"); copyFile("/templates/wizard/app.jinja", "src/main/resources/templates/app.jinja"); }
From source file:org.everit.osgi.dev.maven.util.FileManager.java
private static void setPermissionsOnFileInNonPosixSystem(final File file, final Set<PosixFilePermission> perms) { if (perms.contains(PosixFilePermission.OWNER_EXECUTE)) { file.setExecutable(true, !perms.contains(PosixFilePermission.OTHERS_EXECUTE)); }/*from w w w . j a va 2 s . com*/ if (perms.contains(PosixFilePermission.OWNER_READ)) { file.setReadable(true, !perms.contains(PosixFilePermission.OTHERS_READ)); } if (perms.contains(PosixFilePermission.OWNER_WRITE)) { file.setWritable(true, !perms.contains(PosixFilePermission.OTHERS_WRITE)); } }
From source file:org.roda.core.plugins.InternalPluginsTest.java
@BeforeClass public void setUp() throws Exception { basePath = TestsHelper.createBaseTempDir(getClass(), true, PosixFilePermissions.asFileAttribute(new HashSet<>(Arrays.asList(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OTHERS_READ, PosixFilePermission.OTHERS_EXECUTE)))); boolean deploySolr = true; boolean deployLdap = true; boolean deployFolderMonitor = true; boolean deployOrchestrator = true; boolean deployPluginManager = true; boolean deployDefaultResources = false; RodaCoreFactory.instantiateTest(deploySolr, deployLdap, deployFolderMonitor, deployOrchestrator, deployPluginManager, deployDefaultResources); model = RodaCoreFactory.getModelService(); index = RodaCoreFactory.getIndexService(); LOGGER.info("Running internal plugins tests under storage {}", basePath); }
From source file:org.verwandlung.voj.judger.core.Preprocessor.java
/** * ???./*from www . j a va2s .c o m*/ * Linux, ?UID=1536?, ?Others???. * @param workDirectory */ private void setWorkDirectoryPermission(File workDirectory) throws IOException { if (!System.getProperty("os.name").contains("Windows")) { Set<PosixFilePermission> permissions = new HashSet<>(); permissions.add(PosixFilePermission.OWNER_READ); permissions.add(PosixFilePermission.OWNER_WRITE); permissions.add(PosixFilePermission.OWNER_EXECUTE); permissions.add(PosixFilePermission.GROUP_READ); permissions.add(PosixFilePermission.GROUP_WRITE); permissions.add(PosixFilePermission.GROUP_EXECUTE); permissions.add(PosixFilePermission.OTHERS_READ); permissions.add(PosixFilePermission.OTHERS_WRITE); permissions.add(PosixFilePermission.OTHERS_EXECUTE); Files.setPosixFilePermissions(workDirectory.toPath(), permissions); } }
From source file:com.facebook.buck.artifact_cache.ArtifactUploaderTest.java
/** compressSavesExecutableBit asserts that compress()-ing an executable file stores the x bit. */ @Test/* ww w . java 2s . c om*/ public void compressSavesExecutableBit() throws Exception { ProjectFilesystem fs = FakeProjectFilesystem.createJavaOnlyFilesystem("/"); Path out = fs.getRootPath().resolve("out"); Path file = fs.getRootPath().resolve("file"); fs.writeContentsToPath("foo", file); Files.setPosixFilePermissions(fs.getPathForRelativePath(file), ImmutableSet.of(PosixFilePermission.OWNER_EXECUTE)); // Compress ArtifactUploader.compress(fs, ImmutableList.of(file), out); // Decompress+unarchive, and check that the only file is an executable. try (TarArchiveInputStream fin = new TarArchiveInputStream( new ZstdCompressorInputStream(Files.newInputStream(out)))) { ArrayList<TarArchiveEntry> entries = new ArrayList<>(); TarArchiveEntry entry; while ((entry = fin.getNextTarEntry()) != null) { entries.add(entry); } assertThat(entries, Matchers.hasSize(1)); assertThat(MorePosixFilePermissions.fromMode(entries.get(0).getMode()), Matchers.contains(PosixFilePermission.OWNER_EXECUTE)); } }
From source file:org.apache.hadoop.yarn.server.security.CertificateLocalizationService.java
@Override protected void serviceInit(Configuration conf) throws Exception { parseSuperuserMaterial(conf);/*from w w w .j av a 2 s . c o m*/ String localizationDir = service.toString() + "_" + LOCALIZATION_DIR_NAME; materializeDir = Paths.get(SYSTEM_TMP, localizationDir); File fileMaterializeDir = materializeDir.toFile(); if (!fileMaterializeDir.exists()) { fileMaterializeDir.mkdir(); Set<PosixFilePermission> materializeDirPerm; if (service == ServiceType.NM) { // the nm user should have full access to the directory, everyone else should have only execute access // to traverse the directory materializeDirPerm = EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.GROUP_EXECUTE, PosixFilePermission.OTHERS_EXECUTE); } else { // Only the rm user should access to this directory materializeDirPerm = EnumSet.of(PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.OWNER_EXECUTE); } Files.setPosixFilePermissions(materializeDir, materializeDirPerm); } LOG.debug("Initialized at dir: " + materializeDir.toString()); super.serviceInit(conf); }
From source file:org.ng200.openolympus.cerberus.executors.JavaExecutor.java
@Override public ExecutionResult execute(final Path program) throws IOException { final Path chrootRoot = this.storage.getPath().resolve("chroot"); final Path chrootedProgram = chrootRoot.resolve(program.getFileName().toString()); FileAccess.createDirectories(chrootedProgram); FileAccess.copyDirectory(program, chrootedProgram, StandardCopyOption.REPLACE_EXISTING, StandardCopyOption.COPY_ATTRIBUTES); final Path outOfMemoryFile = chrootRoot.resolve("outOfMemory"); final Path policyFile = this.storage.getPath().resolve("olymp.policy"); try (Stream<Path> paths = FileAccess.walkPaths(storage.getPath())) { paths.forEach(path -> {/* ww w . j a v a2 s. c om*/ try { Files.setPosixFilePermissions(path, new HashSet<PosixFilePermission>( Lists.from(PosixFilePermission.OWNER_EXECUTE, PosixFilePermission.OWNER_READ, PosixFilePermission.OWNER_WRITE, PosixFilePermission.GROUP_EXECUTE, PosixFilePermission.GROUP_READ, PosixFilePermission.GROUP_WRITE, PosixFilePermission.OTHERS_EXECUTE, PosixFilePermission.OTHERS_READ))); } catch (Exception e) { throw new RuntimeException(e); } }); } this.buildPolicy(chrootRoot, policyFile); final CommandLine commandLine = new CommandLine("sudo"); commandLine.addArgument("olympus_watchdog"); this.setUpOlrunnerLimits(commandLine); commandLine.addArgument("--security=0"); commandLine.addArgument("--jail=/"); commandLine.addArgument("--"); commandLine.addArgument("/usr/bin/java"); commandLine.addArgument("-classpath"); commandLine.addArgument(chrootedProgram.toAbsolutePath().toString()); commandLine.addArgument("-Djava.security.manager"); commandLine.addArgument("-Djava.security.policy=" + policyFile.toAbsolutePath().toString()); commandLine.addArgument("-Xmx" + this.getMemoryLimit()); commandLine.addArgument("-Xms" + this.getMemoryLimit()); commandLine.addArgument(MessageFormat.format("-XX:OnOutOfMemoryError=touch {0}; echo \"\" > {0}", outOfMemoryFile.toAbsolutePath().toString()), false); commandLine.addArgument("Main"); final DefaultExecutor executor = new DefaultExecutor(); executor.setWatchdog(new ExecuteWatchdog(20000)); // 20 seconds for the // sandbox to // complete executor.setWorkingDirectory(chrootRoot.toFile()); executor.setStreamHandler(new PumpStreamHandler(this.outputStream, this.errorStream, this.inputStream)); try { executor.execute(commandLine); } catch (final IOException e) { if (!e.getMessage().toLowerCase().equals("stream closed")) { throw e; } } final ExecutionResult readOlrunnerVerdict = this.readOlrunnerVerdict(chrootRoot.resolve("verdict.txt")); if (FileAccess.exists(outOfMemoryFile)) { readOlrunnerVerdict.setResultType(ExecutionResultType.MEMORY_LIMIT); } readOlrunnerVerdict.setMemoryPeak(this.getMemoryLimit()); return readOlrunnerVerdict; }