Skip to content

Latest commit

 

History

History
56 lines (42 loc) · 1.33 KB

README.md

File metadata and controls

56 lines (42 loc) · 1.33 KB

Visitor Badge Crates Badge Crates Downloads

About Project

UFW app profile written in pure rust.

Implementation:

ufwprofile = "" #check latest version above

Or

cargo add ufwprofile

Example

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