MOON
Server: Apache
System: Linux vps.erhabenn.com.br 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64
User: machen (1008)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: //opt/microsoft/omsagent/tst/files/datafiles/linux.data
%Variables
PF:               'Linux'
OMI_SERVICE:      '/opt/omi/bin/service_control'
OMS_SERVICE:      '/opt/microsoft/omsagent/bin/service_control'
CONF_SYSLOG:      '/opt/microsoft/omsagent/bin/configure_syslog.sh'
OMSADMIN_SCRIPT:  '/opt/microsoft/omsagent/bin/omsadmin.sh'

%Directories
/etc;                                                   755; root; root; sysdir
/etc/init.d;                                            755; root; root; sysdir

%Files
/etc/opt/microsoft/omsagent/sysconf/rsyslog.conf;                       installer/conf/rsyslog.conf;                           644; root; root
/etc/opt/microsoft/omsagent/sysconf/rsyslog-lad.conf;                   installer/conf/rsyslog-lad.conf;                       644; root; root
/etc/opt/microsoft/omsagent/sysconf/syslog-ng.conf;                     installer/conf/syslog-ng.conf;                         644; root; root
/etc/opt/microsoft/omsagent/sysconf/syslog-ng-lad.conf;                 installer/conf/syslog-ng-lad.conf;                     644; root; root

/etc/opt/microsoft/omsagent/sysconf/omsagent.ulinux;                    installer/scripts/omsagent.ulinux;                     755; root; root
/etc/opt/microsoft/omsagent/sysconf/omsagent.systemd;                   installer/scripts/omsagent.systemd;                    644; root; root

/etc/opt/microsoft/omsagent/sysconf/sudoers;                            installer/conf/sudoers;                                664; root; root

%Sudoer_Functions
RemoveSudoersSupport() {
    # Unconfigure sudo configuration
    #
    # Just unconfigure everything we could have done so things are left in clean state

    if [ -f /etc/sudoers.d/omsagent ]; then
        rm -f /etc/sudoers.d/omsagent
    fi

    grep -q '# Begin sudo configuration for omsagent' /etc/sudoers
    if [ $? -eq 0 ]; then
        cp /etc/sudoers /etc/sudoers.bak
        sed '/^# Begin sudo configuration for omsagent/,/# End sudo configuration for omsagent$/ d' /etc/sudoers.bak > /etc/sudoers
    fi
}

SudoSupportsIncludeDirective() {
    # Algorithm:
    #   If    #includedir exists in /etc/sudoers AND /etc/sudoers.d exists,
    #   Then  Use /etc/sudoers.d
    #   Else  Append to /etc/sudoers

    INCLUDEDIR=0
    egrep -q "^#includedir" /etc/sudoers && INCLUDEDIR=1

    if [ $INCLUDEDIR -eq 1 -a -d /etc/sudoers.d ]; then
        return 0
    else
        return 1
    fi
}


%Preinstall_1000

# The OMS_SERVICE script will not be present on a fresh install
[ -f ${{OMS_SERVICE}} ] && ${{OMS_SERVICE}} disable

# Add the 'omsagent' group if it does not already exist
# (Can't use useradd with -U since that doesn't exist on older systems)
egrep -q "^omsagent:" /etc/group
if [ $? -ne 0 ]; then
    echo "Creating omsagent group ..."
    groupadd -r omsagent
fi

# Add the 'omsagent' service account if it does not already exist
egrep -q "^omsagent:" /etc/passwd
if [ $? -ne 0 ]; then
    echo "Creating omsagent service account ..."
    useradd -r -c "OMS agent" -d /var/opt/microsoft/omsagent/run -g omsagent -s /bin/bash omsagent
fi

# Ensure omsagent is in the omiusers group, but leave omsagent as a group
/usr/sbin/usermod -g omiusers omsagent 1> /dev/null 2> /dev/null

# Add the 'nxautomation' group if it does not already exist
# (Can't use useradd with -U since that doesn't exist on older systems)
egrep -q "^nxautomation:" /etc/group
if [ $? -ne 0 ]; then
    echo "Creating nxautomation group ..."
    groupadd -r nxautomation
