I've been trying to update the permissions so that I can run a command (specificially dotnet restore
). I'm not sure if this issue is specific to running dotnet
, or if it is more generic.
I can run the command using sudo dotnet restore
, however I want to be able to run this command without sudo
. This is because I want to execute these commands via a CI tool (Jenkins), and I don't want that tool to have access to root commands. . The Jenkins user is unable to run dotnet restore
(because of the errors below) or sudo dotnet restore
(because it doesn't have root access).
When I run without sudo
, I have the following errors from 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}]
I've been trying to update the read and write permissions for my user on the /usr/share/dotnet/sdk/2.1.104/NuGet.targets
file, and the {file_path_to_project.csproj}
directory, but so far I still get the same errors. Does it have something to do with the /obj
directory? – When I run ls
the obj
file is not shown.
How can I update the permissions so that I can access these files without running sudo
?
I created a /etc/sudoers.d/dotnet
file to see if it would enable dotnet
to be run without needing to call sudo
. I added the following contents: {myusername} {myhostname} = (root) NOPASSWD: /usr/bin/dotnet
. However, this still required me to run sudo
before dotnet restore
to get the correct output.
One possibility is to use
mono
instead ofdotnet
. It's an open source implementation of the .NET framework and doesn't require root permission to run. It supports almost all of the .NET 4.7 features (see https://www.mono-project.com/docs/about-mono/compatibility/ for exceptions).