在当前Web服务器文档的根权限中创建符号链接

赛义德巴克

我有要在具有以下配置的Apache虚拟主机上托管的网站中使用的静态资源(mp3和图像):

<VirtualHost *:80>
ServerName example.com
    serverAlias myexample.loc   
    DocumentRoot /home/USER/www/yii2/web
    <Directory "/home/USER/www/yii2/web">
        AllowOverride All
        Options Indexes FollowSymLinks MultiViews
        Require all granted
    </Directory>
</VirtualHost>

可在闪存上的以下路径中找到资源:

/media/USER/KINGSTON/audio

我已经使用ls -s以下命令在站点的文档根目录中为上述目录创建了一个符号链接

sudo ln -s /media/USER/KINGSTON/audio /home/USER/www/yii2/web 

但是,尝试访问任何资源都会导致403 Forbidden错误。如何授予允许www数据用户访问的安全权限

狂欢一场

/media/USER/KINGSTON/audio目录的权限是什么?请记住,Apache遍历的目录需要+ x。

因此/media//media/USER/media/USER/KINGSTON/以及/media/USER/KINGSTON/audio需要有+ x对于世界www数据才能够访问它。sudo chmod +x /path对于上面的每个目录,都可以使用来完成如果KINGSTON设备不是Unix文件系统,那么您可能会遇到麻烦,因为它没有传统的Unix ACL。

此外,如果这是一个永久解决方案,我可能会将其添加为普通安装点。有关如何执行此操作的方法,请查看此问答

举一个简短的例子-注意,#作为提示表示命令以root身份运行,$表示普通用户。

/tmp # mkdir foo
/tmp # chmod 754 foo
/tmp # cd foo
/tmp/foo # mkdir bar
/tmp/foo # chmod 755 bar
/tmp/foo # ls -la
total 20
drwxr-xr--  3 root root  4096 Dec 24 14:24 .
drwxrwxrwt 57 root root 12288 Dec 24 14:23 ..
drwxr-xr-x  2 root root  4096 Dec 24 14:24 bar
# Note that the directory bar has read and execute permissions for everyone, but /tmp/foo has only read for others than group and user.
/tmp/foo # echo "foo" > bar/foo 
$ cd /tmp/foo/bar
bash: cd: /tmp/foo/bar: Permission denied
$ cat /tmp/foo/bar/foo
cat: /tmp/foo/bar/foo: Permission denied
/tmp/foo # chmod +x . #Add execute permission for world to /tmp/foo
$ cat /tmp/foo/bar/foo
foo

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章