
У меня есть список заданий в crontab для user1
, . Я хочу запретить запуск user2
заданий .user2
Я попробовал перечислить user2
в cron.deny
, но это только мешает ему получить доступ к его crontab
. Задания, перечисленные в user2
, crontab
все равно выполняются.
Как отключить задания cron для определенного пользователя?
решение1
Грубая сила!
crontab -u fred -e
%s/^/#/
:wq
Вероятно, есть более элегантный способ сделать это, но если вы не делаете это постоянно, воспользуйтесь имеющимся у вас молотком.
решение2
Самый простой способ отключить crontab для конкретного пользователя — найти егокронтаби переименуйте его. Страница руководства Debian дляхронговорит:
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.
Поэтому просто переименуйте файл во что-то, чего нет в пароле, обычно добавляя к нему суффикс вроде 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
решение3
Удалить /var/spool/cron/user1
или user2
? и вы также хотите добавить эти имена пользователей, /etc/cron.deny
в противном случае они могут добавить эти задания cron обратно
решение4
Если вы хотите заблокировать задание crontab для определенного пользователя, убедитесь, что вы вошли в систему как пользователь root, у которого есть доступ только к файлам crontab. 1. Затем перейдите в каталог /etc/cron.d, в этом каталоге вы увидите файл cron.deny, введите имя определенного пользователя, которого хотите заблокировать, с помощью редактора vi или другого.