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

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

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

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

当我跑步时没有 sudo,我收到以下错误dotnet restore

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

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

我如何更新权限以便无需运行即可访问这些文件sudo

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

答案1

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

相关内容