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


17

Есть ли способ запустить приложение при запуске под определенной учетной записью пользователя?

Например, я хотел бы a_small_appзапустить под учетной записью пользователя bob(который находится в группе bobsgroup). Должен ли я что-то добавить к /etc/init.d?

Примечание. Я не хочу, чтобы приложение запускалось после входа пользователя в систему, а при запуске компьютера.


Вы хотите, чтобы приложение запускалось перед входом в окно входа?
Мартин Оуэнс -доктормо-

@ Мартин: Ну, это не имеет значения ... Я использую Apache в качестве примера здесь. Когда это начинается?
Натан Осман

Ответы:


13

Метод агностического запуска системы. Вы можете использовать это в /etc/rc.local, а /etc/init.d/...сценарий, файл конфигурации Upstart и , вероятно, Systemd конфигурацию тоже.

sudo -u oli /full/path/to/application

Эта команда будет выполняться от имени пользователя root и sudoперейдет к пользователю «oli». Очевидно, смените пользователя и команду для ваших целей.

Я должен добавить, что есть по крайней мере дюжина способов сделать это ... Но по моему опыту все они в значительной степени идентичны в действительности. Вот пример выскочки с использованием его setuidстрофы:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application

Предлагаю пример
вальтинатор

Я получаюsudo: unknown group: 1004
ThorSummoner

Кроме того, ткните : Время обновить строку о выскочке.
Муру

@ Муру, я буду. Но группа не требуется. sudo будет использовать группу по умолчанию для указанного пользователя.
Оли

Лучше отредактируйте это тогда. Эта команда ошибалась в течение трех лет, так как кто-то улучшил ее! : D
Муру

1

Похоже, что первый ответ больше не работает в Ubuntu 14.10.

Вот как я это делаю там (поместите в /etc/rc.local)

su <username> - -c "<command>"

Если вам нужен логин оболочки, то эквивалент sudo -i -u ....
Муру
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.