
Wir haben einen News-Server auf einer CentOS 6.5-Box laufen. Es handelt sich um Leafnode, und alle zwei Minuten läuft ein Cron. Wir beschließen, ihn herunterzufahren, um andere Probleme zu beheben, und kommentieren daher die Zeile in der Crontab aus:
# */2 * * * * /usr/sbin/fetchnews
Aus irgendeinem Grund werden unsere Nachrichtenartikel jedoch immer noch aktualisiert. Daher beschließen wir, die Berechtigungen dieser Binärdatei zu ändern.
chmod 400 /usr/sbin/fetchnews
Dann begannen wir, alle zwei Minuten eine E-Mail zu erhalten: „/usr/sbin/fetchnews: Zugriff verweigert“.
Wir schauen in /etc/cron/hourly nach, eigentlich in allem, was mit crond in /etc zu tun hat. Es befindet sich nicht in der Crontab-Datei von root, es befindet sich nicht in der Crontab-Datei des News-Benutzers und es befindet sich auch nicht in der Crontab-Datei eines anderen Benutzers.
Wie kann ich herausfinden, warum diese Binärdatei ausgeführt wird?
Danke.
Antwort1
Versuchen grep -ri fetchnews /etc/cron* /var/spool/cron/tabs/*
.
Gibt es außer der von Ihnen auskommentierten Zeile noch weitere Ergebnisse?
Antwort2
watch "ps -ef | grep fetchnews"
zeigt Ihnen ps -ef | grep fetchnews
alle zwei Sekunden die Ausgabe von an. In der Ausgabe von ps -ef
ist die übergeordnete PID das dritte Feld, in diesem Fall 1458:
ulmi 1462 1458 0 18:20 pts/1 00:00:00 sh -c ps -ef | grep ls
Das ist der Job, der Ihre Fetchnews hervorgebracht hat, und er könnte Ihnen weiterhelfen.
(Meine Kristallkugel sagt mir, dass Sie vielleicht versucht haben, die Crontabs direkt zu bearbeiten? Nur durch Ausführen crontab -e
wird crond
die Anzeige der neuen Registerkarte garantiert.)
Antwort3
Vorausgesetzt, es gibt einen Benutzer, dem die News-Dateien gehören, gibt es wahrscheinlich einen Cron-Eintrag in der persönlichen Crontab dieses Benutzers, der dafür zuständig ist. Benutzer-Crons werden hier auf RHEL-Systemen verwaltet:
$ sudo ls -l /var/spool/cron/
total 4
-rw-------. 1 slm slm 9 Oct 6 13:30 slm
Wenn Sie dort Einträge sehen, können Sie sudo
folgendermaßen sehen, was in einer bestimmten Datei enthalten ist:
$ sudo crontab -u slm -l
### blah
Sie können die Einträge in dieser Datei einfach auskommentieren und so crontab
die Ausführung deaktivieren. Wenn Ihre Arbeit relativ kurz ist, können Sie den Cron-Dienst auch vorübergehend deaktivieren:
$ sudo service crond stop