protect/protect.go

38 lines
1.1 KiB
Go
Raw Normal View History

2020-05-08 07:36:29 -06:00
/*
2020-05-08 07:55:32 -06:00
Package protect is a wrapper for OpenBSD's pledge(2) and unveil(2) system
calls.
2020-05-08 07:36:29 -06:00
2020-05-08 07:55:32 -06:00
This library is trivial, but I found myself writing it often enough that I
figure it should be a package.
2020-05-08 07:36:29 -06:00
*/
package protect
// Unveil is a wrapper for OpenBSD's unveil(2). unveil can be used to limit
// a processes view of the filesystem.
//
// The first call to Unveil removes a processes visibility to everything
// except 'path'. Any subsequent calls expand the view to contain those
// paths. Finally a call to UnveilBlock will lock the view in place.
// Preventing access to anything else.
//
// On non-OpenBSD machines this call is a noop.
2020-05-10 07:04:34 -06:00
func Unveil(path string, flags string) error {
return unveil(path, flags)
2020-05-08 07:55:32 -06:00
}
2020-05-08 07:36:29 -06:00
// UnveilBlock locks the Unveil'd paths. Preventing further changes to a
// processes filesystem view.
//
// On non-OpenBSD machines this call is a noop.
2020-05-08 07:55:32 -06:00
func UnveilBlock() error {
return unveilBlock()
}
2020-05-08 07:36:29 -06:00
// Pledge wraps OpenBSD's pledge(2) system call. One can use this to limit
// the system calls a process can make.
//
// On non-OpenBSD machines this call is a noop.
2020-05-10 07:04:34 -06:00
func Pledge(promises string) error {
return pledge(promises)
2020-05-08 07:55:32 -06:00
}