2010-08-02 11:50:25 +0000 2010-08-02 11:50:25 +0000
68
68

Как запустить работу cron в качестве конкретного пользователя?

Я бы хотел запустить работу Крона в качестве конкретного пользователя на моей машине. Как я могу указать пользователя, чтобы задание cron выполнялось от имени?

Задания cron будут выполняться на сервере (запущенном на Ubuntu 10.0.4). Пользователи" - это пользователи, которые были созданы специально для выполнения определенных задач на стороне сервера. Эти “пользователи” имеют следующее общее:

  • Не могут войти в систему
  • Имеют ограниченный доступ к определенным папкам/файлам.

Ответы (4)

80
80
80
2010-08-02 11:52:46 +0000

Предполагая, что вы не можете просто войти в систему и добавить его в кронтаб этого пользователя, поместите файл в /etc/cron.d. Он должен быть отформатирован как обычный кронтаб, но с дополнительным полем. Перед командой запуска и после тайминга поместите пользователя. Вы должны быть в состоянии найти примеры уже на вашей системе.

Пример:

#<timing> <user> <command>
11 * * * * root /usr/lib/command
41
41
41
2010-08-02 11:58:55 +0000

В качестве корня, для редактирования cron user1:

crontab -u user1 -e

Вы также можете запустить вашу команду:

su user1 -c foo bar

Но часто сами сценарии при запуске с правами суперпользователя уменьшают собственный доступ.

1
1
1
2013-04-27 16:49:38 +0000

Я искал это пару недель, и это наконец-то сработало…

Создайте свой скрипт как user1

ssh user1@ipaddress
nano hourly-event.sh

введите некоторую команду

сделайте его исполняемым

редактируйте кронтаб для user1

#!/bin/bash
echo "YAY it works" > /home/user1/yay.txt

поместите строку внизу, указывающую на ваш скрипт(ы)

chmod 755 hourly-event.sh

выход - сохранение изменений (при сохранении будет показан каталог /tmp. … это нормально)

ждите поворота минуты

откройте ваше новое созданное yay.txt

sudo crontab -u user1 -e

теперь у вас должно быть открыто наноокно с надписью “YAY it works” в качестве первой и единственной строки, если в нижней части вашего наноокна написано “New File”… ну… я не знаю

вы также можете проверить вашу новую запись в crontab для user1 at: /var/spool/cron/crontabs/user1

PEACE

0
0
0
2018-11-18 10:05:38 +0000

Иногда вы можете захотеть, чтобы пользователь загрузил свое окружение, особенно при использовании “rbenv”, “nvm”, просто так :

0 0 * * * source ~/.bash_profile && cd /opt/app/current && bundle exec ruby ...

(здесь команда source ~/.bash_profile загрузит вам окружение Ruby или Node.

Похожие вопросы

8
5
11
12
2