1*a6700913Snitinkotania#!/bin/bash 2*a6700913Snitinkotania# 3*a6700913Snitinkotania# config: 2 20 4*a6700913Snitinkotania# @brief: Get the ldap configuration 5*a6700913Snitinkotania# 6*a6700913Snitinkotania 7*a6700913Snitinkotania# shellcheck disable=SC1091 8*a6700913Snitinkotania# shellcheck disable=SC2086 9*a6700913Snitinkotania 10*a6700913Snitinkotania. "$DREPORT_INCLUDE"/functions 11*a6700913Snitinkotania 12*a6700913Snitinkotaniadesc="ldap configuration" 13*a6700913Snitinkotania 14*a6700913Snitinkotaniaopen_ldap_command="busctl get-property \ 15*a6700913Snitinkotania xyz.openbmc_project.Ldap.Config \ 16*a6700913Snitinkotania /xyz/openbmc_project/user/ldap/openldap \ 17*a6700913Snitinkotania xyz.openbmc_project.Object.Enable \ 18*a6700913Snitinkotania 'Enabled'" 19*a6700913Snitinkotania 20*a6700913Snitinkotaniaactive_dir_command="busctl get-property \ 21*a6700913Snitinkotania xyz.openbmc_project.Ldap.Config \ 22*a6700913Snitinkotania /xyz/openbmc_project/user/ldap/active_directory \ 23*a6700913Snitinkotania xyz.openbmc_project.Object.Enable \ 24*a6700913Snitinkotania 'Enabled'" 25*a6700913Snitinkotania 26*a6700913Snitinkotaniacommands=( 27*a6700913Snitinkotania "systemctl status nslcd" 28*a6700913Snitinkotania "systemctl status xyz.openbmc_project.Ldap.Config" 29*a6700913Snitinkotania "busctl tree xyz.openbmc_project.Ldap.Config" 30*a6700913Snitinkotania "busctl call xyz.openbmc_project.Ldap.Config \ 31*a6700913Snitinkotania /xyz/openbmc_project/user/ldap \ 32*a6700913Snitinkotania org.freedesktop.DBus.ObjectManager \ 33*a6700913Snitinkotania 'GetManagedObjects'" 34*a6700913Snitinkotania) 35*a6700913Snitinkotania 36*a6700913Snitinkotaniafile_name=$"ldap_bmcdump_$EPOCHTIME" 37*a6700913Snitinkotaniaoutput_file_dir="$TMP_DIR/ldap_bmcdump" 38*a6700913Snitinkotaniaoutput_file="$output_file_dir/$file_name" 39*a6700913Snitinkotania 40*a6700913Snitinkotaniaif [ -e "$output_file" ]; then 41*a6700913Snitinkotania rm "$output_file" 42*a6700913Snitinkotaniafi 43*a6700913Snitinkotania 44*a6700913Snitinkotaniaif [ ! -d "$output_file_dir" ]; then 45*a6700913Snitinkotania mkdir -p "$output_file_dir" 46*a6700913Snitinkotaniafi 47*a6700913Snitinkotania 48*a6700913SnitinkotanialdapEnabled="false" 49*a6700913Snitinkotania 50*a6700913Snitinkotaniaif result=$(eval "$open_ldap_command" | awk '{print $NF}'); then 51*a6700913Snitinkotania if [ "$result" == "true" ]; then 52*a6700913Snitinkotania ldapEnabled="true" 53*a6700913Snitinkotania elif [ "$result" == "false" ]; then 54*a6700913Snitinkotania if result=$(eval "$active_dir_command" | awk '{print $NF}'); then 55*a6700913Snitinkotania if [ "$result" == "true" ]; then 56*a6700913Snitinkotania ldapEnabled="true" 57*a6700913Snitinkotania fi 58*a6700913Snitinkotania fi 59*a6700913Snitinkotania fi 60*a6700913Snitinkotaniafi 61*a6700913Snitinkotania 62*a6700913Snitinkotaniaif [ "$ldapEnabled" == "false" ]; then 63*a6700913Snitinkotania log_warning "skipping LDAP dump: LDAP is not enabled" 64*a6700913Snitinkotania exit 0; 65*a6700913Snitinkotaniaelse 66*a6700913Snitinkotania for cmd in "${commands[@]}"; do 67*a6700913Snitinkotania result=$(eval "$cmd" ) 68*a6700913Snitinkotania echo "=============$cmd=============" >> "$output_file" 69*a6700913Snitinkotania echo "$result" >> "$output_file" 70*a6700913Snitinkotania done 71*a6700913Snitinkotania 72*a6700913Snitinkotania command="cat $output_file" 73*a6700913Snitinkotania file_name="usrmgrldap.log" 74*a6700913Snitinkotania add_cmd_output "$command" "$file_name" "$desc" 75*a6700913Snitinkotania rm -rf $output_file 76*a6700913Snitinkotania 77*a6700913Snitinkotania desc="nslcd config" 78*a6700913Snitinkotania result=$(sed '/^bindpw/d' /etc/nslcd.conf) 79*a6700913Snitinkotania command="printf \"%s\n\" \"\$result\"" 80*a6700913Snitinkotania file_name="nslcd.conf" 81*a6700913Snitinkotania add_cmd_output "$command" "$file_name" "$desc" 82*a6700913Snitinkotaniafi 83