LINUX.ORG.RU

История изменений

Исправление Psych218, (текущая версия) :

Ну вот если надо, чтобы данные из файла уже записывались от юзера dima, можно использовать tee (запущенный от нужного пользователя). Ну или tee -a, если надо чтобы дописывалось, а не переписывалось. От кого запущены предыдущие команды перед пайпом в данном случае значения не имеет. Почему tee, а не >> — да потому что >> не команда, и её через sudo запустить не выйдет, запись будет производиться под тем пользователем, от которого запущен шелл.

То есть если у тебя php должен запускатья от рута, и запускаешь вообще всю эту строку ты от рута, то:

php /var/www/update.php | sudo -u dima tee -a /var/www/logs/update.log

Если php должен запускатья от dima (а команду изначально ты запускаешь от рута, то либо:

sudo -u dima php /var/www/update.php | sudo -u dima tee -a /var/www/logs/update.log
либо в скрипт, и скрипт запускать через sudo -u dima

Ну или несколько извращённый вариант

sudo -u dima bash -c 'php /var/www/update.php >> /var/www/logs/update.log'

Исправление Psych218, :

Ну вот если надо, чтобы данные из файла уже записывались от юзера dima, можно использовать tee (запущенный от нужного пользователя). Ну или tee -a, если надо чтобы дописывалось, а не переписывалось. От кого запущены предыдущие команды перед пайпом в данном случае значения не имеет. Почему tee, а не >> — да потому что >> не команда, и её через sudo запустить не выйдет, запись будет производиться под тем пользователем, от которого запущен шелл.

То есть если у тебя php должен запускатья от рута, и запускаешь вообще всю эту строку ты от рута, то:

php /var/www/update.php | sudo -u dima tee -a /var/www/logs/update.log

Если php должен запускатья от dima (а команду изначально ты запускаешь от рута, то либо:

sudo -u dima php /var/www/update.php | sudo -u dima tee -a /var/www/logs/update.log
либо в скрипт, и скрипт запускать через sudo -u dima

Исправление Psych218, :

Ну вот если надо, чтобы данные из файла уже записывались от юзера dima, можно использовать tee (запущенный от нужного пользователя). Ну или tee -a, если надо чтобы дописывалось, а не переписывалось. От кого запущены предыдущие команды перед пайпом в данном случае значения не имеет. Почему tee, а не >> — да потому что >> не команда, и её через sudo запустить не выйдет, запись будет производиться под тем пользователем, от которого запущен шелл.

Исходная версия Psych218, :

Ну вот если надо, чтобы данные из файла уже записывались от юзера dima, можно использовать tee. Ну или tee -a, если надо чтобы дописывалось, а не переписывалось. От кого запущены предыдущие команды перед пайпом в данном случае значения не имеет.