4

У меня есть список заданий в crontabs для user1 , user2 . Я хочу, чтобы задания user2 запускались.

Я попытался перечислить user2 в cron.deny , но это только мешает ему получить доступ к его crontab . Задания, перечисленные в user2 crontab , все еще выполняются.

Как отключить задания cron для конкретного пользователя?

5 ответов5

5

Грубая сила!

crontab -u fred -e
%s/^/#/
:wq

Вероятно, есть более элегантный способ сделать это, но если вы не делаете это постоянно, используйте молоток, который у вас есть.

2

Самый простой способ отключить crontab для конкретного пользователя - это найти ее crontab и переименовать. Справочная страница Debian для cron говорит:

cron searches its spool  area  (/var/spool/cron/crontabs)  for  crontab
files  (which  are named after accounts in /etc/passwd); crontabs found
are loaded into memory.

Так что просто переименуйте файл во что-то, чего нет в passwd, обычно с помощью суффикса, например disabled , offline , dead или аналогичный.

mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled

В Debian (и связанных системах, таких как Ubuntu) это создает следующую запись в /var/log/syslog:

(user2.disabled) ORPHAN (no passwd entry)

Не забудьте также добавить user2 в файл /etc/cron.deny , иначе пользователь сможет создать новый crontab для себя.

Повторно включите crontab пользователя, удалив запись из /etc/cron.deny и переименовав ее crontab:

mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2
0

crontab -r username работает в Solaris для удаления crontab для данного имени пользователя.

Если -r не работает для вас, попробуйте:

su username 'sh -c "crontab /dev/null"'

Быстрее печатать и легче писать, чем crontab -e .

0

Удалить /var/spool/cron/user1 или user2 ? и вы также хотите добавить эти имена пользователей в /etc/cron.deny противном случае они могут добавить эти задания cron обратно

0

Если вы хотите заблокировать задание crontab для определенного пользователя, убедитесь, что вы вошли в систему как пользователь root, пользователь root имеет доступ только к файлам crontab. 1.Затем перейдите в каталог /etc/cron.d в этом каталоге, где вы можете увидеть этот файл cron.deny, введите имя конкретного пользователя, которое пользователь хочет заблокировать, с помощью редактора vi или другого.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .