Tips for finding Knowledge Articles

  • - Enter just a few key words related to your question or problem
  • - Add Key words to refine your search as necessary
  • - Do not use punctuation
  • - Search is not case sensitive
  • - Avoid non-descriptive filler words like "how", "the", "what", etc.
  • - If you do not find what you are looking for the first time,reduce the number of key words you enter and try searching again.
  • - Minimum supported Internet Explorer version is IE9
Home  >

KB-6965: dzdo does not allow command execution if perl 5.8.2 is used

1 June,16 at 08:14 PM

Applies to: 

Centrify DirectControl 5.2.1 and later with perl 5.8.2.


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.


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

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.


There are two ways to resolve this issue:
  1. Upgrade perl to a newer version. 
  2. Modify the script to skip the version check steps and use a specified perl binary.