diff --git a/src/main/java/tachyon/worker/WorkerStorage.java b/src/main/java/tachyon/worker/WorkerStorage.java index 592ddf8..95bf1ce 100644 --- a/src/main/java/tachyon/worker/WorkerStorage.java +++ b/src/main/java/tachyon/worker/WorkerStorage.java @@ -25,6 +25,9 @@ import java.io.RandomAccessFile; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.FileChannel.MapMode; +import java.nio.file.Files; +import java.nio.file.attribute.PosixFilePermission; +import java.nio.file.attribute.PosixFilePermissions; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -513,10 +516,16 @@ public class WorkerStorage { private void initializeWorkerStorage() throws IOException, FileDoesNotExistException, SuspectedFileSizeException, BlockInfoException, TException { LOG.info("Initializing the worker storage."); + + // Set Default directory permissions to 775 + Set perms = PosixFilePermissions.fromString("rwxrwxr-x"); + if (!mLocalDataFolder.exists()) { LOG.info("Local folder " + mLocalDataFolder + " does not exist. Creating a new one."); mLocalDataFolder.mkdir(); mLocalUserFolder.mkdir(); + Files.setPosixFilePermissions(mLocalDataFolder.toPath(), perms); + Files.setPosixFilePermissions(mLocalUserFolder.toPath(), perms); return; } @@ -534,6 +543,7 @@ public class WorkerStorage { } } mLocalUserFolder.mkdir(); + Files.setPosixFilePermissions(mLocalUserFolder.toPath(), perms); mUnderfsOrphansFolder = mUnderfsWorkerFolder + "/orphans"; if (!mUnderFs.exists(mUnderfsOrphansFolder)) {