如何在不使用 sudo 的情况下在 ubuntu 上运行 dotnet?

fuz*_*zzi 5 permissions command-line sudo dotnet

我一直在尝试更新权限,以便我可以运行命令(特别是dotnet restore)。我不确定这个问题是否特定于 running dotnet,或者是否更通用。

\n\n

我可以使用 运行该命令sudo dotnet restore,但是我希望能够在不使用 的情况下运行该命令sudo。这是因为我想通过 CI 工具 (Jenkins) 执行这些命令,并且我不希望该工具有权访问 root 命令。。Jenkins 用户无法运行dotnet restore(由于以下错误)或sudo dotnet restore(因为它没有 root 访问权限)。

\n\n

当我在没有 的情况下 sudo运行时,出现以下错误dotnet restore

\n\n
/usr/share/dotnet/sdk/2.1.104/NuGet.targets(104,5): error : Access to the path '/{file_path_to_project.csproj}/obj' is denied. \n[{file_path_to_project.csproj}]\n/usr/share/dotnet/sdk/2.1.104/NuGet.targets(104,5): error :   Permission denied [{file_path_to_project.csproj}]\n
Run Code Online (Sandbox Code Playgroud)\n\n

我一直在尝试更新用户对文件/usr/share/dotnet/sdk/2.1.104/NuGet.targets{file_path_to_project.csproj}目录的读写权限,但到目前为止我仍然遇到相同的错误。和目录有关系吗/obj?\xe2\x80\x93 当我运行时,lsobj文件未显示。

\n\n

如何更新权限以便我可以在不运行的情况下访问这些文件sudo

\n\n

我创建了一个/etc/sudoers.d/dotnet文件来查看它是否可以dotnet在不需要调用的情况下运行sudo。我添加了以下内容: {myusername} {myhostname} = (root) NOPASSWD: /usr/bin/dotnetsudo然而,这仍然需要我之前运行dotnet restore以获得正确的输出。

\n

小智 0

一种可能性是使用mono代替dotnet. 它是 .NET 框架的开源实现,不需要 root 权限即可运行。它支持几乎所有 .NET 4.7 功能(有关例外情况,请参阅https://www.mono-project.com/docs/about-mono/compatibility/)。