Struct procfs::sys::fs::binfmt_misc::BinFmtFlags [−][src]
pub struct BinFmtFlags { /* fields omitted */ }
Expand description
Various key flags
Implementations
Preserve Argv[0]
Legacy behavior of binfmt_misc is to overwrite the original argv[0] with the full path to the binary. When
this flag is included, binfmt_misc will add an argument to the argument vector for this purpose, thus
preserving the original argv[0]
.
For example, If your interp is set to /bin/foo
and you run blah
(which is in /usr/local/bin
),
then the kernel will execute /bin/foo
with argv[]
set to ["/bin/foo", "/usr/local/bin/blah", "blah"]
.
The interp has to be aware of this so it can execute /usr/local/bin/blah
with argv[]
set to ["blah"]
.
Open Binary
Legacy behavior of binfmt_misc is to pass the full path of the binary to the interpreter as an argument. When this flag is included, binfmt_misc will open the file for reading and pass its descriptor as an argument, instead of the full path, thus allowing the interpreter to execute non-readable binaries. This feature should be used with care - the interpreter has to be trusted not to
Credentials
Currently, the behavior of binfmt_misc is to calculate
the credentials and security token of the new process according to
the interpreter. When this flag is included, these attributes are
calculated according to the binary. It also implies the O
flag.
This feature should be used with care as the interpreter
will run with root permissions when a setuid binary owned by root
is run with binfmt_misc.
Fix binary
The usual behaviour of binfmt_misc is to spawn the
binary lazily when the misc format file is invoked. However,
this doesn’t work very well in the face of mount namespaces and
changeroots, so the F
mode opens the binary as soon as the
emulation is installed and uses the opened image to spawn the
emulator, meaning it is always available once installed,
regardless of how the environment changes.
Returns an empty set of flags
Returns the set containing all flags.
Convert from underlying bit representation, unless that representation contains bits that do not correspond to a flag.
Convert from underlying bit representation, dropping any bits that do not correspond to flags.
Convert from underlying bit representation, preserving all bits (even those not corresponding to a defined flag).
Returns true
if there are flags common to both self
and other
.
Returns true
all of the flags in other
are contained within self
.
Inserts the specified flags in-place.
Removes the specified flags in-place.
Toggles the specified flags in-place.
Inserts or removes the specified flags depending on the passed value.
Trait Implementations
Returns the intersection between the two sets of flags.
type Output = BinFmtFlags
type Output = BinFmtFlags
The resulting type after applying the &
operator.
Disables all flags disabled in the set.
Returns the union of the two sets of flags.
type Output = BinFmtFlags
type Output = BinFmtFlags
The resulting type after applying the |
operator.
Adds the set of flags.
Returns the left flags, but with all the right flags toggled.
type Output = BinFmtFlags
type Output = BinFmtFlags
The resulting type after applying the ^
operator.
Toggles the set of flags.
Extends a collection with the contents of an iterator. Read more
extend_one
)Extends a collection with exactly one element.
extend_one
)Reserves capacity in a collection for the given number of additional elements. Read more
Creates a value from an iterator. Read more
Returns the complement of this set of flags.
type Output = BinFmtFlags
type Output = BinFmtFlags
The resulting type after applying the !
operator.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the set difference of the two sets of flags.
type Output = BinFmtFlags
type Output = BinFmtFlags
The resulting type after applying the -
operator.
Disables all flags enabled in the set.
Auto Trait Implementations
impl RefUnwindSafe for BinFmtFlags
impl Send for BinFmtFlags
impl Sync for BinFmtFlags
impl Unpin for BinFmtFlags
impl UnwindSafe for BinFmtFlags
Blanket Implementations
Mutably borrows from an owned value. Read more