No subject
Dorine Tipo
dorine.a.tipo at gmail.com
Thu Apr 4 12:16:21 UTC 2024
Subject: [PATCH v3] selftests/landlock: Add tests for io_uring openat access control with Landlock rules
> What is tested exactly?
The test_ioring_op_openat() function is testing the enforcement of
Landlock rules for read-only access.
It's specifically checking whether the Landlock rules correctly allow or
deny read-only access to the specified file when using the openat system
call with io_uring. The test does this by preparing a submission queue
entry for the openat operation with io_uring_prep_openat(), submitting
this operation to the kernel via io_uring, and then checking the result.
If the operation is successful, it means that Landlock allowed the read-only
access as expected. If the operation fails, it means that Landlock correctly
denied the access.
> +static int test_ioring_op_openat(struct __test_metadata *const _metadata, const __u64 access, const char **paths)
> +{
> + int ruleset_fd;
> + int ret;
> + struct io_uring ring;
> + struct io_uring_sqe *sqe;
> +
> + /* Test Allowed Access */
> + const struct rule allowed_rule[] = {
> + {
> + .path = paths[0],
> + .access = access,
> + },
> + {
> + .path = NULL,
> + },
> + };
> +
> + ruleset_fd = create_ruleset(_metadata, allowed_rule[0].access, allowed_rule);
> +
> + ASSERT_LE(0, ruleset_fd);
> +
> + ret = io_uring_queue_init(32, &ring, 0);
> +
> + ASSERT_EQ(0, ret);
> +
> + /* Test allowed path */
> + sqe = io_uring_get_sqe(&ring);
> +
> + /* Prepare SQE for the openat operation */
> + io_uring_prep_openat(sqe, AT_FDCWD, paths[0], O_RDONLY, ruleset_fd);
> Can you please explain what this call to io_uring_prep_openat() do?
io_uring_prep_openat() prepares the submission queue entry for the openat
system call. In my tests the call to io_uring_prep_openat() is preparing
an openat operation to open a file at a certain path with read-only access.
This operation is then submitted to the kernel via io_uring, and the test
checks whether the operation is allowed or denied based on the define
Landlock rules.
More information about the Linux-security-module-archive
mailing list