| #!/bin/bash |
| # |
| # config: 2 20 |
| # @brief: Get the ldap configuration |
| # |
| |
| # shellcheck disable=SC1091 |
| # shellcheck disable=SC2086 |
| |
| . "$DREPORT_INCLUDE"/functions |
| |
| desc="ldap configuration" |
| |
| open_ldap_command="busctl get-property \ |
| xyz.openbmc_project.Ldap.Config \ |
| /xyz/openbmc_project/user/ldap/openldap \ |
| xyz.openbmc_project.Object.Enable \ |
| 'Enabled'" |
| |
| active_dir_command="busctl get-property \ |
| xyz.openbmc_project.Ldap.Config \ |
| /xyz/openbmc_project/user/ldap/active_directory \ |
| xyz.openbmc_project.Object.Enable \ |
| 'Enabled'" |
| |
| commands=( |
| "systemctl status nslcd" |
| "systemctl status xyz.openbmc_project.Ldap.Config" |
| "busctl tree xyz.openbmc_project.Ldap.Config" |
| "busctl call xyz.openbmc_project.Ldap.Config \ |
| /xyz/openbmc_project/user/ldap \ |
| org.freedesktop.DBus.ObjectManager \ |
| 'GetManagedObjects'" |
| ) |
| |
| file_name=$"ldap_bmcdump_$EPOCHTIME" |
| output_file_dir="$TMP_DIR/ldap_bmcdump" |
| output_file="$output_file_dir/$file_name" |
| |
| if [ -e "$output_file" ]; then |
| rm "$output_file" |
| fi |
| |
| if [ ! -d "$output_file_dir" ]; then |
| mkdir -p "$output_file_dir" |
| fi |
| |
| ldapEnabled="false" |
| |
| if result=$(eval "$open_ldap_command" | awk '{print $NF}'); then |
| if [ "$result" == "true" ]; then |
| ldapEnabled="true" |
| elif [ "$result" == "false" ]; then |
| if result=$(eval "$active_dir_command" | awk '{print $NF}'); then |
| if [ "$result" == "true" ]; then |
| ldapEnabled="true" |
| fi |
| fi |
| fi |
| fi |
| |
| if [ "$ldapEnabled" == "false" ]; then |
| log_warning "skipping LDAP dump: LDAP is not enabled" |
| exit 0; |
| else |
| for cmd in "${commands[@]}"; do |
| result=$(eval "$cmd" ) |
| echo "=============$cmd=============" >> "$output_file" |
| echo "$result" >> "$output_file" |
| done |
| |
| command="cat $output_file" |
| file_name="usrmgrldap.log" |
| add_cmd_output "$command" "$file_name" "$desc" |
| rm -rf $output_file |
| |
| desc="nslcd config" |
| result=$(sed '/^bindpw/d' /etc/nslcd.conf) |
| command="printf \"%s\n\" \"\$result\"" |
| file_name="nslcd.conf" |
| add_cmd_output "$command" "$file_name" "$desc" |
| fi |