Spesso questo è un requisito negli ambienti di produzione per disabilitare gli utenti non root per creare qualsiasi voce crontab. Ci sono tre modi per raggiungere questo obiettivo:
1. Disabilitare l'utente non root ssh sul sistema, quindi l'utente non root non è affatto in grado di utilizzare la shell. Fare riferimento a questo post per la procedura.
2. Aggiungi l'utente al file /etc/cron.deny , ogni utente per riga (Metodo tipico che interessa solo gli utenti dell'elenco):
# cat /etc/cron.deny johny
Nota: Assicurati che non ci siano conflitti tra il file /etc/cron.allow e /etc/cron.deny.
Verifica utente negato con la creazione di una voce crontab:
$ crontab -e You (johny) are not allowed to use this program (crontab) See crontab(1) for more information
3. Deprecate l'autorizzazione di esecuzione del comando crontab (approccio aggressivo che colpisce tutti gli utenti non root):
Autorizzazioni predefinite:
# ls -lrt /usr/bin/crontab -rwsr-xr-x 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Cambia il permesso (rimuovi il bit setuid) :
# chmod 700 /usr/bin/crontab # ls -lrt /usr/bin/crontab -rwx------ 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Nota:assicurati di disporre del file di backup prima di modificarne l'autorizzazione.
Dopo l'aggiornamento del pacchetto, questa modifica verrà ripristinata ai valori predefiniti.
Autorizzazione predefinita:
# stat /usr/bin/crontab File: ‘/usr/bin/crontab’ Size: 57552 Blocks: 120 IO Block: 4096 regular file Device: fd00h/64768d Inode: 10751442 Links: 1 Access: (4755/-rwsr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-08-12 17:03:10.112443944 +0530 Modify: 2015-04-21 19:38:05.000000000 +0530 Change: 2016-03-14 14:03:30.347276747 +0530 Birth: -
Verifica utente negato con la creazione di una voce crontab:
$ crontab -e bash: /usr/bin/crontab: Permission denied