我正在使用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用户无法更改文件的组?
答案 0 :(得分:0)
请检查uploads文件夹的权限,它可能既没有apache所有权也没有apache访问权限。
chmod 755 /var/www/uploads
然后执行脚本,它将起作用。