# Vyatta shell environment variables for config mode # should be sourced from /etc/default/vyatta { declare -x -r VYATTA_ACTIVE_CONFIGURATION_DIR=${vyatta_configdir}/active declare -x -r VYATTA_CHANGES_ONLY_DIR=${vyatta_configdir}/tmp/changes_only_$$ declare -x -r VYATTA_TEMP_CONFIG_DIR=${vyatta_configdir}/tmp/new_config_$$ declare -x -r VYATTA_CONFIG_TMP=${vyatta_configdir}/tmp/tmp_$$ declare -x -r VYATTA_CONFIG_TEMPLATE=$vyatta_cfg_templates declare -x -r VYATTA_TAG_NAME=node.tag declare -x -r VYATTA_MOD_NAME=.modified declare -x -r VYATTA_CFG_GROUP_NAME=vyattacfg } 2>/dev/null || : declare -x VYATTA_EDIT_LEVEL=/ declare -x VYATTA_TEMPLATE_LEVEL=/ # don't set level if already set if [ -n "$VYATTA_USER_LEVEL_DIR" ]; then return fi { is_admin=0 is_users=0 VYATTA_LEVEL_GROUP_ADMIN=vyattacfg VYATTA_LEVEL_GROUP_USERS=quaggavty local -a groups=( $(id -Gn) ) for g in "${groups[@]}"; do if [ "$g" == "$VYATTA_LEVEL_GROUP_ADMIN" ]; then is_admin=1 fi if [ "$g" == "$VYATTA_LEVEL_GROUP_USERS" ]; then is_users=1 fi done # root is also admin if [ "$(id -u)" == 0 ]; then is_admin=1 fi # check level from high to low if [ $is_admin == 1 ]; then declare -x -r VYATTA_USER_LEVEL_DIR=${vyatta_sysconfdir}/shell/level/admin else # no need to check is_users since there are only 2 levels for now declare -x -r VYATTA_USER_LEVEL_DIR=${vyatta_sysconfdir}/shell/level/users fi } 2>/dev/null || :