perl脚本无法更改用于在linux上使用apache上传的文件的组

时间:2014-07-19 02:31:35

标签: linux apache perl cgi

我正在使用perl cgi脚本在Linux上使用Apache上传文件。该文件具有所有者:组设置为apache:apache按预期方式。我希望user1能够访问该文件,但不能访问其他文件。 apache用户是user1的默认组的成员,如下所示:

[user1@files ~]$ grep user1 /etc/group
user1:x:513:apache

以apache身份运行的perl脚本以以下行结束:

system("ls -l $file")
my $uid = getpwnam( 'apache' );
my $gid = getgrnam( 'user1' );
print "<br />attempting: chown $uid, $gid, $file<br />";
chown $uid, $gid, $file or die "$!";

以下输出显示尝试更改组失败:

-rw-r----- 1 apache apache 197927 Jul 19 02:10 /var/www/uploads/testfile.txt
attempting: chown 48, 513, /var/www/uploads/testfile.txt
Software error:
Operation not permitted at /var/www/cgi-bin/upload.pl line 67.

知道为什么apache用户无法更改文件的组?

1 个答案:

答案 0 :(得分:0)

请检查uploads文件夹的权限,它可能既没有apache所有权也没有apache访问权限。

chmod 755 /var/www/uploads

然后执行脚本,它将起作用。