Как запустить программу от имени другого пользователя?

Как запустить программу от имени другого пользователя?

У меня проблема с правами доступа в Ubuntu.

У меня есть пользовательприложениепользовательна моей системе он может запускать node, npm и т. д.

Но теперь мне нужно установить пакет net-tools

Вот этот:https://zoomadmin.com/HowToInstall/UbuntuPackage/net-tools

Проблема в том, что я устанавливаю его с помощью

sudo apt-get update -y

как пользователь root, так как у меня нет привилегий appuser.

А когда я пытаюсь запустить его как пользователь root, например, команда: arpона работает нормально.

Но когда я хочу запустить его как appuser, он не работает, даже если я добавляю appuser в sudoers.

При запуске arpот имени appuser я получаю:

bash: arp: command not found

решение1

Если вы установили net-tools(как root), вы сможете запустить его arpкак непривилегированный пользователь, указав абсолютный путь,например

/usr/sbin/arp

или гарантируя, что это будет в PATHинтересах пользователя;напримерв соответствующем файле инициализации ( .profileили эквивалентном для вашей оболочки/среды) добавьте строку, например:

PATH="$PATH:/usr/sbin"

решение2

  • Для установки всегда следует использовать apt-getroot. Это не означает, что только root может запускать установленные программы.
  • sudo apt-get update -yничего не устанавливает. Используйте sudo apt install net-toolsдля установки net-tools.
  • aprнаходится в /usr/sbinэтом каталоге, не в обычном пользовательском PATH. Вы можете добавить его в свой путь (изменить ~/.profile). или запустить его как /usr/sbin/arp.

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