OK, this was traced to using the sudo execution controller, on systems where the invoking user is in the sudo group. Presumably the preferred pkexec execution controller won't exhibit this issue.
The way plainbox gives access to all the scripts from all providers is by creating a "nest", a temporary directory with symlinks to all the scripts, and adding that to the environment's PATH.
The sudo execution controller uses the -E option to sudo, and our thinking was that the modified PATH would be picked up with this option. However, on Ubuntu, /etc/sudoers has a default secure_path defined, and apparently this overrides any changes to the invoking environment's PATH variable. The secure path is as follows:
This clobbers our setting of PATH thus causing the scripts in the nest to not be found.
A possible solution to this is relying on env with a list of environment variable values to set, as is done for the pkexec execution controller which is already working.
OK, this was traced to using the sudo execution controller, on systems where the invoking user is in the sudo group. Presumably the preferred pkexec execution controller won't exhibit this issue.
The way plainbox gives access to all the scripts from all providers is by creating a "nest", a temporary directory with symlinks to all the scripts, and adding that to the environment's PATH.
The sudo execution controller uses the -E option to sudo, and our thinking was that the modified PATH would be picked up with this option. However, on Ubuntu, /etc/sudoers has a default secure_path defined, and apparently this overrides any changes to the invoking environment's PATH variable. The secure path is as follows:
Defaults secure_ path="/ usr/local/ sbin:/usr/ local/bin: /usr/sbin: /usr/bin: /sbin:/ bin"
This clobbers our setting of PATH thus causing the scripts in the nest to not be found.
A possible solution to this is relying on env with a list of environment variable values to set, as is done for the pkexec execution controller which is already working.