Der Benutzer x kann dieses Programm nicht verwenden (crontab)

9

Ubuntu 14.04

Ich verstehe das Verhalten beim Einrichten von crontab für ein Dienstkonto (ohne Anmeldung) (benannt curator) nicht.

Wenn ich als root angemeldet bin, bekomme ich Folgendes:

# crontab -u curator -l
The user curator cannot use this program (crontab)

Wenn ich jedoch zum Benutzerkonto wechsle, funktioniert dies einwandfrei:

# su -s /bin/bash curator
curator@host$ crontab -l
no crontab for curator

Es gibt eine leere /etc/cron.allowDatei und keine /etc/cron.denyDatei im System. Nach man crontab:

Wenn die Datei /etc/cron.allow vorhanden ist, müssen Sie darin aufgeführt sein (ein Benutzer pro Zeile), um diesen Befehl verwenden zu können. Wenn die Datei /etc/cron.allow nicht vorhanden ist, die Datei /etc/cron.deny jedoch vorhanden ist, dürfen Sie nicht in der Datei /etc/cron.deny aufgeführt sein, um diesen Befehl verwenden zu können.

Ich verstehe den Fehler, wenn ich den ersten Befehl ausführe, aber warum kann ich ihn ausführen, crontabwenn ich explizit zum Benutzerkonto wechsle?

Durch Hinzufügen des Benutzers zu /etc/cron.allowfunktionieren beide Befehle einwandfrei.

Adam Michalik
quelle
1
Es heißt nur, dass es keine Crontab gibt. Was passiert, wenn Sie versuchen, eine über crontab -e(als Benutzerkurator) zu erstellen ?
Fiximan
1
Dieses Problem kann auf dem Vagrant Trusty64-Image nicht reproduziert werden. Bei einer leeren cron.allowDatei führt sowohl das root crontab -u vagrant -lals auch crontab -lals vagrantErgebnis zu einer are not allowed to use this programNachricht (die sich von der von Ihnen zitierten Nachricht unterscheidet).
Thrig

Antworten:

11

Ich habe die Crontab-Quellen überprüft und festgestellt, dass Crontab glaubt, dass der Benutzer sie verwenden darf (wenn sie nicht vorhanden ist) , wenn der Benutzer sie nicht öffnen kann /etc/cron.allow(z. B. danach ).chmod 0 /etc/cron.allowcron.allow

Root kann jedoch jede Datei lesen, sodass der Crontab-Überprüfungscode wie erwartet funktioniert. Daher empfehle ich Ihnen, die ersten Berechtigungen /etc/cron.allowund möglicherweise die SELinux / AppArmor-Überwachungsprotokolle zu überprüfen.

Michael Zarubin
quelle
Dies scheint es zu sein - ich habe überprüft, dass chmod -r /etc/cron.allowtatsächlich das beschriebene Verhalten auf meinem Ubuntu 14.04-System verursacht
Steeldriver
Genau richtig! Meine /etc/cron.allowBerechtigungen waren 600, nachdem ich es in 644beide geändert rootund curatordie not allowed to use this program (crontab)Nachricht gesehen hatte. Dann, nach dem Hinzufügen curatorzu /etc/cron.allowbeiden, könnte die Crontab des Kurators verwendet werden.
Adam Michalik