Използвам Ubuntu сървър и имам cgi-bin скрипт, който прави следното. . .
#!/bin/bash
echo Content-type: text/plain
echo ""
cat /home/user/.program/logs/file.log | tail -400 | col -b > /tmp/o.txt
cat /tmp/o.txt
Сега, ако стартирам този скрипт с I am "su", скриптът запълва o.txt и след това host.com/cgi-bin/script се изпълнява, но се показва само до точката, в която последно съм го стартирал от CLI
Моят регистър за грешки на apache показва грешки „отказано разрешение“. Знам, че потребителят apache, под който работи, по някакъв начин не може да хване този файл. Опитах да използвам chown без резултат. Тъй като този файл е в потребителска директория, кой е най-добрият начин да го дублирате или да го свържете символно или какво?
Дори обмислях да стартирам скрипта като root в crontab, за да "актуализирам" файла в /tmp/, но това не работи за мен. Как някой с опит с cgi-bin ще се справи с достъпа до файл в потребителска директория?
tail -n 400 logfile | sudo -u www-data tee /var/www/tail.txt >/dev/null
веднъж на минута би премахнало необходимостта от CGI скрипт на първо място. - person tripleee   schedule 13.03.2014