首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拒绝使用perl打开写入文件的权限

拒绝使用perl打开写入文件的权限
EN

Stack Overflow用户
提问于 2014-08-14 01:12:19
回答 1查看 5.7K关注 0票数 1

我有一个问题,我一直在努力去工作。首先,我很久以前编写了一个PERL脚本,它位于另一个服务器上。我们正在创建一个新的服务器,我已经下载/安装了草莓PERL 64位。我现在正在检查我的所有PERL脚本,以确保所有的脚本都能在新服务器上工作。

我将脚本转换为Strawberry想要的新方式(使用require来使用另一个在线文件),但我无法克服以下错误:拒绝打开用于编写的文件。

我启动了一个调用内联文件的shell程序:

代码语言:javascript
复制
require "cgi/cr/main_test.pl";

此数组保存将通过以下方式运行的文本文件:

代码语言:javascript
复制
my @main = ("BOOKS","CDs","DVDs","VIDEOS","PERIODICALS","VIDEO-GAMES","TOYS","RECORDED-BOOKS","BINS");

要求调用一个程序来打开文件以写入结果,然后遍历每个文本文件并显示和添加每个文件中的数字。

代码语言:javascript
复制
#!/usr/bin/perl -w

my $recFnd = "C:\\inetpub\\wwwroot\\cgi-bin\\CustomerRelations\\recs_found.txt";
chmod 0755, $recFnd;
print "<p>$recFnd</p>";
open (my $newloc, '>', $recFnd) or die "Couldn't open: $!";

上面的是$recFnd打开一个文本文件,它将编写任何找到的代码(我有一个包含所有代码的文件)。我使用两者的数据来查找使用过的任何新代码。)。在下一行中,我更改了文件权限,但它只是经过(可能有效,但我无法测试,因为这是一个windows环境)。然后,我打印文件的位置7名称,以确保它有正确的文件。最后,开放的地方,我已经尝试了每一个版本,我可以让这个工作。最初打开文件的代码如下:

代码语言:javascript
复制
open (NEWLOC, "> recs_found.txt ") || die;

不管我做什么,我都会犯一个权限错误。要写入的文件所在的文件夹中的每个人都在“建筑物完全控制”中。我不知道我能做些什么。

如果有人能帮忙,我会非常感激的。

EN

Stack Overflow用户

发布于 2014-08-20 05:36:39

因此,如果这是Strawberry Perl,这是在Windows上,如果这些是脚本,它们可能在系统帐户下运行。您的问题可能是文件系统acls问题,而不是Perl方面的问题。

解决和解决此问题的方法是验证服务在哪个用户下运行。如果这是一个web应用程序,那么它将是运行Apache、IIS或类似程序的任何服务。它很可能是NetworkService账户。但是,您应该验证这一点。与所有事情一样,给予所有父目录读取权限并对该目录进行写入访问是一个好主意。

注意,Windows使用ACL作为模型,而不是UNIX模型。

如果其他脚本可以从web服务器写入文件,那么还会发生其他事情,但如果是这样的话,我会感到非常惊讶。

此外,post有一个UNIX行,而post则表示Windows实现。这在一定程度上是迂腐的,但解决这些问题需要对细节的关注,所以在这里学书呆子是很好的。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25298596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档