Запуск экземпляра программы Screen без полномочий root

У меня есть выделенный сервер (Ubuntu 12.04, без графического интерфейса), настроенный для запуска экземпляра McMyAdmin и подключения его к экземпляру экрана каждый раз, когда я перезагружаю аппаратное обеспечение. У меня есть команда, сохраненная в crontab root как:

@reboot cd /var/MC_SVR && screen -dmS McMyAdmin ./MCMA2_Linux_x86_64

Проблема в том, что у меня есть пользователь, настроенный специально для доступа по FTP к файлам сервера, поэтому мне не всегда нужно подключаться по SSH к машине , Поскольку сервер запускается как корневой процесс, все файлы, которые он создает, очевидно, устанавливаются с владельцем root.

Итак, я выбрал все файлы и установил их на ftpuser. Теперь я застрял с попыткой запустить процесс как ftpuser. Я попытался сделать следующее, но безрезультатно:

cd /var/MC_SVR && su ftpuser - -c 'screen -dmS McMyAdmin ./MCMA2_Linux_x86_64'

Я пытаюсь сделать это в терминале и не получаю никаких ошибок или чего-либо (на самом деле я никогда ничего не получаю, если это не синтаксическая ошибка от su), но нет экземпляра экрана для доступа, поэтому я могу предположить, что сервер никогда не запускается.

Итак, что я делаю не так? Или я просто неправильно обращаюсь к экземпляру экрана, поскольку он (предполагается) должен быть запущен другим пользователем?

1
задан 4 June 2014 в 22:55

1 ответ

Одна из наиболее распространенных проблем с кроном - то, что он работает с минимальной оболочкой и минимальными переменными окружения. Из-за этого лучше всегда использовать полный путь для программ, двоичных файлов, освобождает, или файлы.

, Кроме того, хотя можно использовать su, sudo, IMO, лучший инструмент. Укажите пользователя с флагом-u.

Так, помещая его в целом,

sudo -u ftpuser "screen -dmS /var/MC_SVR/McMyAdmin /var/MC_SVR/MCMA2_Linux_x86_64"
0
ответ дан 4 June 2014 в 22:55

Другие вопросы по тегам:

Похожие вопросы: