Как я могу запустить dotnet в Ubuntu без использования sudo?

Я пытался обновить разрешения, чтобы я мог запустить команду (особенно dotnet restore). Я не уверен, что эта проблема связана с запуском dotnetили если оно более общее.

Я могу запустить команду, используя sudo dotnet restoreОднако я хочу иметь возможность запустить эту команду без sudo, Это потому, что я хочу выполнить эти команды с помощью инструмента CI (Jenkins), и я не хочу, чтобы этот инструмент имел доступ к корневым командам., Пользователь Jenkins не может запустить dotnet restore (из-за ошибок ниже) или sudo dotnet restore (потому что у него нет корневого доступа).

Когда я бегу без 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, Тем не менее, это все еще требовало от меня sudo до dotnet restore чтобы получить правильный вывод.

1 ответ

Одна из возможностей заключается в использовании mono вместо dotnet, Это реализация.NET Framework с открытым исходным кодом, для запуска которой не требуется разрешение root. Он поддерживает почти все функции.NET 4.7 (исключения см. В https://www.mono-project.com/docs/about-mono/compatibility/).

Другие вопросы по тегам