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).