Запуск TMUX из. sh с использованием PHP - Shell_exe c () - Неправильная учетная запись пользователя? - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь запустить команду. sh файл, который содержит некоторые простые данные (пока, пока я не выясню основы). Ниже скриншот того, что у меня есть.

В основном я хочу запустить скрипт PHP, который вызовет скрипт command.sh, чтобы запустить новый экземпляр TMUX и запустить в нем скрипт python. Есть второй command2.sh скрипт, который просто показывает, какие сеансы TMUX запущены.

Work Flow

Вот код в файлах:

тест. php

<?php

$output = shell_exec("sudo -S -u root ./command.sh 2>&1");
$output2 = shell_exec("sudo -S -u root ./command2.sh 2>&1");

echo "<br>User:".get_current_user()."<br>";

$processUser = posix_getpwuid(posix_geteuid());
echo "<br>Username: ".$processUser['name'];

$groupInfo = posix_getgrgid(posix_getgid());
$group = $group;

echo "<br>Group: ".$processUser['name'];

echo "<br>Done:".$output."<br>";

echo "<br>Running:".$output2."<br>";

?>

команда. sh

tmux new -s Test1 -d 2>&1 \; send-keys "python3 test.py" Enter 

Вызов кода работает, и вы можете увидеть, что сеансы созданы (вывод из моего PHP файла). Вы можете видеть, что я запустил код дважды и, следовательно, сгенерировал «дублирующую сессию»

command2. sh

tmux ls 2>&1

test.py

print("Hello World!")

Выход:

enter image description here

Проблема

Проблема в том, что я не могу просмотреть этот сеанс в PuTTy или любой другой консоли. Когда я запускаю tmux ls при входе в систему как root, я получаю следующее:

enter image description here

Итак, из вывода PHP выше я вижу, что .sh работает успешно, но мне нужно иметь возможность войти в PuTTy для доступа к этим сеансам.

Я думаю, что это так, как сценарии выполняются от имени пользователя "www-data", но я не уверен, как это изменить.

Как вы можете видеть в коде test.php, я использую команду sudo, чтобы заставить пользователя, но это, похоже, не работает - мне также нужно убедиться, что сайт безопасен .

Я пытался понять это в течение нескольких дней! Любой совет будет очень признателен!

Спасибо Крис

...