Wie kann ich mehreren Benutzern in Debian Linux v8.4 den Zugriff auf dieselbe Crontab ermöglichen?

Wie kann ich mehreren Benutzern in Debian Linux v8.4 den Zugriff auf dieselbe Crontab ermöglichen?

Ich versuche, eine Crontab für eine Gruppe von Benutzern zu erstellen. Nennen wir die Gruppe „testGroup“. Es gibt 3 Benutzer und ich möchte allen Zugriff auf dieselbe Crontab gewähren. Ich habe ein wenig recherchiert und versucht, jeden einzelnen Benutzer zur Crontab-Gruppe in der Datei /etc/group hinzuzufügen. Dies hat jedoch nicht funktioniert, da es immer noch 3 separate Crontabs für jeden Benutzer gibt. Kann das behoben werden? Wenn ja, wie würde ich dabei vorgehen?

Danke

Antwort1

Hintergrund

Nein, crones funktioniert nicht so, wie Sie annehmen.

Der cronDaemon liest seine Crontabs von zwei Stellen:

  • Systemweit /etc/crontab;
  • Crontabs pro Benutzer.

Es gibt kein Konzept für Crontabs pro Benutzergruppe.

Lösung

Debian hat Anpassungen vorgenommen cron, die es Ihnen ermöglichen, relativ einfach das zu tun, was Sie brauchen. So zitieren Sie die cron(8)Handbuchseite:

Darüber hinaus liest in Debian crondie Dateien im /etc/cron.d Verzeichnis. cron behandelt die Dateien in /etc/cron.das auf die gleiche Weise wie die /etc/crontabDatei (sie folgen dem speziellen Format dieser Datei, d. h. sie enthalten das Benutzerfeld). Sie sind jedoch unabhängig von /etc/crontab: Sie erben beispielsweise keine Umgebungsvariableneinstellungen von . Diese Änderung ist spezifisch für Debian, siehe den Hinweis unterDEBIAN-SPEZIFISCHunten.

Daher würde ich folgendes tun:

  1. Erstellen Sie eine dedizierte Gruppe für Ihre Benutzergruppe. Nehmen wir an, es ist „mycrontab“.

  2. Fügen Sie Ihre drei Benutzer zu dieser Gruppe hinzu.

  3. Erstellen Sie eine Datei unter /etc/cron.dund legen Sie fest, dass ihr Eigentümer root:mycrontab oder deren Berechtigungsbits auf 0660oder gesetzt sind. Dies bedeutet, dass der Benutzer und die Gruppe rw-rw-r--Lese-/Schreibzugriff haben und alle anderen Lesezugriff haben.rootmycrontab

  4. Informieren Sie Ihre Benutzer darüber, wo diese Datei zu finden ist und welche Regeln für ihr Format gelten (diese können in Form von Kommentaren in die Datei eingefügt werden).

Beachten Sie, dass Sie möglicherweise herausfinden müssen, wie Sie das Senden von E-Mails an alle Ihre Benutzer handhaben. Ich würde prüfen, ob es in Ordnung ist, die von MAILTObefolgte Umgebungsvariable cronzuerst auf eine durch Kommas getrennte Liste von E-Mail-Adressen zu setzen (wie ), oder, falls das nicht möglich ist, müssten Sie wahrscheinlich entweder in Ihrem lokalen MTA oder dem MTA, der von auf Ihrem System generierte E-Mails empfängt, einen E-Mail-Alias ​​einrichten und den Wert dieses Alias ​​für die Variable verwenden .[email protected],[email protected],[email protected]cronMAILTO

Alles in allem sollten Sie die cron(8)Handbuchseiten crontab(5)zumindest flüchtig überfliegen.

…und bitte entfernen Sie Ihre Benutzer aus der crontabGruppe!

Antwort2

Ich verstehe nicht, warum die Lösung von @kostix es nicht zulässt, Code als Root auszuführen.

Sie erteilen Benutzern im Grunde Root-Crontab-Zugriff. Das ist sehr gefährlich.

Persönlich würde ich ein allgemeines Konto mit den gleichen Rechten wie die Benutzer erstellen und den Benutzern erlauben, sich per su bei diesem Benutzer anzumelden und dessen Crontab zu bearbeiten.

verwandte Informationen