Expand description

clap-permission-flag

crates.io version build status downloads docs.rs docs

Drop permissions of a CLI using structopt.

Usage

use clap::Parser;

#[derive(Debug, Parser)]
struct Cli {
    #[clap(flatten)]
    permission: clap_permission_flag::Permission,
}

fn main() -> Result<(), Box<dyn std::error::Error>> {
    let args = Cli::parse();
    args.permission.drop()?;
    Ok(())
}

This crate depends on Unix features - on other platforms a stub implementation which has no flags and always succeeds if used.

Example Output

clap-permission-flag 0.2.0
Yoshua Wuyts <yoshuawuyts@gmail.com>
Drop permissions of a CLI using structopt

USAGE:
    main [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
        --chroot <chroot>    Change the process root directory
    -g, --group <group>      Change the process group
    -u, --user <user>        Change the process user

Installation

$ cargo add clap-permission-flag

Since --chroot may not be suitable for all applications, it is behind the chroot feature and must be enabled explicitly:

[dependencies.clap-permission-flag]
version = "0.2"
features = ["chroot"]

See Also

  • https://github.com/jedisct1/rust-privdrop

License

MIT OR Apache-2.0

Structs

Drop permissions of a CLI using clap.

Enums

Error type for this crate