Возможно ли, чтобы root выполнил команду как non-root?

Я являюсь пользователем root, и предположим, что хочу запускать любое приложение в качестве другого пользователя. Возможно ли это, без переключения на другого пользователя?

Что-то вроде

# google-chrome user=abc 

Я фактически выполняю программу CLI как пользователь без полномочий root. Я установил липкий бит, и я использую setuid, поэтому программа работает с привилегиями root. Теперь я использую system() в программе для вызова GUI-приложения. Но я не хочу запускать его как root, поэтому я хочу временно отказаться от привилегий root только для этого вызова.

Портативным решением будет:

 su abc -c google-chrome 

Однако, поскольку google-chrome требует доступа X11, это, скорее всего, не удастся, если вы не забеременеете его, что будет очень плохой идеей, особенно при работе от root.

Если X11-туннелирование / переадресация разрешены, лучшим способом будет

 ssh -X [email protected] google-chrome 

или

 ssh -Y [email protected] google-chrome 

Короткий ответ: «Да, это возможно».

Если вы хотите выполнить не-X-приложение, просто используйте следующую команду:

Команда sudo -u abc

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

  • Создайте папку bin в вашем домашнем каталоге:

Mkdir -p ~ / bin

И используя ваш любимый текстовый редактор, создайте файл ~/bin/xsudo следующим образом:

 #!/bin/bash # (C) serge 2012 # The script is licensed to all users of StackExchange family free of charge # Fixes/Enhancements to the script are greatly appreciated. # # SUDO_ASKPASS has to be set to the path of ssh-askpass # fix the following two lines if your distribution does not match this autodetection . /etc/profile.d/gnome-ssh-askpass.sh export SUDO_ASKPASS="${SSH_ASKPASS}" SUDOUSERNAME="$1" shift xauth nlist "${DISPLAY}"|sudo -HA -u $SUDOUSERNAME env --unset=XAUTHORITY \ bash -c "xauth nmerge - ; $*" 

Затем сделайте его выполнимым:

Chmod + x ~ / bin / xsudo

И использовать его так же, как sudo но без каких-либо переключателей:

Пользовательское приложение xsudo

Наслаждаться.

PS Запуск xsession из учетной записи root сильно не рекомендуется!

Существует способ запуска хрома при входе в систему для пользователя root. Если вы откроете его в обычном режиме, это даст вам ошибку, например, «chromium не может быть запущен как root».

Чтобы запустить его без ошибки, щелкните правой кнопкой мыши на рабочем столе, создайте новую chromium-browser --user-data-dir запуска с помощью команды: chromium-browser --user-data-dir . Вы можете назвать его тем, что хотите, сохраните его, когда вы его откроете, он предоставит вам браузер хрома. (Работает в Ubuntu 10.04.4 LTS)

Давайте будем гением компьютера.