summaryrefslogtreecommitdiffhomepage
path: root/test/fuse/linux
diff options
context:
space:
mode:
authorRahat Mahmood <rahat@google.com>2021-03-11 17:54:53 -0800
committergVisor bot <gvisor-bot@google.com>2021-03-11 17:59:13 -0800
commit192318a2316d84a3de9d28c29fbc73aae3e75206 (patch)
tree1d1d61fc5b34289e6c1744b6e32610a6938f872a /test/fuse/linux
parenta7197c9c688fdfc2d37005063d3f6dbf9cef2341 (diff)
fusefs: Implement default_permissions and allow_other mount options.
By default, fusefs defers node permission checks to the server. The default_permissions mount option enables the usual unix permission checks based on the node owner and mode bits. Previously fusefs was incorrectly checking permissions unconditionally. Additionally, fusefs should restrict filesystem access to processes started by the mount owner to prevent the fuse daemon from gaining priviledge over other processes. The allow_other mount option overrides this behaviour. Previously fusefs was incorrectly skipping this check. Updates #3229 PiperOrigin-RevId: 362419092
Diffstat (limited to 'test/fuse/linux')
-rw-r--r--test/fuse/linux/mount_test.cc5
1 files changed, 4 insertions, 1 deletions
diff --git a/test/fuse/linux/mount_test.cc b/test/fuse/linux/mount_test.cc
index 8a5478116..276f842ea 100644
--- a/test/fuse/linux/mount_test.cc
+++ b/test/fuse/linux/mount_test.cc
@@ -15,6 +15,7 @@
#include <errno.h>
#include <fcntl.h>
#include <sys/mount.h>
+#include <unistd.h>
#include "gtest/gtest.h"
#include "test/util/mount_util.h"
@@ -29,7 +30,9 @@ namespace {
TEST(FuseMount, Success) {
const FileDescriptor fd =
ASSERT_NO_ERRNO_AND_VALUE(Open("/dev/fuse", O_WRONLY));
- std::string mopts = absl::StrCat("fd=", std::to_string(fd.get()));
+ std::string mopts =
+ absl::StrFormat("fd=%d,user_id=%d,group_id=%d,rootmode=0777", fd.get(),
+ getuid(), getgid());
const auto dir = ASSERT_NO_ERRNO_AND_VALUE(TempPath::CreateDir());