【发布时间】:2013-07-28 05:22:20
【问题描述】:
我在使用 Perl 创建目录时遇到问题:
$country = 7;
$city = 12;
$uploadFolder = "/opt/v-hosts/user/html/images/h_photos/ls";
$destination = $uploadFolder;
mkdir($destination) if(!-e $destination);
$destination .= "/$country";
mkdir($destination,0755) if(!-e $destination);
$destination .= "/$city";
mkdir($destination,0755) if(!-e $destination);
当我尝试执行此代码时,它应该创建以下目录:
/opt/v-hosts/user/html/images/h_photos/ls/7/12
不幸的是代码返回错误:
mkdir /opt/v-hosts/user/html/images/h_photos/ls/7:/opt/v-hosts/user/epbin/ls.cgi 第 1376 行的权限被拒绝。\n
我尝试将ls文件的权限更改为777,但没有解决问题。
【问题讨论】:
-
您没有足够的权限访问
$uploadFolder。检查ls -l /opt/v-hosts/user/html/images/h_photos/。所以lsforlder 已经存在,而你没有权限... -
真的我不明白你的意思。我的问题是如何访问文件然后在子目录中创建新文件?
-
是的。并且错误消息的意思是,您没有权限。
-
在这种情况下,我必须更改哪个文件的权限?
-
检查路径
/opt/v-hosts/user/html/images/h_photos/中每个目录的权限。我的猜测是中间目录之一阻止了你。这些中间目录不需要是rwx,但对于脚本运行的uid,它们至少需要是x。
标签: perl permissions directory mkdir