Java 类java.nio.file.attribute.PosixFilePermission 实例源码
项目:SVNAutoMerger
文件:Merger.java
/**
* Create localconf folder and properties file necessary to run build task in order to check merge integrity.
* @param branchName
*/
public void createLocalConfigFile(String branchName) throws Exception {
String branchPath = SvnUtils.TEMP_FOLDER + "/" + branchName;
//create localconf directory
String newDirectoryPath = branchPath + "/localconf";
if ( !Files.exists( Paths.get(newDirectoryPath))) {
Set<PosixFilePermission> permissions = PosixFilePermissions.fromString("rwxrwxrwx");
FileAttribute<Set<PosixFilePermission>> fileAttributes = PosixFilePermissions
.asFileAttribute(permissions);
Files.createDirectory(Paths.get(newDirectoryPath), fileAttributes);
}
//copy properties template
Files.copy(
Paths.get(branchPath + "/common/conf/worldnettps.properties.template"),
Paths.get(newDirectoryPath + "/worldnettps.properties"),
StandardCopyOption.REPLACE_EXISTING);
//setting glassfish directory in properties file
String appServerDir = PropertiesUtil.getString("appserver.dir");
String sedCommand = String.format(
"sed -i '/glassfish.dir/c\\glassfish.dir=%s' localconf/worldnettps.properties", appServerDir);
CommandExecutor.run( sedCommand, branchPath);
logger.info("worldnettps.properties file has been created in localconf folder.");
}
项目:incubator-servicecomb-java-chassis
文件:FilePerm.java
/**
* 获取Posix权限
*/
public static Set<PosixFilePermission> getPosixPerm(int perm) {
StringBuilder permStr = new StringBuilder();
permStr.append(uCanRead(perm) ? "r" : "-");
permStr.append(uCanWrite(perm) ? "w" : "-");
permStr.append(uCanExec(perm) ? "x" : "-");
permStr.append(gCanRead(perm) ? "r" : "-");
permStr.append(gCanWrite(perm) ? "w" : "-");
permStr.append(gCanExec(perm) ? "x" : "-");
permStr.append(oCanRead(perm) ? "r" : "-");
permStr.append(oCanWrite(perm) ? "w" : "-");
permStr.append(oCanExec(perm) ? "x" : "-");
return PosixFilePermissions.fromString(permStr.toString());
}
项目:elasticsearch_my
文件:NodeEnvironmentEvilTests.java
public void testMissingWritePermission() throws IOException {
assumeTrue("posix filesystem", isPosix);
final String[] tempPaths = tmpPaths();
Path path = PathUtils.get(randomFrom(tempPaths));
try (PosixPermissionsResetter attr = new PosixPermissionsResetter(path)) {
attr.setPermissions(new HashSet<>(Arrays.asList(PosixFilePermission.OTHERS_READ, PosixFilePermission.GROUP_READ,
PosixFilePermission.OWNER_READ)));
Settings build = Settings.builder()
.put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toAbsolutePath().toString())
.putArray(Environment.PATH_DATA_SETTING.getKey(), tempPaths).build();
IOException ioException = expectThrows(IOException.class, () -> {
new NodeEnvironment(build, new Environment(build));
});
assertTrue(ioException.getMessage(), ioException.getMessage().startsWith(path.toString()));
}
}
项目:elasticsearch_my
文件:NodeEnvironmentEvilTests.java
public void testMissingWritePermissionOnIndex() throws IOException {
assumeTrue("posix filesystem", isPosix);
final String[] tempPaths = tmpPaths();
Path path = PathUtils.get(randomFrom(tempPaths));
Path fooIndex = path.resolve("nodes").resolve("0").resolve(NodeEnvironment.INDICES_FOLDER)
.resolve("foo");
Files.createDirectories(fooIndex);
try (PosixPermissionsResetter attr = new PosixPermissionsResetter(fooIndex)) {
attr.setPermissions(new HashSet<>(Arrays.asList(PosixFilePermission.OTHERS_READ, PosixFilePermission.GROUP_READ,
PosixFilePermission.OWNER_READ)));
Settings build = Settings.builder()
.put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toAbsolutePath().toString())
.putArray(Environment.PATH_DATA_SETTING.getKey(), tempPaths).build();
IOException ioException = expectThrows(IOException.class, () -> {
new NodeEnvironment(build, new Environment(build));
});
assertTrue(ioException.getMessage(), ioException.getMessage().startsWith("failed to write in data directory"));
}
}
项目:elasticsearch_my
文件:NodeEnvironmentEvilTests.java
public void testMissingWritePermissionOnShard() throws IOException {
assumeTrue("posix filesystem", isPosix);
final String[] tempPaths = tmpPaths();
Path path = PathUtils.get(randomFrom(tempPaths));
Path fooIndex = path.resolve("nodes").resolve("0").resolve(NodeEnvironment.INDICES_FOLDER)
.resolve("foo");
Path fooShard = fooIndex.resolve("0");
Path fooShardIndex = fooShard.resolve("index");
Path fooShardTranslog = fooShard.resolve("translog");
Path fooShardState = fooShard.resolve("_state");
Path pick = randomFrom(fooShard, fooShardIndex, fooShardTranslog, fooShardState);
Files.createDirectories(pick);
try (PosixPermissionsResetter attr = new PosixPermissionsResetter(pick)) {
attr.setPermissions(new HashSet<>(Arrays.asList(PosixFilePermission.OTHERS_READ, PosixFilePermission.GROUP_READ,
PosixFilePermission.OWNER_READ)));
Settings build = Settings.builder()
.put(Environment.PATH_HOME_SETTING.getKey(), createTempDir().toAbsolutePath().toString())
.putArray(Environment.PATH_DATA_SETTING.getKey(), tempPaths).build();
IOException ioException = expectThrows(IOException.class, () -> {
new NodeEnvironment(build, new Environment(build));
});
assertTrue(ioException.getMessage(), ioException.getMessage().startsWith("failed to write in data directory"));
}
}
项目:elasticsearch_my
文件:InstallPluginCommandTests.java
public void testBinPermissions() throws Exception {
assumeTrue("posix filesystem", isPosix);
Tuple<Path, Environment> env = createEnv(fs, temp);
Path pluginDir = createPluginDir(temp);
Path binDir = pluginDir.resolve("bin");
Files.createDirectory(binDir);
Files.createFile(binDir.resolve("somescript"));
String pluginZip = createPlugin("fake", pluginDir);
try (PosixPermissionsResetter binAttrs = new PosixPermissionsResetter(env.v2().binFile())) {
Set<PosixFilePermission> perms = binAttrs.getCopyPermissions();
// make sure at least one execute perm is missing, so we know we forced it during installation
perms.remove(PosixFilePermission.GROUP_EXECUTE);
binAttrs.setPermissions(perms);
installPlugin(pluginZip, env.v1());
assertPlugin("fake", pluginDir, env.v2());
}
}
项目:elastest-instrumentation-manager
文件:FileTextUtils.java
public static void setAsExecutable(String filePath) throws IOException {
//using PosixFilePermission to set file permissions 755
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_EXECUTE);
//add others permissions
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(Paths.get(filePath), perms);
logger.info("Modified as executable " + filePath);
}
项目:runtime-builder-java
文件:TestUtils.java
public TestWorkspaceBuilder build() throws IOException {
// mkdir -p
Files.createDirectories(path.getParent());
try (Writer out = Files.newBufferedWriter(path, Charset.defaultCharset())) {
out.write(contents);
}
Set<PosixFilePermission> permissions = Sets.newHashSet(
PosixFilePermission.OWNER_READ,
PosixFilePermission.OWNER_WRITE);
if (isExecutable) {
permissions.add(PosixFilePermission.OWNER_EXECUTE);
}
Files.setPosixFilePermissions(path, permissions);
return workspaceBuilder;
}
项目:sonarlint-cli
文件:CommandExecutor.java
public int execute(String[] args, @Nullable Path workingDir, Map<String, String> addEnv) throws IOException {
if (!Files.isExecutable(file)) {
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
perms.add(PosixFilePermission.OWNER_READ);
perms.add(PosixFilePermission.OWNER_EXECUTE);
Files.setPosixFilePermissions(file, perms);
}
ExecuteWatchdog watchdog = new ExecuteWatchdog(TIMEOUT);
CommandLine cmd = new CommandLine(file.toFile());
cmd.addArguments(args);
DefaultExecutor exec = new DefaultExecutor();
exec.setWatchdog(watchdog);
exec.setStreamHandler(createStreamHandler());
exec.setExitValues(null);
if (workingDir != null) {
exec.setWorkingDirectory(workingDir.toFile());
}
in.close();
LOG.info("Executing: {}", cmd.toString());
Map<String, String> env = new HashMap<>(System.getenv());
env.putAll(addEnv);
return exec.execute(cmd, env);
}
项目:ipst
文件:Utils.java
public static void copyFilesAndApplyPermissions(Path sourceDir, Path targetDir, List<String> filenames) throws IOException {
for (String fileName : filenames) {
Files.copy(sourceDir.resolve(fileName),
targetDir.resolve(fileName));
try {
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_WRITE);
perms.add(PosixFilePermission.GROUP_EXECUTE);
perms.add(PosixFilePermission.OTHERS_READ);
perms.add(PosixFilePermission.OTHERS_WRITE);
perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(targetDir.resolve(fileName), perms);
} catch (Throwable ignored) {
}
}
}
项目:roda
文件:FilePopulator.java
private static int permissionToInt(PosixFilePermission permission) {
switch (permission) {
case OWNER_EXECUTE:
return 100;
case GROUP_EXECUTE:
return 10;
case OTHERS_EXECUTE:
return 1;
case OWNER_WRITE:
return 200;
case GROUP_WRITE:
return 20;
case OTHERS_WRITE:
return 2;
case OWNER_READ:
return 400;
case GROUP_READ:
return 40;
case OTHERS_READ:
return 4;
default:
return 0;
}
}
项目:webframework
文件:WebFramework.java
private static void chmodFiles(final Args arg,
final HashMap<String, String> pairs,
final String[] chmodList) throws IOException {
final HashSet<PosixFilePermission> chmodSet = new HashSet<>();
chmodSet.add(PosixFilePermission.OWNER_EXECUTE);
chmodSet.add(PosixFilePermission.OWNER_READ);
chmodSet.add(PosixFilePermission.OWNER_WRITE);
System.out.println("Setting file permissions...");
for(final String filename: chmodList) {
System.out.println("\t" + arg.projectFolder.toString() + substitute(filename, pairs));
final String resourceName = WebFramework.getResourceName(filename);
final Path path =
FileSystems.getDefault().getPath(arg.projectFolder.toString() + substitute(filename, pairs));
Files.setPosixFilePermissions(path, chmodSet);
}
}
项目:twill
文件:LocalLocation.java
private boolean mkdirs(File file, Set<PosixFilePermission> permissions) throws IOException {
if (file.exists()) {
return false;
}
if (file.mkdir()) {
Files.setPosixFilePermissions(file.toPath(), permissions);
return true;
}
File parent = file.getParentFile();
if (parent == null) {
return false;
}
if (!mkdirs(parent, permissions) && !parent.exists()) {
return false;
}
if (file.mkdir()) {
Files.setPosixFilePermissions(file.toPath(), permissions);
return true;
}
return false;
}
项目:appengine-plugins-core
文件:GenericArchivesVerifier.java
public static void assertFilePermissions(Path testRoot) throws IOException {
Path file1 = testRoot.resolve(FILE_1); // mode 664
PosixFileAttributeView allAttributesFile1 =
Files.getFileAttributeView(file1, PosixFileAttributeView.class);
Assert.assertThat(
allAttributesFile1.readAttributes().permissions(),
Matchers.containsInAnyOrder(
PosixFilePermission.OWNER_READ,
PosixFilePermission.OWNER_WRITE,
PosixFilePermission.GROUP_READ));
Path file2 = testRoot.resolve(FILE_2); // mode 777
PosixFileAttributeView allAttributesFile2 =
Files.getFileAttributeView(file2, PosixFileAttributeView.class);
Assert.assertThat(
allAttributesFile2.readAttributes().permissions(),
Matchers.containsInAnyOrder(PosixFilePermission.values()));
}
项目:appengine-plugins-core
文件:FileUtilTest.java
@Test
public void testCopyDirectory_posixPermissions() throws IOException {
assumeTrue(!System.getProperty("os.name").startsWith("Windows"));
Set<PosixFilePermission> permission = Sets.newHashSet();
permission.add(PosixFilePermission.OWNER_READ);
permission.add(PosixFilePermission.GROUP_READ);
permission.add(PosixFilePermission.OTHERS_READ);
permission.add(PosixFilePermission.OTHERS_EXECUTE);
permission.add(PosixFilePermission.OTHERS_WRITE);
Path src = testDir.newFolder("src").toPath();
Path dest = testDir.newFolder("dest").toPath();
Path rootFile = Files.createFile(src.resolve("root1.file"));
Assert.assertNotEquals(
"This test is useless - modified permissions are default permissions",
Files.getPosixFilePermissions(rootFile),
permission);
Files.setPosixFilePermissions(rootFile, permission);
FileUtil.copyDirectory(src, dest);
Assert.assertEquals(
permission, Files.getPosixFilePermissions(dest.resolve(src.relativize(rootFile))));
}
项目:https-github.com-g0t4-jenkins2-course-spring-boot
文件:RepackagerTests.java
@Test
public void addLauncherScript() throws Exception {
this.testJarFile.addClass("a/b/C.class", ClassWithMainMethod.class);
File source = this.testJarFile.getFile();
File dest = this.temporaryFolder.newFile("dest.jar");
Repackager repackager = new Repackager(source);
LaunchScript script = new MockLauncherScript("ABC");
repackager.repackage(dest, NO_LIBRARIES, script);
byte[] bytes = FileCopyUtils.copyToByteArray(dest);
assertThat(new String(bytes)).startsWith("ABC");
assertThat(hasLauncherClasses(source)).isFalse();
assertThat(hasLauncherClasses(dest)).isTrue();
try {
assertThat(Files.getPosixFilePermissions(dest.toPath()))
.contains(PosixFilePermission.OWNER_EXECUTE);
}
catch (UnsupportedOperationException ex) {
// Probably running the test on Windows
}
}
项目:copybara
文件:FileUtil.java
/**
* Tries to add the Posix permissions if the file belongs to a Posix filesystem. This is an
* addition, which means that no permissions are removed.
*
* <p>For Windows type filesystems, it uses setReadable/setWritable/setExecutable, which is only
* supported for the owner, and ignores the rest of permissions.
*/
public static void addPermissions(Path path, Set<PosixFilePermission> permissionsToAdd)
throws IOException {
if (path.getFileSystem().supportedFileAttributeViews().contains("posix")) {
Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(path);
permissions.addAll(permissionsToAdd);
Files.setPosixFilePermissions(path, permissions);
} else {
File file = path.toFile();
if (permissionsToAdd.contains(PosixFilePermission.OWNER_READ)) {
if (!file.setReadable(true)) {
throw new IOException("Could not set 'readable' permission for file: " + path);
}
}
if (permissionsToAdd.contains(PosixFilePermission.OWNER_WRITE)) {
if (!file.setWritable(true)) {
throw new IOException("Could not set 'writable' permission for file: " + path);
}
}
if (permissionsToAdd.contains(PosixFilePermission.OWNER_EXECUTE)) {
if (!file.setExecutable(true)) {
throw new IOException("Could not set 'executable' permission for file: " + path);
}
}
}
}
项目:copybara
文件:GitOriginTest.java
@Test
public void testGitOriginWithHookExitError() throws Exception {
Path hook = Files.createTempFile("script", "script");
Files.write(hook, "exit 1".getBytes(UTF_8));
Files.setPosixFilePermissions(hook, ImmutableSet.<PosixFilePermission>builder()
.addAll(Files.getPosixFilePermissions(hook))
.add(PosixFilePermission.OWNER_EXECUTE).build());
options.gitOrigin.originCheckoutHook = hook.toAbsolutePath().toString();
origin = origin();
Reader<GitRevision> reader = newReader();
thrown.expect(RepoException.class);
thrown.expectMessage("Error executing the git checkout hook");
reader.checkout(origin.resolve("master"), checkoutDir);
}
项目:xmvn
文件:BasicDeployerTest.java
@Test
public void testWriteError()
throws Exception
{
Deployer deployer = getService( Deployer.class );
Path plan = Files.createTempDirectory( "xmvn-test" ).resolve( "plan.xml" );
try ( BufferedWriter bw = Files.newBufferedWriter( plan ) )
{
bw.write( "<metadata/>" );
}
Files.setPosixFilePermissions( plan, Collections.singleton( PosixFilePermission.OTHERS_READ ) );
DeploymentRequest req = new DeploymentRequest();
req.setPlanPath( plan );
req.setArtifact( new DefaultArtifact( "g:a:v" ).setPath( Paths.get( "src/test/resources/simple.xml" ) ) );
DeploymentResult res = deployer.deploy( req );
assertNotNull( res.getException() );
assertTrue( IOException.class.isAssignableFrom( res.getException().getClass() ) );
}
项目:spring-boot-concourse
文件:RepackagerTests.java
@Test
public void addLauncherScript() throws Exception {
this.testJarFile.addClass("a/b/C.class", ClassWithMainMethod.class);
File source = this.testJarFile.getFile();
File dest = this.temporaryFolder.newFile("dest.jar");
Repackager repackager = new Repackager(source);
LaunchScript script = new MockLauncherScript("ABC");
repackager.repackage(dest, NO_LIBRARIES, script);
byte[] bytes = FileCopyUtils.copyToByteArray(dest);
assertThat(new String(bytes)).startsWith("ABC");
assertThat(hasLauncherClasses(source)).isFalse();
assertThat(hasLauncherClasses(dest)).isTrue();
try {
assertThat(Files.getPosixFilePermissions(dest.toPath()))
.contains(PosixFilePermission.OWNER_EXECUTE);
}
catch (UnsupportedOperationException ex) {
// Probably running the test on Windows
}
}
项目:iofabric
文件:Start.java
/**
* creates and grants permission to daemon files directory
*/
private static void setupEnvironment() {
final File daemonFilePath = new File("/var/run/iofabric");
if (!daemonFilePath.exists()) {
try {
daemonFilePath.mkdirs();
UserPrincipalLookupService lookupservice = FileSystems.getDefault().getUserPrincipalLookupService();
final GroupPrincipal group = lookupservice.lookupPrincipalByGroupName("iofabric");
Files.getFileAttributeView(daemonFilePath.toPath(), PosixFileAttributeView.class,
LinkOption.NOFOLLOW_LINKS).setGroup(group);
Set<PosixFilePermission> perms = PosixFilePermissions.fromString("rwxrwx---");
Files.setPosixFilePermissions(daemonFilePath.toPath(), perms);
} catch (Exception e) {
}
}
}
项目:Camel
文件:FileProducerChmodOptionTest.java
private void runChmodCheck(String routeSuffix, String expectedPermissions) throws Exception {
MockEndpoint mock = getMockEndpoint("mock:chmod" + routeSuffix);
mock.expectedMessageCount(1);
String testFileName = "chmod" + routeSuffix + ".txt";
String fullTestFileName = TEST_DIRECTORY + testFileName;
String testFileContent = "Writing file with chmod " + routeSuffix + " option at " + new Date();
mock.expectedFileExists(fullTestFileName, testFileContent);
template.sendBodyAndHeader("direct:write" + routeSuffix, testFileContent, Exchange.FILE_NAME, testFileName);
File f = new File(fullTestFileName);
Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(f.toPath(), LinkOption.NOFOLLOW_LINKS);
assertEquals(expectedPermissions, PosixFilePermissions.toString(permissions));
assertEquals(expectedPermissions.replace("-", "").length(), permissions.size());
assertMockEndpointsSatisfied();
}
项目:spike.x
文件:Files.java
public static void createUnixDirectories(
final Permission perm,
final Path... dirs) throws IOException {
FileAttribute<Set<PosixFilePermission>> attr
= PosixFilePermissions.asFileAttribute(POSIX_OWNrwx);
switch (perm) {
case OWNER_FULL_GROUP_EXEC:
attr = PosixFilePermissions.asFileAttribute(POSIX_OWNrwx_GRPr_x);
break;
case OWNER_FULL_GROUP_EXEC_OTHER_EXEC:
attr = PosixFilePermissions.asFileAttribute(POSIX_OWNrwx_GRPr_x_OTHr_x);
break;
}
for (Path dir : dirs) {
if (!java.nio.file.Files.exists(dir, LinkOption.NOFOLLOW_LINKS)) {
m_logger.debug("Creating directory: {} with permissions: {}", dir, perm);
java.nio.file.Files.createDirectories(dir, attr);
} else {
m_logger.debug("Directory exists: {}", dir);
}
}
}
项目:bunkr
文件:TestPasswordProvider.java
@Test
public void testFromFile() throws Exception
{
File pwFile = folder.newFile();
try(FileOutputStream o = new FileOutputStream(pwFile))
{
o.write("this is a fairly long password".getBytes());
}
Set<PosixFilePermission> permission = new HashSet<>();
permission.add(PosixFilePermission.OWNER_READ);
permission.add(PosixFilePermission.OWNER_WRITE);
Files.setPosixFilePermissions(pwFile.toPath(), permission);
PasswordProvider uic = new PasswordProvider();
uic.setArchivePassword(pwFile);
}
项目:contestparser
文件:RepackagerTests.java
@Test
public void addLauncherScript() throws Exception {
this.testJarFile.addClass("a/b/C.class", ClassWithMainMethod.class);
File source = this.testJarFile.getFile();
File dest = this.temporaryFolder.newFile("dest.jar");
Repackager repackager = new Repackager(source);
LaunchScript script = new MockLauncherScript("ABC");
repackager.repackage(dest, NO_LIBRARIES, script);
byte[] bytes = FileCopyUtils.copyToByteArray(dest);
assertThat(new String(bytes), startsWith("ABC"));
assertThat(hasLauncherClasses(source), equalTo(false));
assertThat(hasLauncherClasses(dest), equalTo(true));
try {
assertThat(Files.getPosixFilePermissions(dest.toPath()),
hasItem(PosixFilePermission.OWNER_EXECUTE));
}
catch (UnsupportedOperationException ex) {
// Probably running the test on Windows
}
}
项目:gocd-gradle-plugin
文件:GradleTaskConfigParser.java
/**
* Adds the executable file permission.
*
* @param file the path to the file
*/
private void addExecutablePermission(String file) {
final Path path = Paths.get(file);
if (Files.exists(path)) {
try {
PosixFileAttributeView attr = Files.getFileAttributeView(path, PosixFileAttributeView.class);
Set<PosixFilePermission> permissions = attr.readAttributes().permissions();
if(permissions.add(PosixFilePermission.OWNER_EXECUTE)) {
logger.info(String.format("Added +x permission to file: %s", file));
}
attr.setPermissions(permissions);
} catch (IOException e) {
logger.error(String.format("Failed to add the executable permissions to file: %s", file));
}
}
}
项目:canvas-data-tools
文件:DumpManager.java
public void archiveDump(final Path fromDir, final Path toDir) throws IOException {
log.info("Archiving " + fromDir + " to " + toDir);
Files.createDirectories(toDir.getParent());
if (Files.exists(toDir)) {
log.info(toDir + " exists. Deleting it");
FileUtils.deleteDirectory(toDir.toFile());
}
final Set<PosixFilePermission> readOnly = new HashSet<PosixFilePermission>();
readOnly.add(PosixFilePermission.OWNER_READ);
readOnly.add(PosixFilePermission.GROUP_READ);
readOnly.add(PosixFilePermission.OTHERS_READ);
try (DirectoryStream<Path> listing = Files.newDirectoryStream(fromDir)) {
for (final Path table : listing) {
if (Files.isDirectory(table)) {
try (DirectoryStream<Path> tableListing = Files.newDirectoryStream(table)) {
for (final Path dumpFile : Files.newDirectoryStream(table)) {
Files.setPosixFilePermissions(dumpFile, readOnly);
}
}
}
}
}
Files.move(fromDir, toDir);
}
项目:POL-POM-5
文件:FileUtilities.java
public Set<PosixFilePermission> intToPosixFilePermission(int mode) {
if (mode >= 1000 || mode < 0) {
throw new IllegalArgumentException("Invalid mode " + mode);
}
final int owner = mode / 100;
final int group = (mode - owner * 100) / 10;
final int others = mode - owner * 100 - group * 10;
if (owner > 7 || group > 7 || others > 7) {
throw new IllegalArgumentException("Invalid mode " + mode);
}
return Sets.union(
Sets.union(singleIntToFilePermission(owner, "OWNER"), singleIntToFilePermission(group, "GROUP")),
singleIntToFilePermission(others, "OTHERS"));
}
项目:PanBox
文件:DropboxVirtualFile.java
DropboxVirtualFile(String fileName, VirtualVolume volume) throws IOException {
super(fileName, volume);
if (file.exists()) {
Set<PosixFilePermission> perms = Files.getPosixFilePermissions(Paths.get(fileName));
long attr = (perms.contains(PosixFilePermission.OWNER_READ) ? TypeMode.S_IRUSR : 0L) |
(perms.contains(PosixFilePermission.OWNER_WRITE) ? TypeMode.S_IWUSR : 0L) |
(perms.contains(PosixFilePermission.OWNER_EXECUTE) ? TypeMode.S_IXUSR : 0L) |
(perms.contains(PosixFilePermission.GROUP_READ) ? TypeMode.S_IRGRP : 0L) |
(perms.contains(PosixFilePermission.GROUP_WRITE) ? TypeMode.S_IWGRP : 0L) |
(perms.contains(PosixFilePermission.GROUP_EXECUTE) ? TypeMode.S_IXGRP : 0L) |
(perms.contains(PosixFilePermission.OTHERS_READ) ? TypeMode.S_IROTH : 0L) |
(perms.contains(PosixFilePermission.OTHERS_WRITE) ? TypeMode.S_IWOTH : 0L) |
(perms.contains(PosixFilePermission.OTHERS_EXECUTE) ? TypeMode.S_IXOTH : 0L);
this.attr = attr;
} else {
this.attr = 256; // 420 init: owner R+W, group+other R
}
}
项目:PanBox
文件:DropboxVirtualFile.java
@Override
public void setAttr(long attr) throws IOException {
this.attr = attr;
if (file.exists()) {
Set<PosixFilePermission> perms = new HashSet<PosixFilePermission>();
// add owners permission
if ((attr & TypeMode.S_IRUSR) > 0) perms.add(PosixFilePermission.OWNER_READ);
if ((attr & TypeMode.S_IWUSR) > 0) perms.add(PosixFilePermission.OWNER_WRITE);
if ((attr & TypeMode.S_IXUSR) > 0) perms.add(PosixFilePermission.OWNER_EXECUTE);
// add group permissions
if ((attr & TypeMode.S_IRGRP) > 0) perms.add(PosixFilePermission.GROUP_READ);
if ((attr & TypeMode.S_IWGRP) > 0) perms.add(PosixFilePermission.GROUP_WRITE);
if ((attr & TypeMode.S_IXGRP) > 0) perms.add(PosixFilePermission.GROUP_EXECUTE);
// add others permissions
if ((attr & TypeMode.S_IROTH) > 0) perms.add(PosixFilePermission.OTHERS_READ);
if ((attr & TypeMode.S_IWOTH) > 0) perms.add(PosixFilePermission.OTHERS_WRITE);
if ((attr & TypeMode.S_IXOTH) > 0) perms.add(PosixFilePermission.OTHERS_EXECUTE);
Files.setPosixFilePermissions(Paths.get(file.getPath()), perms);
}
}
项目:POL-POM-5
文件:FileUtilities.java
private Set<PosixFilePermission> singleIntToFilePermission(Integer mode, String groupType) {
Set<PosixFilePermission> permissions = new HashSet<>(9);
if (Arrays.asList(new Integer[] { 1, 3, 5, 7 }).contains(mode)) {
permissions.add(PosixFilePermission.valueOf(groupType + "_EXECUTE"));
}
if (Arrays.asList(new Integer[] { 2, 3, 6, 7 }).contains(mode)) {
permissions.add(PosixFilePermission.valueOf(groupType + "_WRITE"));
}
if (Arrays.asList(new Integer[] { 4, 5, 6, 7 }).contains(mode)) {
permissions.add(PosixFilePermission.valueOf(groupType + "_READ"));
}
return permissions;
}
项目:datacollector
文件:TestRuntimeEL.java
@Test
public void testLoadResourceRestrictedFailure() throws Exception {
exception.expect(IllegalArgumentException.class);
Path fooFile = Paths.get(resourcesDir.getPath(), "foo.txt");
Files.write(fooFile, "Hello\n".getBytes(StandardCharsets.UTF_8));
Files.setPosixFilePermissions(fooFile, ImmutableSet.of(PosixFilePermission.OTHERS_READ));
RuntimeEL.loadRuntimeConfiguration(runtimeInfo);
try {
RuntimeEL.loadResourceRaw("foo.txt", true);
} finally {
Files.deleteIfExists(fooFile);
}
}
项目:datacollector
文件:TestRuntimeEL.java
@Test
public void testLoadResourceRestrictedSuccess() throws Exception {
Path fooFile = Paths.get(resourcesDir.getPath(), "foo.txt");
Files.write(fooFile, "Hello\n".getBytes(StandardCharsets.UTF_8));
Files.setPosixFilePermissions(fooFile, ImmutableSet.of(
PosixFilePermission.OWNER_READ,
PosixFilePermission.OWNER_WRITE)
);
RuntimeEL.loadRuntimeConfiguration(runtimeInfo);
try {
RuntimeEL.loadResourceRaw("foo.txt", true);
} finally {
Files.deleteIfExists(fooFile);
}
}
项目:datacollector
文件:WebServerTask.java
private void validateRealmFile(File realmFile) {
boolean checkRealmFilePermission = conf.get(REALM_FILE_PERMISSION_CHECK, REALM_FILE_PERMISSION_CHECK_DEFAULT);
if(!checkRealmFilePermission) {
return;
}
if (!realmFile.exists()) {
throw new RuntimeException(Utils.format("Realm file '{}' does not exists", realmFile));
}
if (!realmFile.isFile()) {
throw new RuntimeException(Utils.format("Realm file '{}' is not a file", realmFile));
}
try {
Set<PosixFilePermission> permissions = Files.getPosixFilePermissions(realmFile.toPath());
permissions.removeAll(OWNER_PERMISSIONS);
if (!permissions.isEmpty()) {
throw new RuntimeException(Utils.format("The permissions of the realm file '{}' should be owner only",
realmFile));
}
} catch (IOException ex) {
throw new RuntimeException(Utils.format("Could not get the permissions of the realm file '{}', {}", realmFile,
ex.toString()), ex);
}
}
项目:ephemeralfs
文件:FilePermissions.java
private static EnumSet<PosixFilePermission> convertFromNioFileAttributes(
boolean isDirectory, FileAttribute<?>... attributes) {
if (attributes != null) {
for (FileAttribute<?> attr : attributes) {
if (attr.name().equals("posix:permissions")) {
Collection<PosixFilePermission> callerPerms =
(Collection<PosixFilePermission>) attr.value();
return EnumSet.copyOf(callerPerms);
}
}
}
if (isDirectory) {
return createDefaultDirectory().permissions;
} else {
return createDefaultFile().permissions;
}
}
项目:ephemeralfs
文件:BasicFileAttributesTest.java
@IgnoreIf(FsType.WINDOWS)
@Test
public void testCheckAccessCopyOfExecutableFileWindows() throws Exception {
Path path = root.resolve("path");
Files.createFile(path, PosixFilePermissions.asFileAttribute(
EnumSet.allOf(PosixFilePermission.class))
);
Path copy = root.resolve("copy");
Files.copy(path, copy);
assertTrue(Files.isReadable(copy));
assertTrue(Files.isWritable(copy));
assertTrue(Files.exists(copy));
assertTrue(Files.exists(copy, LinkOption.NOFOLLOW_LINKS));
assertTrue(Files.isExecutable(copy));
}
项目:google-java-format
文件:MainTest.java
@Test
public void preserveOriginalFile() throws Exception {
Path path = testFolder.newFile("Test.java").toPath();
Files.write(path, "class Test {}\n".getBytes(UTF_8));
try {
Files.setPosixFilePermissions(path, EnumSet.of(PosixFilePermission.OWNER_READ));
} catch (UnsupportedOperationException e) {
return;
}
Main main =
new Main(
new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out, UTF_8)), true),
new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.err, UTF_8)), true),
System.in);
int errorCode = main.format("-replace", path.toAbsolutePath().toString());
assertThat(errorCode).named("Error Code").isEqualTo(0);
}
项目:unix4j
文件:LsFormatterLong7.java
@Override
protected String getFilePermissions(File file, LsArguments args) {
try {
final Set<PosixFilePermission> perms = Files.getPosixFilePermissions(file.toPath());
return (file.isDirectory() ? "d" : "-") +
(perms.contains(PosixFilePermission.OWNER_READ) ? 'r' : '-') +
(perms.contains(PosixFilePermission.OWNER_WRITE) ? 'w' : '-') +
(perms.contains(PosixFilePermission.OWNER_EXECUTE) ? 'x' : '-') +
(perms.contains(PosixFilePermission.GROUP_READ) ? 'r' : '-') +
(perms.contains(PosixFilePermission.GROUP_WRITE) ? 'w' : '-') +
(perms.contains(PosixFilePermission.GROUP_EXECUTE) ? 'x' : '-') +
(perms.contains(PosixFilePermission.OTHERS_READ) ? 'r' : '-') +
(perms.contains(PosixFilePermission.OTHERS_WRITE) ? 'w' : '-') +
(perms.contains(PosixFilePermission.OTHERS_EXECUTE) ? 'x' : '-');
} catch (Exception e) {
return super.getFilePermissions(file, args);
}
}
项目:Reer
文件:PosixFilePermissionConverter.java
static Set<PosixFilePermission> convertToPermissionsSet(int mode) {
Set<PosixFilePermission> result = EnumSet.noneOf(PosixFilePermission.class);
if (isSet(mode, 0400)) {
result.add(OWNER_READ);
}
if (isSet(mode, 0200)) {
result.add(OWNER_WRITE);
}
if (isSet(mode, 0100)) {
result.add(OWNER_EXECUTE);
}
if (isSet(mode, 040)) {
result.add(GROUP_READ);
}
if (isSet(mode, 020)) {
result.add(GROUP_WRITE);
}
if (isSet(mode, 010)) {
result.add(GROUP_EXECUTE);
}
if (isSet(mode, 04)) {
result.add(OTHERS_READ);
}
if (isSet(mode, 02)) {
result.add(OTHERS_WRITE);
}
if (isSet(mode, 01)) {
result.add(OTHERS_EXECUTE);
}
return result;
}
项目:Reer
文件:PosixFilePermissionConverter.java
public static int convertToInt(Set<PosixFilePermission> permissions) {
int result = 0;
if (permissions.contains(OWNER_READ)) {
result = result | 0400;
}
if (permissions.contains(OWNER_WRITE)) {
result = result | 0200;
}
if (permissions.contains(OWNER_EXECUTE)) {
result = result | 0100;
}
if (permissions.contains(GROUP_READ)) {
result = result | 040;
}
if (permissions.contains(GROUP_WRITE)) {
result = result | 020;
}
if (permissions.contains(GROUP_EXECUTE)) {
result = result | 010;
}
if (permissions.contains(OTHERS_READ)) {
result = result | 04;
}
if (permissions.contains(OTHERS_WRITE)) {
result = result | 02;
}
if (permissions.contains(OTHERS_EXECUTE)) {
result = result | 01;
}
return result;
}