只读符号链接或类似的东西?

只读符号链接或类似的东西?

我为自己创建了一个 NAT 供家庭使用(Ubuntu+Samba+Greyhole+Apache+MySQL+其他 Web 服务器相关的东西)。我存储的文件中 90% 都是我不想丢失的图片(这就是为什么使用 Greyhole)。随着图像库变得越来越大,我想到了创建网络图像库,在其中我可以通过标签对图像进行排序,以便稍后进行搜索等。创建图库并不是真正的问题,因为我对 php/mysql 非常方便/css/js。

我的问题是安全性和系统级文件共享和可访问性。

Web 应用程序(图库)目录是: var/www/html所有者为 www-data:www-data。

并且图片也在其中/LandingZone/images(嗯,图片的符号链接在那里,因为图像本身是通过灰洞复制和移动的)。

/LandingZone/images所有权是:myusername1:greyhole(灰洞是组,其中有:myusername1 和 myusername2 用户,因为他们都需要有权访问共享读/写)。

现在,我需要做的是以某种方式为 www-data 用户启用只读访问权限,/LandingZone/images而不会将图像置于风险之中,而且我不知道 Linux 组/用户权限如何,因为我想感到舒服并测试我的自己的。

当我设置类似 dyndns 的服务时,Web 服务器本身可以通过互联网访问,因此我不想将 www-data 用户放入灰洞组,并使攻击者能够删除所有图片或类似内容。

有没有办法以某种方式为该文件夹创建只读符号链接并赋予 www 用户从中读取文件的权力?

/var/www/html/gallery/images我确实设法通过使用以下方法让该共享以某种方式“喜欢” :

$ mount --bind /LandingZone/images /var/www/html/gallery/images
$ mount -o remount,ro /var/www/html/gallery/images

但由于所有权原因,我的网络服务器无法访问这些文件(我猜)。

现在我该如何处理呢?我是否可以将 www-data 用户放入灰洞组,以便 Web 服务器可以访问文件,并且仍然安全,例如接管图库软件控制权的攻击者将无法删除图像?或者我应该通过其他方式甚至不使用安装来做到这一点?

我愿意接受建议。

答案1

网络文件的最佳安全类型是从数据库读取,如果可能导入到数据库,例如mysqlpostgresql,并且当用户请求时,您从数据库获取。

您有两种类型的图片文件:

  • 文件被视为 html 的一部分### you have to save as file no db
  • 文件正在作为您内容的一部分创建### you have to save-restore into/from db

相关内容