我正在向我的脚本添加功能,以便它们可以使用 kerberos 身份验证自动运行并在执行时使用安全协议。我的功能适用于完全符合我要求的 shell 脚本,但是我在将其移植到 perl 以在我的 perl 脚本中工作时遇到问题,因为我是 perl 新手。这是我的工作 shell 代码,并试图在 perl 中获得相同的功能:
#!/bin/sh
ticketFileName=`basename $0-$$` #set filename variable to name of script plus the PID
krb5CacheLocation=/tmp/$ticketFileName #set ticket cache location to /tmp + script name
/usr/share/centrifydc/kerberos/bin/kinit -c $krb5CacheLocation -kt /root/.ssh/someaccount.keytab someaccount #get TGT and specifiy ticket cache location on kinit
export KRB5CCNAME=$krb5CacheLocation #set the KRB5CCNAME variable to tell ssh where to look
我在 perl 中尝试过的内容:
#!/usr/bin/perl
my $ticketFileName = `basename $0-$$`;
my $krb5CacheLocation = '/tmp/'.$ticketFileName;
`export KRB5CCNAME=$krb5CacheLocation`;
`/usr/share/centrifydc/kerberos/bin/kinit -c $krb5CacheLocation -kt /root/.ssh/someaccount.keytab someaccount`;
似乎它不喜欢我在 OS 命令中引用的传递变量。有人有什么想法或建议吗?