Current FutoIn CID implementation is written in commonly available Python language supporting both Python versions 2.7 & 3+. It is available as futoin-cid package on PyPI.
It can be installed with standard PIP tool:
$ pip install futoin-cid
If pip is not available then it’s strongly suggested to install one first:
# Debian-based $ apt install python-pip # RPM-based $ yum install python-pip # or $ dnf install python-pip # Others with Python setuptools available $ easy_install pip
This step is not strictly needed. CID will suggest to install
required system packages on demand. However, for best user experience a very
restricted set of
sudo commands should be allowed.
The general approach to setup the list of commands:
$ cid sudoers | sudo tee -a /etc/sudoers
If your OS supports
/etc/sudoers.d folder then the following approach is better:
$ cid sudoers | sudo tee /etc/sudoers/cid_$(id -un)
NOTE: only the second approach can be safely repeated (e.g. after CID upgrade) as it overwrites dedicated file.
If you are concerned about security, but still want to allow verified
system package installation then add
--skip-key-management option like:
$ cid sudoers --skip-key-management | sudo tee /etc/sudoers/cid_$(id -un)
Alternative to OS preparation
By default, CID uses non-interactive
sudo calls to avoid hanging automated tasks.
If you want to be able to input
sudo password instead of just whitelisting the commands
then you can set the following environment in shell.
Integration into provisioning systems
A very advanced way of privileged command execution is supported via
.env.externalSetup configuration which is out of scope of this guide.