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<PosixFilePermission> 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)) {