как запустить задание cron от имени пользователя?

<p>я хотел бы запустить задание cron в качестве конкретного пользователя на моей машине. как я могу указать пользователя для задания cron для запуска?.</p><p>задания cron будут выполняться на сервере (на ubuntu 10.0.4). «пользователи» - это пользователи, которые были созданы специально для выполнения определенных задач на стороне сервера. эти «пользователи» имеют следующие общие черты:</p><ul> <li>невозможно войти в систему</li> <li>ограниченный доступ к определенным папкам/файлам</li> </ul>

<p>предполагая, что вы не можете просто войти и добавить его в crontab этого пользователя, поместите файл в <code>/etc/cron.d</code>. он должен быть отформатирован как обычный cronjob, но с дополнительным полем. перед выполнением команды и по истечении времени поставьте пользователя. вы должны быть в состоянии найти примеры уже в вашей системе.</p><p><strong> пример: </strong></p><pre><code>#<timing> <user> <command> 11 * * * * root /usr/lib/command </code></pre>

<p>от имени пользователя root отредактируйте cron пользователя user1:</p><pre><code>crontab -u user1 -e </code></pre><p>вы также можете начать свою команду с:</p><pre><code>su user1 -c foo bar </code></pre><p>но часто сценарии сами уменьшают свой доступ при запуске от имени пользователя root.</p>

<p>я искал это в течение пары недель, и это, наконец, сработало ...</p><p>создайте свой скрипт как user1</p><pre><code>ssh user1@ipaddress nano hourly-event.sh </code></pre><p>введите некоторую команду</p><pre><code>#!/bin/bash echo "yay it works" > /home/user1/yay.txt </code></pre><p>сделать его исполняемым</p><pre><code>chmod 755 hourly-event.sh </code></pre><p>отредактируйте crontab для user1</p><pre><code>sudo crontab -u user1 -e </code></pre><p>поместите строку внизу, указывая на ваш сценарий (ы)</p><pre><code># m h dom mon dow command * * * * * bash ./hourly-event.sh </code></pre><p>выход - сохранение изменений (при сохранении будет отображаться каталог/tmp ... все в порядке)</p><p>подождите минуты</p><p>откройте ваш вновь созданный yay.txt</p><pre><code>nano /home/user1/yay.txt </code></pre><p>теперь у вас должно быть открытое окно nano с надписью «yay it работает» в качестве первой и единственной строки, если в нижней части окна nano указано «новый файл ... ну .. я не знаю»</p><p>вы также можете проверить новую запись в crontab для user1 по адресу:/var/spool/cron/crontabs/user1</p><p>peace</p>

<p>иногда вы можете захотеть, чтобы пользователь загрузил свою среду, особенно при использовании «rbenv», «nvm», вот так:</p><pre><code>0 0 * * * source ~/.bash\_profile && cd /opt/app/current && bundle exec ruby ... </code></pre><p>(здесь команда <code>source ~/.bash\_profile</code> загрузит вам среду ruby или node.</p>