Run command as not-root

Hi everyone

At work, I have to run a command in an AWS instance. In that particular instance only exists the root user. The command should not be executed with root privileges (it executes mpirun, which is not recommended to run as sudo or the machine might break), so I was wondering if there is a way to block or disable the sudo privileges while the command is running. As mentioned, the only user existing there is root, so I suppose “sudo -u” is not an option.

Does anyone know how to do it? Thanks in advance!

@linux

  • Rustmilian
    link
    fedilink
    7
    edit-2
    8 months ago

    You can run commands as the new user from the root account.
    su -c 'command' username
    Enter the password for the new user when prompted.
    This way at least the main account is still root and the command is being run without root privileges on the new users account.

    • Nicolas RojasOP
      link
      fedilink
      08 months ago

      @Rustmilian yeah, already tried it. The problem is that all of the apps in the instance are only installed for the root user (e.g. python and all it’s libraries. So, when I use su -c all I get is a lot of command not found messages that would take a lot to solve. Besides I expect a lot more problems when the command needs access to some files and some processes (like a sql database) that would require me to do a lot of stuff to grant permissions to the new user. That would eventually work but given the work it requires I thought that some kind of “anti sudo” command or something like that could exist so I can still be the root user but pretend I am not a superadmin

      • Rustmilian
        link
        fedilink
        1
        edit-2
        8 months ago

        There’s a source that says something about using the AWS Systems Manager Session Manager by ““Configuring the necessary IAM permissions for your user or role to access the instance using Session Manager 1
        Open the AWS Systems Manager console, navigate to the “Session Manager” page, and select the instance you want to access
        Click on the “Start session” button to initiate the session with the instance.
        Once the session is established, you can run commands as the root user without the need for sudo””
        I’m unsure if this achieves exactly what you need though.