Рейтинг:0

cron/php как запустить команду от имени пользователя без полномочий root

флаг in

Мне нужно запустить команду (только одну команду) от имени пользователя без полномочий root из cron.

Пробовали две версии, и обе не работают;

Крон:

* * * * * php-скрипт.php

скрипт.php:

exec("ктоами"); // возвращает 'корень'
// версия 1
exec("runuser -u www-data -- ls"); // ошибка -> sh:1: runuser: не найдено
// версия 2
exec("su www-data -c 'ls'"); // ошибка -> Эта учетная запись в настоящее время недоступна.
Рейтинг:1
флаг jp

Не используйте корень кронтаб. Используйте кронтаб для www-данные пользователь:

crontab -e -u www-данные

или используйте системный crontab в /etc/cron.d/ и указать пользователя www-данные.

* * * * * www-данные php script.php
holden321 avatar
флаг in
Мне нужно запустить как root. Мне нужно запустить только одну команду без полномочий root, потому что это программа, которая не работает под root. ls-команда просто для примера.
флаг jp
В вашем вопросе говорится следующее: «Мне нужно запустить команду (только одну команду) от имени пользователя без полномочий root из cron».
флаг in
Запустите скрипт без полномочий root и выполните команды, требующие root, через sudo. Все остальное — потенциальная угроза безопасности.
Phill  W. avatar
флаг cn
@ Holden321: У вас может быть crontab для каждого пользователя на вашем компьютере, и каждый crontab будет работать независимо друг от друга. Цель cron — периодически запускать процессы. Между отдельными записями crontab нет «зависимостей» или «последовательности» - они просто вызываются, когда критерии времени говорят об этом - нет / нет причин / запускать процессы под другими учетными записями.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.