Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FsEval ¶
type FsEval interface { // Open is equivalent to os.Open. Open(path string) (*os.File, error) // Create is equivalent to os.Create. Create(path string) (*os.File, error) // Readdir is equivalent to os.Readdir. Readdir(path string) ([]os.FileInfo, error) // Lstat is equivalent to os.Lstat. Lstat(path string) (os.FileInfo, error) // Lstatx is equivalent to unix.Lstat. Lstatx(path string) (unix.Stat_t, error) // Readlink is equivalent to os.Readlink. Readlink(path string) (string, error) // Symlink is equivalent to os.Symlink. Symlink(linkname, path string) error // Link is equivalent to os.Link. Link(linkname, path string) error // Chmod is equivalent to os.Chmod. Chmod(path string, mode os.FileMode) error // Lutimes is equivalent to os.Lutimes. Lutimes(path string, atime, mtime time.Time) error // Remove is equivalent to os.Remove. Remove(path string) error // RemoveAll is equivalent to os.RemoveAll. RemoveAll(path string) error // Mkdir is equivalent to os.Mkdir. Mkdir(path string, perm os.FileMode) error // MkdirAll is equivalent to os.MkdirAll. MkdirAll(path string, perm os.FileMode) error // Mknod is equivalent to unix.Mknod. Mknod(path string, mode os.FileMode, dev uint64) error // Llistxattr is equivalent to system.Llistxattr Llistxattr(path string) ([]string, error) // Lremovexattr is equivalent to system.Lremovexattr Lremovexattr(path, name string) error // Lsetxattr is equivalent to system.Lsetxattr Lsetxattr(path, name string, value []byte, flags int) error // Lgetxattr is equivalent to system.Lgetxattr Lgetxattr(path string, name string) ([]byte, error) // Lclearxattrs is equivalent to system.Lclearxattrs Lclearxattrs(path string, except map[string]struct{}) error // KeywordFunc returns a wrapper around the given mtree.KeywordFunc. KeywordFunc(fn mtree.KeywordFunc) mtree.KeywordFunc // Walk is equivalent to filepath.Walk. Walk(root string, fn filepath.WalkFunc) error }
FsEval is a super-interface that implements everything required for mtree.FsEval as well as including all of the imporant os.* wrapper functions needed for "oci/layers".tarExtractor.
var DefaultFsEval FsEval = osFsEval(0)
DefaultFsEval is the "identity" form of FsEval. In particular, it does not do any trickery and calls directly to the relevant os.* functions (and does not wrap KeywordFunc). This should be used by default, because there are no weird side-effects.
var RootlessFsEval FsEval = unprivFsEval(0)
RootlessFsEval is an FsEval implementation that uses "umoci/pkg/unpriv".* functions in order to provide the ability for unprivileged users (those without CAP_DAC_OVERRIDE and CAP_DAC_READ_SEARCH) to evaluate parts of a filesystem that they own. Note that by necessity this requires modifying the filesystem (and thus will not work on read-only filesystems).