bash 无法识别可执行的 Perl 脚本
bash does not recognize executable Perl script
我对 bash and/or perl 有一个非常神秘的问题。我将尝试描述行为。
运行 perl 脚本来自
./perlscript.pl
给我一条权限被拒绝的消息。
(我是文件的所有者及其路径 - 从我的主目录 and 文件包含 #!/usr/bin/perl
and 可执行 -rwxr-xr-x
)
运行 脚本如下:
perl perlscript.pl
还可以……
谁能帮我解决 bash?谢谢
$ which perl
/usr/bin/perl
$ head -1 file.pl | od -c
0000000 # ! / u s r / b i n / p e r l \n
0000020
perlscript.pl
所在的文件系统是否挂载了noexec
标志?
假设您在 Linux、cat /proc/mounts
并在具有适当文件系统的行上查找 noexec
。
noexec
标志阻止任何人在位于该文件系统上的文件上调用 exec(这是 bash 在您执行 ./perlscript.pl
时所做的)。但是 perl perlscript.pl
在 /usr/bin/perl
上调用 exec,然后打开 perlscript.pl
进行读取。
安装在 noexec
文件系统上的文件仍然可以 具有 执行权限,只是不能使用它。
我对 bash and/or perl 有一个非常神秘的问题。我将尝试描述行为。
运行 perl 脚本来自
./perlscript.pl
给我一条权限被拒绝的消息。
(我是文件的所有者及其路径 - 从我的主目录 and 文件包含 #!/usr/bin/perl
and 可执行 -rwxr-xr-x
)
运行 脚本如下:
perl perlscript.pl
还可以……
谁能帮我解决 bash?谢谢
$ which perl
/usr/bin/perl
$ head -1 file.pl | od -c
0000000 # ! / u s r / b i n / p e r l \n
0000020
perlscript.pl
所在的文件系统是否挂载了noexec
标志?
假设您在 Linux、cat /proc/mounts
并在具有适当文件系统的行上查找 noexec
。
noexec
标志阻止任何人在位于该文件系统上的文件上调用 exec(这是 bash 在您执行 ./perlscript.pl
时所做的)。但是 perl perlscript.pl
在 /usr/bin/perl
上调用 exec,然后打开 perlscript.pl
进行读取。
安装在 noexec
文件系统上的文件仍然可以 具有 执行权限,只是不能使用它。