Можно сделать это с sudo, не давая "корневые" полномочия апачу.
apache <hostname> = (root) NOPASSWD: /bin/date
Который на английском языке переводит примерно в:
Позвольте апачскому пользователю, выполненному
/bin/date
управляйте как пользователь root, не требуя пароля на сервере<hostname>
.
Используя sudo, (или выполнение эквивалента в любой модели RBAC) позволяет Вам выставлять только полномочия, Вы должны, определенным пользователям, выполнить Ваши цели.
Затем в PHP, просто передайте sudo в наряду с командой:
exec("sudo -su /bin/date <newdate>");
Кроме того, если это не работает на Вас, проверьте Ваш /etc/sudoers
файл для requiretty
:
Defaults requiretty
Необходимо будет прокомментировать это, чтобы sudo работал с апачем.
Ваш подход смотрит хорошо мне.
Раз так, как командная строка посмотрела бы?
Вы будете на самом деле подключены к своему пи после ssh -L
команда. Вы получите подсказку, которую Вы имеете на своем устройстве пи. Сохраните это соединение открытым для передачи всего трафика от localhost:5900
из Вашего устройства пи для портирования 22222 из устройства от того, где Вы - ssh'ing. Чтобы иметь несколько туннелей, я думаю, что Вам будет нужен новый localport. Так, может быть замена 22222 с 33 333.
Este es el comando que uso :ssh -L 5901 :127.0.0.1 :5901 -N -f -l servidor de nombre de usuario _ip _dirección
Tenga en cuenta que deberá agregar una fuente nat a iptables y también habilitar el reenvío de IP en el pi.