【问题标题】:Using Coldfusion to write to a USB flash drive on Linux在 Linux 上使用 Coldfusion 写入 USB 闪存驱动器
【发布时间】:2021-05-14 03:16:05
【问题描述】:

我正在尝试将文件写入位于 /media/user/drive_name 的 USB 驱动器

我工作的目录是/var/www/html/site_folder

<cffile action="write" file="../../../../media/user/drive_name/hello.txt" output="hello">

我得到“/media/user/drive_name/hello.txt 的父目录不存在”

我尝试读取文件,它告诉我它不是文件。

有人有这方面的经验吗?

【问题讨论】:

  • 使用 Linux,您应该能够直接从挂载点读取,而不需要从包含 CF 代码的当前文件夹回溯。 CF 服务器用户更有可能无法访问类似的已安装驱动器。
  • ``` ``` 返回权限信息。当我将驱动器添加到路径时,它仍然告诉我路径不存在。

标签: linux ubuntu coldfusion lucee


【解决方案1】:

这会引发错误:

<cffile action="write" file="../../../../media/user/drive_name/hello.txt" output="hello">

/media/user/drive_name/hello.txt 的父目录不存在

但这会返回权限信息:

<cfdump var="#getFileInfo("/media/user")#">

您的初始代码试图从相对路径引用/media 文件夹/驱动器。在 Linux 上,您应该能够直接从主目录访问根 / 挂载文件夹。

服务器可以读取这个文件吗?

<cffile action="read" file="/media/user/drive_name/hello.txt" variable ="content">

【讨论】:

    【解决方案2】:

    感谢 Adrian J Moreno 的回复。是的,我已经尝试过相对和绝对的,但都没有奏效。最终起作用的是我们必须以授予它权限的 root 用户身份运行 Lucee。

    【讨论】:

    • 以 root 身份运行是一个主要的安全问题。您不想在生产(或实际上任何)服务器上这样做。
    • @Miguel-F 同意。 Paul,这可以追溯到我最初的评论,即 CF 用户有权访问已安装的 USB 驱动器。您应该弄清楚如何为 CF 用户提供正确的访问权限。如果您允许您的服务器以root 运行,那么您应用程序上的任何代码现在都可以访问您服务器上的任何文件。开发人员可能会意外删除服务器上任何位置的文件和文件夹。如果有人设法进入您的应用程序,黑客可能拥有对您服务器的完全访问权限。
    猜你喜欢
    • 2011-03-24
    • 2019-08-03
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    相关资源
    最近更新 更多