Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

api: add support for multiple uid/gid idmappings #179

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

yawqi
Copy link

@yawqi yawqi commented Dec 2, 2023

Currently, only single uid/gid idmapping supported. However, in userns, multiple idmappings can be setted. Besides, in the fuse-overlayfs project, multiple idmappings are supported.
https://github.com/containers/fuse-overlayfs/blob/18f4d6768ab2178f0147c1bac0ccfd7d44841a56/README.md?plain=1#L16

This commit will be used to support kata-containers/kata-containers#8170. Currently, there is no idmap mount support for virtiofs in kernel side. So the support from the virtiofs server side can be used as a temporary workaround.

This comment containerd/containerd#7063 (comment) provides a way to solve the rootfs' idmapping problem. Although it is not used in their implementation at last, but can be used for us to support userns in kata in the first place.

Currently, only single mapping for uid/gid is supported.
However, for userns, mutiple uid/gid mappings can be setted.

This commit follows how fuse-overlayfs support this feature.
containers/fuse-overlayfs@3378869

Signed-off-by: Qi Wang <mpiglet@outlook.com>
When running test_clone_fuse_file as non-root, the test will fail.
```
---- transport::fusedev::linux_session::tests::test_clone_fuse_file stdout ----
thread 'transport::fusedev::linux_session::tests::test_clone_fuse_file' panicked at src/transport/fusedev/linux_session.rs:680:20:
called `Result::unwrap()` on an `Err` value: SessionFailure("Unexpected exit code when running fusermount: Some(1)")
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
```

Signed-off-by: Qi Wang <mpiglet@outlook.com>
fn id_remap(&self, ctx: &mut Context) -> io::Result<()> {
Ok(())
}
fn id_remap(&self, ctx: &mut Context) {}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The API change doesn't seem necessary?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants