Applies to: Centrify DirectControl 5.2.1 and later with perl 5.8.2.
Problem: When a dzdo command is executed, dzdo fails with error messages similar to the following:
bash-4.2$ dzdo id
/usr/share/centrifydc/perl/run: Cannot find perl binary.
Sorry, user mutou1 is not allowed to execute '/usr/bin/id' as root on aix61v3.
Cause: There is an issue with perl 5.8.2 where it fails to execute "
perl -e" if the caller's ruid and euid are not the same.
Centrify DirectControl requires perl 5.8 or later to function properly. To determine if installed perl meets this requirement, the following script is used in
/usr/share/centrifydc/perl/run:
if "$dir/perl" -e 'use 5.008;' > /dev/null 2>&1
then
perl="$dir/perl"
break
fi
When perl 5.8.2 is used and dzdo is called with non-matching euid and ruid, "
perl -e 'use 5.008'" fails. Since this version validation step fails, the script does not set
perl="$dir/perl". Thus it produces the error message: "/usr/share/centrifydc/perl/run: Cannot find perl binary."dzdo 5.2.0 and earlier calls the script with euid and ruid set to 0. Because of this, this issue exists only in DirectControl 5.2.1 and later.
Resolution: There are two ways to resolve this issue:
- Upgrade perl to a newer version.
- Modify the script to skip the version check steps and use a specified perl binary.