Как выполнить программу с правами sudo, но без контекста root?

Как выполнить программу с правами sudo, но без контекста root?

Я хочу запустить IntelliJ IDEA с привилегированными правами. Это потому, что при запуске моего приложения в IDE оно запускает SFTP-сервер. Это работает только если у меня есть разрешение на это.

До сих пор подход заключался в запуске программы IntelliJ с помощью sudo. Неудобство здесь заключалось в том, что IntelliJ запускал совершенно новый контекст конфигурации, который теперь находится в каталоге root. Поэтому мне пришлось начать с пустой/новой пользовательской конфигурации IDE (ее можно легко изменить, но это не суть), а также мне пришлось снова ввести свой лицензионный код.

Есть ли способ просто выполнить программу, не действуя как root, но продолжая действовать как вошедший в систему пользователь?

решение1

Я бы не стал запускать IDE под root. Это навлечет массу проблем, если что-то пойдет не так.

Вместо этого предоставьте себе правильный доступ sudo и заключите элемент, требующий доступа root, в скрипт.

Например, чтобы запустить acme_sftp_server от имени root, создайте скрипт

#!/bin/bash
sudo acme_sftp_server

Затем предоставьте себе привилегии sudo для запуска acme_sftp_server через sudo без пароля.

Затем вызовите свой скрипт, а не сервер через IntelliJ

Связанный контент