Puncte:0

cron/php cum se rulează comanda ca utilizator non-root

drapel in

Trebuie să rulez comanda (doar o comandă) ca utilizator non-root din cron.

Am încercat două versiuni și ambele eșuează;

Cron:

* * * * * php script.php

script.php:

exec("whoami"); // returnează „rădăcină”
// versiunea 1
exec("runuser -u www-data -- ls"); // eroare -> sh: 1: runuser: nu a fost găsit
// versiunea 2
exec("su www-data -c 'ls'"); // eroare -> Acest cont nu este disponibil momentan.
Puncte:1
drapel jp

Nu folosi rădăcină crontab. Utilizați crontab pentru www-data utilizator:

crontab -e -u www-data

sau utilizați un sistem crontab în /etc/cron.d/ și specificați utilizatorul www-data.

* * * * * www-data php script.php
holden321 avatar
drapel in
Trebuie să rulez ca root. Trebuie să rulez o singură comandă ca non-root, deoarece este un program de execuție care nu funcționează sub root. ls-command este doar de exemplu.
drapel jp
Întrebarea dvs. spune următorul „Trebuie să rulez comanda (doar o comandă) ca utilizator non-root din cron”.
drapel in
Rulați scriptul ca non-root și executați comenzile care necesită root prin sudo. Orice altceva este un potențial risc de securitate.
Phill  W. avatar
drapel cn
@holden321: Puteți avea un crontab pentru fiecare utilizator de pe mașina dvs. și fiecare crontab va funcționa independent de oricare altul. Scopul cron este de a începe procesele periodic. Nu există „dependențe” sau „secvențiere” între intrările crontab individuale - ele sunt pur și simplu invocate atunci când criteriile de sincronizare îi spun să facă acest lucru - nu există /nu există niciun motiv/ pentru a începe procesele în alte conturi.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.