fi

# create the 'nxautomation' home directory directory if it does not already exist
NXAUTOMATION_RUN_DIR=/home/nxautomation/run
if [ ! -d "$NXAUTOMATION_RUN_DIR" ]; then
    mkdir -p "$NXAUTOMATION_RUN_DIR"
fi

# Add the 'nxautomation' service account if it does not already exist
egrep -q "^nxautomation:" /etc/passwd
if [ $? -ne 0 ]; then
    echo "Creating nxautomation service account ..."
    useradd -r -c "nxOMSAutomation" -d $NXAUTOMATION_RUN_DIR -g nxautomation -s /bin/bash nxautomation
fi

# set appropriate permissions on the nxautomation home directory
NXAUTOMATION_HOME_DIR=/home/nxautomation
chown -R nxautomation:omiusers $NXAUTOMATION_HOME_DIR
chmod -R 750 $NXAUTOMATION_HOME_DIR

# Ensure nxautomation is in the nxautomation group (primary), omsagent group (secondary) and omiusers group (secondary)
/usr/sbin/usermod -g nxautomation -a -G omsagent,omiusers nxautomation 1> /dev/null 2> /dev/null

%Postinstall_500
#include Sudoer_Functions

${{OMI_SERVICE}} reload

# Unconfigure sudo if it's already configured

RemoveSudoersSupport

# Configure sudo (either place in sudoers.d or append to sudoers configuration)

SudoSupportsIncludeDirective
if [ $? -eq 0 ]; then
    cp /etc/opt/microsoft/omsagent/sysconf/sudoers /etc/sudoers.d/omsagent
    chmod 440 /etc/sudoers.d/omsagent
else
    cat /etc/opt/microsoft/omsagent/sysconf/sudoers >> /etc/sudoers
fi

chmod 440 /etc/opt/microsoft/omsagent/sysconf/sudoers

# Set group read permission on OMS cert and key files used by the primary workspace
OMS_CERTS_DIR="/etc/opt/microsoft/omsagent/certs"
if [ -d "$OMS_CERTS_DIR" ]; then
    chmod -R 750 "$OMS_CERTS_DIR"
fi

%Postinstall_590
# Remove NPM directory on purge
NPM_STATE_DIR=/var/opt/microsoft/omsagent/npm_state
if [ -d "$NPM_STATE_DIR" ]; then
    rm -rf $NPM_STATE_DIR
fi

%Postinstall_600
# Set up required states of all onboarded workspaces before starting their daemons
${{OMSADMIN_SCRIPT}} -R
# Start all workspace-specific omsagent daemons
${{OMS_SERVICE}} start

%Preuninstall_10
# If we're called for upgrade, don't do anything
if ${{PERFORMING_UPGRADE_NOT}}; then
    ${{OMS_SERVICE}} disable
    ${{CONF_SYSLOG}} purge
fi


%Postuninstall_1000
#include Sudoer_Functions

# If we're called for upgrade, don't do anything
if ${{PERFORMING_UPGRADE_NOT}}; then
    # Restart the OMI server in case an agent is running under service account
    ${{OMI_SERVICE}} restart

    # Unconfigure sudo if it's already configured
    RemoveSudoersSupport

    # Remove the service accounts
    echo "Deleting nxautomation service account ..."
    userdel nxautomation 2> /dev/null
    echo "Deleting omsagent service account ..."
    userdel omsagent 2> /dev/null

    if [ $? -eq 0 ]; then
        # Depending on system settings, the groups may not have been deleted
        egrep -q "^nxautomation:" /etc/group
        if [ $? -eq 0 ]; then
            echo "Deleting nxautomation group ..."
            groupdel nxautomation
        fi
        egrep -q "^omsagent:" /etc/group
        if [ $? -eq 0 ]; then
            echo "Deleting omsagent group ..."
            groupdel omsagent
        fi
    fi
fi