Users should be able to specify what shell commands and sytem calls a build phase has permission to access, and use Foreman to check whether the phase follows these permissions.
For instance, to restrict a testing phase from using the head command, a user would write this:
[
{
"name": "test",
"commands": [["make", "check"]],
"permissions": {
"command": {
"restricted": ["head"]
}
}
}
]
I imagine we could implement the checking functionality with strace.
We may want to start with only specifying system call permissions at first before moving on to arbitrary commands.
Users should be able to specify what shell commands and sytem calls a build phase has permission to access, and use Foreman to check whether the phase follows these permissions.
For instance, to restrict a testing phase from using the
headcommand, a user would write this:[ { "name": "test", "commands": [["make", "check"]], "permissions": { "command": { "restricted": ["head"] } } } ]I imagine we could implement the checking functionality with
strace.We may want to start with only specifying system call permissions at first before moving on to arbitrary commands.