mirror of
https://github.com/ceph/ceph
synced 2024-12-27 14:03:25 +00:00
qa/tasks/cephfs: Add reproducer for https://tracker.ceph.com/issues/56067
A kernel CephFS client with MDS root_squash caps is able to write to a file as non-root user. However, the data written is lost after clearing the kernel client cache, or re-mounting the client. This issue is not observed with a FUSE CephFS client. Signed-off-by: Ramana Raja <rraja@redhat.com>
This commit is contained in:
parent
28023f84d7
commit
c8bae07f70
@ -1264,6 +1264,28 @@ class TestFsAuthorize(CephFSTestCase):
|
||||
self.captester.conduct_neg_test_for_chown_caps()
|
||||
self.captester.conduct_neg_test_for_truncate_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
|
||||
to a file. And after client remount, the non-root user can read the data that
|
||||
was previously written by it. https://tracker.ceph.com/issues/56067
|
||||
"""
|
||||
keyring = self.fs.authorize(self.client_id, ('/', 'rw', 'root_squash'))
|
||||
keyring_path = self.mount_a.client_remote.mktemp(data=keyring)
|
||||
self.mount_a.remount(client_id=self.client_id,
|
||||
client_keyring_path=keyring_path,
|
||||
cephfs_mntpt='/')
|
||||
filedata, filename = 'some data on fs 1', 'file_on_fs1'
|
||||
filepath = os_path_join(self.mount_a.hostfs_mntpt, filename)
|
||||
self.mount_a.write_file(filepath, filedata)
|
||||
|
||||
self.mount_a.remount(client_id=self.client_id,
|
||||
client_keyring_path=keyring_path,
|
||||
cephfs_mntpt='/')
|
||||
if filepath.find(self.mount_a.hostfs_mntpt) != -1:
|
||||
contents = self.mount_a.read_file(filepath)
|
||||
self.assertEqual(filedata, contents)
|
||||
|
||||
def test_single_path_authorize_on_nonalphanumeric_fsname(self):
|
||||
"""
|
||||
That fs authorize command works on filesystems with names having [_.-]
|
||||
|
Loading…
Reference in New Issue
Block a user