[package]
edition = "2021"
rust-version = "1.93.0"
name = "rootasrole"
version = "3.3.4"
authors = ["Eddie Billoir <lechatp@outlook.fr>"]
build = "build.rs"
exclude = [
"sudoers-reader/*",
"book/*",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
default-run = "dosr"
description = "A better alternative to sudo(-rs)/su"
homepage = "https://lechatp.github.io/RootAsRole/"
readme = "README.md"
keywords = [
"sudo",
"capabilities",
"rbac",
"linux",
"security",
]
categories = [
"command-line-utilities",
"os::linux-apis",
"config",
]
license = "LGPL-3.0-or-later"
repository = "https://github.com/LeChatP/RootAsRole"
[badges.maintainance]
badge = "https://img.shields.io/badge/maintenance-actively%20maintained-brightgreen.svg"
status = "actively-maintained"
[features]
editor = [
"dep:landlock",
"dep:libseccomp",
"dep:pest",
"dep:pest_derive",
"dep:linked_hash_set",
]
finder = [
"plugins",
"timeout",
"pcre2",
"glob",
"landlock",
"rar-common/finder",
"dep:nonstick",
"dep:libpam-sys",
"dep:pty-process",
"dep:once_cell",
]
glob = ["rar-common/glob"]
hashchecker = [
"dep:hex",
"dep:sha2",
]
hierarchy = []
landlock = [
"dep:landlock",
"dep:bitflags",
"dep:glob",
]
pcre2 = [
"dep:pcre2",
"rar-common/pcre2",
]
plugins = [
"hashchecker",
"ssd",
"hierarchy",
]
ssd = []
timeout = []
[[bin]]
name = "chsr"
path = "src/chsr/main.rs"
required-features = ["editor"]
[[bin]]
name = "dosr"
path = "src/sr/main.rs"
required-features = ["finder"]
[[test]]
name = "integration_tests"
path = "tests/integration_tests.rs"
required-features = ["finder"]
[dependencies.bitflags]
version = "2.9"
optional = true
default-features = false
[dependencies.bon]
version = "3"
default-features = false
[dependencies.capctl]
version = "0.2"
features = ["serde"]
default-features = false
[dependencies.cbor4ii]
version = "1.0.0"
features = [
"serde",
"serde1",
"use_std",
]
default-features = false
[dependencies.chrono]
version = "0.4"
features = ["now"]
default-features = false
[dependencies.const_format]
version = "0.2"
default-features = false
[dependencies.derivative]
version = "2.2"
default-features = false
[dependencies.glob]
version = "0.3"
optional = true
default-features = false
[dependencies.hex]
version = "0.4"
features = ["alloc"]
optional = true
default-features = false
[dependencies.landlock]
version = "0.4"
optional = true
[dependencies.libc]
version = "0.2"
features = ["std"]
default-features = false
[dependencies.libpam-sys]
version = "0.2.0"
optional = true
default-features = false
[dependencies.libseccomp]
version = "0.4"
optional = true
[dependencies.linked_hash_set]
version = "0.1"
optional = true
default-features = false
[dependencies.log]
version = "0.4"
features = ["std"]
default-features = false
[dependencies.nix]
version = "0.30"
features = [
"user",
"process",
"signal",
"fs",
]
[dependencies.nonstick]
version = "0.1.1"
optional = true
[dependencies.once_cell]
version = "1.20"
features = ["std"]
optional = true
default-features = false
[dependencies.pcre2]
version = "0.2"
optional = true
default-features = false
[dependencies.pest]
version = "2.7"
features = ["std"]
optional = true
default-features = false
[dependencies.pest_derive]
version = "2.7"
features = ["std"]
optional = true
default-features = false
[dependencies.pty-process]
version = "0.4"
optional = true
default-features = false
[dependencies.rar-common]
version = "3.3.4"
package = "rootasrole-core"
[dependencies.serde]
version = "1.0"
features = [
"std",
"rc",
"derive",
]
default-features = false
[dependencies.serde_json]
version = "1.0"
features = ["std"]
default-features = false
[dependencies.sha2]
version = "0.10"
optional = true
default-features = false
[dependencies.shell-words]
version = "1.1"
features = ["std"]
default-features = false
[dependencies.strum]
version = "0.26"
features = ["derive"]
default-features = false
[dev-dependencies.env_logger]
version = "0.11"
default-features = false
[dev-dependencies.log]
version = "0.4"
features = ["std"]
default-features = false
[dev-dependencies.serial_test]
version = "3.2.0"
default-features = false
[dev-dependencies.test-log]
version = "0.2"
default-features = false
[build-dependencies.toml]
version = "0.8"
features = [
"parse",
"display",
"preserve_order",
]
default-features = false
[lints.rust.unexpected_cfgs]
level = "allow"
priority = 0
check-cfg = ["cfg(tarpaulin_include)"]
[profile.profiling]
opt-level = 1
lto = false
debug = 2
inherits = "release"
strip = "none"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
strip = "symbols"