Dies ist häufig in Produktionsumgebungen erforderlich, um die Nicht-Root-Benutzer daran zu hindern, Crontab-Einträge zu erstellen. Es gibt drei Möglichkeiten, dies zu erreichen:
1. Deaktivieren Sie Nicht-Root-Benutzer ssh zum System, dann kann Nicht-Root-Benutzer Shell überhaupt nicht verwenden. Weitere Informationen finden Sie in diesem Beitrag.
2. Benutzer zur Datei /etc/cron.deny hinzufügen , jeder Benutzer pro Zeile (Typische Methode, die nur Listenbenutzer betrifft):
# cat /etc/cron.deny johny
Hinweis: Stellen Sie sicher, dass es keinen Konflikt zwischen den Dateien /etc/cron.allow und /etc/cron.deny gibt.
Verifizieren Sie den abgelehnten Benutzer, indem Sie einen Crontab-Eintrag erstellen:
$ crontab -e You (johny) are not allowed to use this program (crontab) See crontab(1) for more information
3. Verwerfen Sie die Ausführungsberechtigung des crontab-Befehls (aggressiver Ansatz, der alle Nicht-Root-Benutzer betrifft):
Standardberechtigungen:
# ls -lrt /usr/bin/crontab -rwsr-xr-x 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Ändern Sie die Berechtigung (entfernen Sie das Setuid-Bit):
# chmod 700 /usr/bin/crontab # ls -lrt /usr/bin/crontab -rwx------ 1 root root 57552 Apr 21 2015 /usr/bin/crontab
Hinweis:Stellen Sie sicher, dass Sie eine Sicherungsdatei haben, bevor Sie die Dateiberechtigung ändern.
Nach dem Paket-Upgrade wird diese Änderung auf die Standardeinstellung zurückgesetzt.
Standardberechtigung:
# 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: -
Verifizieren Sie den abgelehnten Benutzer, indem Sie einen Crontab-Eintrag erstellen:
$ crontab -e bash: /usr/bin/crontab: Permission denied