Skip to content

Commit

Permalink
qa: test for root_squash with multiple caps
Browse files Browse the repository at this point in the history
Where the client has root_squash for one cap but not for another. The fs
without root_squash should not necessarily reject the client.

Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
(cherry picked from commit bccc8ce)

Conflicts:
	qa/tasks/cephfs/test_admin.py: missing test
  • Loading branch information
batrick committed May 9, 2024
1 parent 14e030f commit 22342c7
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions qa/tasks/cephfs/test_admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -1320,6 +1320,40 @@ def test_single_path_rootsquash(self):
self.captester.conduct_neg_test_for_chown_caps()
self.captester.conduct_neg_test_for_truncate_caps()

def test_multifs_rootsquash_nofeature(self):
"""
That having root_squash on one fs doesn't prevent access to others.
"""

if not isinstance(self.mount_a, FuseMount):
self.skipTest("only FUSE client has CEPHFS_FEATURE_MDS_AUTH_CAPS "
"needed to enforce root_squash MDS caps")

self.fs1 = self.fs
self.fs2 = self.mds_cluster.newfs('testcephfs2')

self.mount_a.umount_wait()

# Authorize client to fs1
FS_AUTH_CAPS = (('/', 'rw'),)
self.fs1.authorize(self.client_id, FS_AUTH_CAPS)

FS_AUTH_CAPS = (('/', 'rw', 'root_squash'),)
keyring = self.fs2.authorize(self.client_id, FS_AUTH_CAPS)

CEPHFS_FEATURE_MDS_AUTH_CAPS_CHECK = 21
# all but CEPHFS_FEATURE_MDS_AUTH_CAPS_CHECK
features = ",".join([str(i) for i in range(CEPHFS_FEATURE_MDS_AUTH_CAPS_CHECK)])
mntargs = [f"--client_debug_inject_features={features}"]

# should succeed
keyring_path = self.mount_a.client_remote.mktemp(data=keyring)
self.mount_a.remount(client_id=self.client_id, client_keyring_path=keyring_path, mntargs=mntargs, cephfs_name=self.fs1.name)

captester = CapTester(self.mount_a, '/')
captester.conduct_pos_test_for_read_caps()
captester.conduct_pos_test_for_open_caps()

def test_single_path_rootsquash_issue_56067(self):
"""
That a FS client using root squash MDS caps allows non-root user to write data
Expand Down

0 comments on commit 22342c7

Please sign in to comment.