manage_sudo.sh script

This script only has one client configuration file which is either manage_ssh.conf or manage_ssh.conf.local. The latter can be used as a local override. Typically this configuration can be the same across an entire server park if you have a homogeneous environment. Following settings should be defined for example:

# name of the user account performing the SUDO controls copies
# (leave blank for current user)
SUDO_TRANSFER_USER=""

# name of the OS group that should own the SUDO controls files
SUDO_OWNER_GROUP="sudoadmin"

# whether a 'chmod' needs to be executed after each sftp transfer [0=Yes; 1=No]
DO_SFTP_CHMOD=0

# extra arguments/options for the SFTP command
SFTP_ARGS="-o StrictHostKeyChecking=no -o ConnectTimeout=10 -b - "

# extra arguments/options for the SSH command
SSH_ARGS="-o StrictHostKeyChecking=no -o ConnectTimeout=10 -n"

# location of the local SUDO controls directory
LOCAL_DIR="/etc/sudo_master"

# location of the remote SUDO controls directory
REMOTE_DIR="/etc/sudo_controls/holding"

# name of the user account performing the SUDO controls update
# (leave blank for current user but user should have remote sudo root privs)
SUDO_UPDATE_USER=""

# options to pass to manage_ssh.sh when executing a key update
SUDO_UPDATE_OPTS="--verbose --remove"

# path to the visudo tool
VISUDO_BIN="/usr/sbin/visudo"

# path to the ssh-keyscan too
SSH_KEYSCAN_BIN="/usr/bin/ssh-keyscan"

# extra arguments/options for the ssh-keyscan command
# by default -f <file> is used by manage_sudo.sh to supply hostnames, do not add here
SSH_KEYSCAN_ARGS="-t rsa"

# whether to start an SSH agent process for the master->client operations [0=No; 1=Yes]
DO_SSH_AGENT=0

# location of the SSH private key that should be added to the SSH agent process
# must be a passphrase-less key (required when using DO_SSH_AGENT)
SSH_PRIVATE_KEY="$HOME/.ssh/id_rsa"

# maximum number of background process to spawn (~maxuprc, ~nstrpty etc)
MAX_BACKGROUND_PROCS=30

# location of the backup directory (for configuration & key files)
BACKUP_DIR="${LOCAL_DIR}/backup"

# location of log directory (default), see --log-dir)
LOG_DIR="/var/log"

update_sudo.pl script

This script also only has one client configuration file which is either update_sudo.conf or update_sudo.conf.local. The latter can be used as a local override. Typically this configuration can be the same across an entire server park if you have a homogeneous environment. Following settings should be defined for example:

# use short hostnames or FQDN (0=short names; 1=FQDN) [default: 0]
use_fqdn=1

# target directory for sudo fragment files
fragments_dir=/etc/sudo_controls/sudoers.d

# path to the visudo tool
visudo_bin=/usr/sbin/visudo

# file name of the immutable 'self' sudo fragment (w/o path)
immutable_self_file=sudo_update

# sudo rule for the immutable 'self' fragment (to run the sudo_update.pl script)
immutable_self_cmd=sudoadmin ALL=(root) NOPASSWD:/etc/sudo_controls/holding/update_sudo.pl

If /etc/sudo_controls is the path to the local SSH controls repository on all your client systems, then you can leave this file as-is. Keep in mind that the update_sudo.conf file will be always be copied from the SUDO master when distributing fragments. To specify a truly local configuration for certain hosts, you can use the local override update_sudo.conf.local file.

Updated:

Leave a comment