【问题标题】:file / folder permissions - dotnet building on windows but deploy to linux文件/文件夹权限 - dotnet 在 Windows 上构建但部署到 linux
【发布时间】:2020-12-06 00:52:11
【问题描述】:

我正在 Windows 机器上开发和构建 asp.net 核心,但将在 linux 机器 (ubuntu) 上运行。

这是一个小型项目 - 我将在 Visual Studio 中以发布模式构建文件夹,然后手动通过 FTP 传输到服务器。

设置文件夹或文件权限是否需要任何步骤?我记得在某处读过在 Windows 上创建并复制到 linux 的文件会默认打开权限?

【问题讨论】:

    标签: linux asp.net-core .net-core


    【解决方案1】:

    默认情况下,Linux 上的文件系统权限比 Windows 上的限制要多一些。不过,这通常只会影响 write 访问。如果您通过 FTP 复制文件,通常会以目标计算机上的所有用户都能够读取文件的方式创建它们。

    这也意味着在您的 Linux 机器上执行您的应用程序的服务可能已经被允许访问这些文件,因此能够通过 .NET 运行时执行它们(使用 dotnet 可执行文件)。

    如果您处于以下任何一种情况,您可能需要特别注意权限:

    • 您将应用程序发布为一个独立的应用程序,其中捆绑了运行时。在这种情况下,您的计算机上没有一个全局的dotnet 可执行文件来执行该应用程序,但其中会有一个可执行文件应用程序的分布式文件。您可能需要为此文件设置可执行权限标志,以允许您的服务用户运行您的应用程序。但是,当您尝试运行应用程序时,您会很快注意到这一点,因为它会立即失败。
    • 如果您的应用程序写入文件系统,例如保存用户的文件上传,或者如果您有基于文件的数据库(例如 SQLite),则服务用户将需要对所需文件夹或文件的写入权限访问。默认情况下不会设置这些写入标志,因此您需要在部署应用程序时自己手动执行此操作。这类问题在运行时会失败,所以如果你需要任何东西的写权限,你应该尽早验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-26
      • 2011-08-18
      • 2018-02-26
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 1970-01-01
      • 2011-01-19
      相关资源
      最近更新 更多