bsdcontrol.rb/README.md

62 lines
1.3 KiB
Markdown
Raw Normal View History

2024-03-01 02:29:43 +01:00
## About
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
hbsdctl.rb is a Ruby C extension that binds libhbsdcontrol from the
[hardenedbsd](https://hardenedbsd.org) project. Through this library,
you can query what features are available and if root, enable or disable
2024-03-01 02:35:05 +01:00
those features for a given executable.
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
## Examples
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
__Available features__
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
As a regular user account, you can obtain a list of available features.
But to enable or disable those features a superuser account is required:
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
``` ruby
#!/usr/bin/env ruby
# As a regular user account
require 'hbsdctl'
BSD::Control
.available_features
.each do
print "The ", _1.name, " feature is available", "\n"
end
2024-03-01 02:28:22 +01:00
```
2024-03-01 02:29:43 +01:00
__Enable feature__
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
As a superuser account, you can enable or disable features for a given executable.
The example enables the mprotect feature for the emacs binary:
2024-03-01 02:28:22 +01:00
2024-03-01 02:29:43 +01:00
``` ruby
#!/usr/bin/env ruby
# As a root account
require 'hbsdctl'
BSD::Control
.feature!(:mprotect)
2024-03-01 02:29:43 +01:00
.enable!("/usr/local/bin/emacs")
```
2024-03-01 02:28:22 +01:00
2024-03-01 02:35:05 +01:00
## Install
**Git**
hbsdctl.rb is distributed as a RubyGem through its git repositories. <br>
[GitHub](https://github.com/0x1eef/hbsdctl.rb),
and
[GitLab](https://gitlab.com/0x1eef/hbsdctl.rb)
are available as sources.
**Rubygems.org**
lock.rb can also be installed via rubygems.org.
gem install hbsdctl.rb
2024-03-01 02:28:22 +01:00
## License
2024-03-01 02:29:43 +01:00
[BSD Zero Clause](https://choosealicense.com/licenses/0bsd/).
<br>
See [LICENSE](./LICENSE).