Как я могу запустить 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/).