An open API service indexing awesome lists of open source software.

https://github.com/ssddontop/rust-ufw-app-profile

UFW app profile dependency for rust.
https://github.com/ssddontop/rust-ufw-app-profile

ufw ufw-app-profile ufw-profile

Last synced: 6 months ago
JSON representation

UFW app profile dependency for rust.

Awesome Lists containing this project

README

          

![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=rust-ufw-app-profile)
![Crates Badge](https://img.shields.io/crates/v/ufwprofile)
![Crates Downloads](https://img.shields.io/crates/d/ufwprofile)

# About Project

UFW app profile written in pure rust.

## Implementation:

```toml
ufwprofile = "" #check latest version above
```

Or

```
cargo add ufwprofile
```

# Example

```rust
fn main() -> anyhow::Result<()> {
if ufwprofile::UFWConf::check_write_permission() {
//checks if ufw exists and the path /etc/ufw/applications.d is writable
let conf = ufwprofile::UFWConf::init("AppName", "Title", "Description")?
.append_ports("80", "")?
.append_ports("81:82", "tcp")?
.append_ports("84", "udp")?
.append_ports("83", "")?
.append_ports("8000", "tcp")?;

if ufwprofile::UFWConf::is_root() {
// check if the app has root permission.
println!("{}", conf.try_adding_to_ufw(true).unwrap());
} else {
println!("{}", conf.try_write_with_sudo(true).unwrap());
}
} else {
println!("Unable to write");
}
Ok(())
}
```

# Drawbacks

### This is hardcoded dependency

1. The config file is hardcoded.
2. The path is assumed to be `/etc/ufw/applications.d`

# Changelog

check [CHANGELOG.md](CHANGELOG.md)