mirror of
https://github.com/containerd/containerd.git
synced 2026-10-29 01:55:16 +08:00
Some rootfs may use symlinks for /etc/passwd and /etc/group. For example, NixOS uses absolute symlinks to files in /nix/store. os.Root is not used because it rejects absolute symlinks. The previous code only handled a symlink on the final path. Add a helper to resolve symlinks in every path component with fs.ReadLinkFS. Absolute symlinks are resolved from the rootfs, and the final path is still opened with fs.FS. When tracing a path through symbolic links, the maximum number of links that can be followed is [40][1]. [1]: <https://man7.org/linux/man-pages/man7/path_resolution.7.html> Signed-off-by: Wei Fu <fuweid89@gmail.com>