Опція "--up" у OpenVPN зазвичай використовується для маршрутизації тощо. Отже, вона обробляється до того, як OpenVPN скасує привілеї root для запуску як ніхто. Однак я посилаюся на сценарії оболонки, які потрібно запускати як непривілейований користувач.
Як це зробити? Я вивчив привілеї Drop Process , особливо відповіді поліномів та Тайлера, але не розумію, як це реалізувати. Я працюю в Centos 6.5, і suid заблокований, і як "chmod u + s", і як "setuid ()".
Існує плагін OpenVPN ("openvpn-down-root.so"), який дає змогу запускати сценарії, викликані параметром "--down", скриптом. Можливо, існує еквівалент, наприклад, "openvpn-up-user.so", але я не знайшов його.
Правка0
За відповіддю Нікола Котура, я встановив пробіг Іана Мейєра . Хоча команда chpst працює в терміналі, в сценарії up вона не вдається з "командою не знайдено". Що працює "sudo chpst" плюс налаштування належного дисплея та мови. Будь ласка, див. Чому мій термінал не виводить символів unicode належним чином? Враховуючи це, сценарію вгору потрібні наступні чотири рядки:
LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo chpst -u user -U user /home/user/unprivileged.sh &
Правка1
За коментарем 0xC0000022L я вважаю, що "sudo -u користувач" працює так само, як "sudo chpst -u user -U user":
LANG="en_US.UTF-8"; export LANG
GDM_LANG="en_US.UTF-8"; export GDM_LANG
DISPLAY=:0; export DISPLAY
sudo -u user /home/user/unprivileged.sh &
Я буду вивчати людину-судори та оновлювати, якщо / коли я змушу себе працювати на самоті.