当前位置: 首页 > 面试题库 >

如何设置Laravel的文件权限?

范成周
2023-03-14
问题内容

我正在使用拥有者设置为的Apache Web服务器_www:_www。我永远都不知道文件权限的最佳做法是什么,例如,当我创建新的Laravel
5项目时。

Laravel
5要求/storage文件夹可写。我发现了很多不同的方法可以使其正常工作,而我通常以777递归方式使其成为chmod。我知道这不是最好的主意。

官方文件说:

Laravel可能需要配置一些权限:Web服务器中的文件夹, storage并且vendor需要Web服务器进行写访问。

这是否意味着Web服务器也需要访问storagevendor文件夹本身或仅访问其当前内容?

我认为更好的是更改 所有者
而不是权限。我将所有Laravel的文件权限递归更改为_www:_www,这使站点正常工作,就像将chmod更改为一样777。问题是,现在我的文本编辑器每次想保存任何文件时都要求我输入密码,如果我尝试在Finder中更改任何内容(例如复制文件),也会发生同样的情况。

解决这些问题的正确方法是什么?

  1. 更改 chmod
  2. 更改文件的所有者以使其与Web服务器的所有者匹配,并可能将文本编辑器(和Finder?)设置为跳过询问密码或使它们使用 sudo
  3. 更改Web服务器的所有者以匹配os用户(我不知道后果)
  4. 还有别的

问题答案:

只是为了表明查看此讨论的任何人的明显点。…如果您授予任何文件夹777权限,则允许任何人读取,写入和执行该目录中的任何文件....这意味着您已经得到了任何人(全世界的任何黑客或恶意人士)都有权上传任何文件,病毒或任何其他文件,然后执行该文件…

如果您将文件夹权限设置为777,那么您已经向任何可以找到该目录的人打开了服务器。足够清楚了吗???:)

基本上有两种方法来设置您的所有权和权限。您要么赋予自己所有权,要么使Web服务器成为所有文件的所有者。

Web服务器作为所有者(大多数人的操作方式以及Laravel文档的方式):

假设www-data(可能是其他数据)是您的网络服务器用户。

须藤chown -R www-data:www-data / path / to / your / laravel / root / directory

如果这样做,则网络服务器将拥有所有文件,也属于该组,并且通过FTP上传文件或使用文件会遇到一些问题,因为FTP客户端将以您而不是网络服务器的身份登录。您的用户到Web服务器用户组:

sudo usermod -a -G www-data ubuntu

当然,这假设您的网络服务器以www-data(Homestead的默认值)运行,并且您的用户是ubuntu(如果您使用Homestead则无所适从)。

然后将所有目录设置为755,将文件设置为644 … SET文件权限

sudo查找/ path / to / your / laravel / root / directory -type f -exec chmod 644 {} \;

SET目录权限

sudo查找/ path / to / your / laravel / root / directory -type d -exec chmod 755 {} \;

您的用户作为所有者

我更喜欢拥有所有目录和文件(这使得处理所有内容变得更加容易),所以我这样做:

sudo chown -R我的用户:www-data / path / to / your / laravel / root / directory

然后,我同时给自己和Web服务器权限:

sudo查找/ path / to / your / laravel / root / directory -type f -exec chmod 664 {} \;    
sudo查找/ path / to / your / laravel / root / directory -type d -exec chmod 775 {} \;

然后授予Web服务器读取和写入存储和缓存的权限

无论采用哪种方式进行设置,都需要向Web服务器授予读写权限,以存储,缓存以及Web服务器也需要上传或写入的任何其他目录(具体取决于您的情况),因此请从上面的bashy运行命令:

sudo chgrp -R www数据存储引导程序/缓存
sudo chmod -R ug + rwx存储引导程序/缓存

现在,您很安全,您的网站可以正常运行,并且可以轻松地处理文件



 类似资料:
  • 我使用的Apache Web服务器的所有者设置为。我从来不知道什么是文件权限的最佳实践,例如当我创建新的Laravel5项目时。 Laravel 5要求文件夹是可写的。我发现了许多不同的方法来使其工作,我通常以递归地使其chmod结束。我知道这不是最好的主意。 官方文件说: Laravel可能需要配置某些权限:和中的文件夹需要web服务器的写访问权限。 这是否意味着web服务器也需要访问和文件夹本

  • 用户在轻推上传文件时,考虑到对文件的传播有着不同的考量,因此在发送文件时也可以对文件的转发和下载权限进行设置。转发权限可选择:可转发、仅在企业内转发、不可转;下载权限可设置:可下载和不可下载。 例如,当文件为企业内的重要文件,仅希望企业内员工可见,不希望外传时,则可以设置文件为仅在企业内转发,不可下载;设置后,则该文件只能在企业内分享,文件可以支持在线预览,不可下载,并且将加上阅读者的名字和手机号

  • 我正在尝试使用jib-maven-plugin构建docker映像,我想为特定文件夹设置权限。如果我使用的是docker文件,配置将如下所示: 现在,我该如何使用jib maven插件实现这一点?我相信在波姆的某个地方。jib maven插件中的xml

  • 我使用中的此选项在服务器中运行: 我得到这个错误: 分析INI配置文件时出错:未知的选项安全性。

  • 我正在Centos 7发行版上安装Laravel应用程序。我使用的是PHP7.2,我已经成功地安装了apache和我的项目。 我能够得到Apache闪屏页面显示,但一旦我指向我的虚拟主机laravel公共文件夹,我得到apache2日志中的文件权限错误。 我已经让我的公共文件夹和存储文件夹都被所有人读/写/执行了很短的一段时间,但我仍然收到错误。 我的虚拟主机: 我的权限(在公共和引导临时chmo

  • 问题内容: 我想通过在Plone站点中使用Python脚本设置许多文件夹的共享权限。 问题答案: 您需要查看模块以获取详细信息。Plone中的共享选项卡是该API的友好包装。 要为给定的用户标识添加角色,请致电: 其他两个重要方法是(完全替换当前角色集)和(删除所有角色)。查看已经定义了哪些本地角色也可能很方便。 您希望在进行此类更改后重新索引安全性信息: