gpt4 book ai didi

perl - 从 shell 脚本运行 perl 脚本

转载 作者:行者123 更新时间:2023-12-01 23:34:42 28 4
gpt4 key购买 nike

我写了一个在 Centos64 上做事的 shell 脚本

在这个脚本的最后,我运行了一个 perl 脚本。

它以 root 身份运行良好(我已经安装了 perl 模块),但是当我以系统用户身份运行它时

我收到消息:

./UserActivityReport.sh
无法在@INC 中找到 MIME/Lite.pm(@INC 包含:/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/site_perl/5.8.8/usr/lib/perl5/site_perl/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/vendor_perl/5.8.8/usr/lib/perl5/vendor_perl/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/usr/lib/perl5/5.8.8 .) 在/optreports/sendmailUAR.pl 第 3 行。
BEGIN 失败——编译在/opt/reports/sendmailUAR.pl 第 3 行中止。

好像没有为用户安装模块......

我在我的 shell 脚本中使用此命令运行脚本:

/usr/bin/perl  /opt/reports/sendmailUAR.pl

为什么没有运行?

注意:我无法使用系统用户安装 perl 模块。

===给你:

perl -MMIME::Lite -MData::Dumper -e'print Dumper \%INC'
$VAR1 = {
're.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/re.pm',
'warnings/register.pm' => '/usr/lib/perl5/5.8.8/warnings/register.pm',
'XSLoader.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/XSLoader.pm',
'IO/Handle.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/IO/Handle.pm',
'MIME/Types.pm' => '/usr/lib/perl5/site_perl/5.8.8/MIME/Types.pm',
'SelectSaver.pm' => '/usr/lib/perl5/5.8.8/SelectSaver.pm',
'IO/Seekable.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/IO/Seekable.pm',
'warnings.pm' => '/usr/lib/perl5/5.8.8/warnings.pm',
'File/Basename.pm' => '/usr/lib/perl5/5.8.8/File/Basename.pm',
'Fcntl.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/Fcntl.pm',
'IO.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/IO.pm',
'Symbol.pm' => '/usr/lib/perl5/5.8.8/Symbol.pm',
'bytes.pm' => '/usr/lib/perl5/5.8.8/bytes.pm',
'MIME/Type.pm' => '/usr/lib/perl5/site_perl/5.8.8/MIME/Type.pm',
'Carp.pm' => '/usr/lib/perl5/5.8.8/Carp.pm',
'MIME/Base64.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/MIME/Base64.pm',
'Exporter/Heavy.pm' => '/usr/lib/perl5/5.8.8/Exporter/Heavy.pm',
'File/Spec/Unix.pm' => '/usr/lib/perl5/5.8.8/File/Spec/Unix.pm',
'FileHandle.pm' => '/usr/lib/perl5/5.8.8/FileHandle.pm',
'strict.pm' => '/usr/lib/perl5/5.8.8/strict.pm',
'Exporter.pm' => '/usr/lib/perl5/5.8.8/Exporter.pm',
'vars.pm' => '/usr/lib/perl5/5.8.8/vars.pm',
'MIME/Lite.pm' => '/usr/lib/perl5/site_perl/5.8.8/MIME/Lite.pm',
'MIME/QuotedPrint.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/MIME/QuotedPrint.pm',
'File/Spec.pm' => '/usr/lib/perl5/5.8.8/File/Spec.pm',
'overload.pm' => '/usr/lib/perl5/5.8.8/overload.pm',
'IO/File.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/IO/File.pm',
'Mail/Address.pm' => '/usr/lib/perl5/site_perl/5.8.8/Mail/Address.pm',
'Data/Dumper.pm' => '/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/Data/Dumper.pm'

};

最佳答案

在其中一条评论中,您发布了如下目录列表:

[root~]# ls -l /usr/lib/perl5/site_perl/5.8.8/
total 60
drwxr-x--- 3 root root 4096 Sep 14 13:09 Date
drwxr-x--- 3 root root 4096 Sep 14 13:09 Email
drwxr-x--- 4 root root 4096 Sep 14 13:10 Mail
drwxr-x--- 2 root root 4096 Sep 14 13:10 MIME
drwxr-x--- 2 root root 4096 Sep 15 06:30 OLE
drwxr-x--- 2 root root 4096 Sep 15 06:30 Parse
drwxr-x--- 2 root root 4096 Sep 14 13:10 Pod
drwxr-x--- 3 root root 4096 Sep 15 06:30 Spreadsheet
drwxr-x--- 2 root root 4096 Sep 14 13:09 Time
-r--r--r-- 1 root root 6500 Aug 21 07:19 version.pm
-r--r--r-- 1 root root 9887 Aug 21 07:12 version.pod

很明显,root 以外的用户无权访问这些文件。您可能应该通过遍历所有 @INC 并根据需要更改权限来进行更彻底的审核,但是首先,find/usr/lib/perl5/site_perl/5.8.8 -type d -exec chmod a+rx {}\;

关于perl - 从 shell 脚本运行 perl 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429847/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com