SLES 9 crontab uitdaging

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Broken
  • Registratie: Maart 2004
  • Laatst online: 26-09 14:42
Wat heb ik?
Een SLES 9 geconfigureerd met EAL4+ pack

Wat is het probleem dan?
Het is mij opgevallen dat de cron jobs helemaal niet draaien. Geeft wat vervelende problemen met de onder ander de logrotate en wat daily root scripts.

Voor de logrotate is het is verwacht dat deze iedere dag draait omdat er een script voor staat in de folder:
/etc/cron.daily

Het root script is misschien nog wel belangrijker omdat het gaat om een dagelijkse virusscan, deze is in de crontab gezet als de user root:
00 01 * * * /root/bin/virus-scan.sh

Dit script draait zonder problemen mits het met de hand word gestart.

Leuk, maar wat heb je geprobeerd??
Aangezien het me opviel dat cron helemaal niks doet ben ik gewoon begonnen met de basics:
  • /etc/init.d/cron status (running)
  • chkconfig --list | grep cron (0:off 1:off 2:on 3:on 4:off 5:on 6:off)
  • manueel het logrotate script draaien (de log files worden correct gearchiveerd)
  • de file /etc/crontab bevalt de PATH variable
Aangezien dit weinig opleverde ben ik begonnen met een simpele test:

Bash: /root/bin/foo
1
2
#!/bin/sh
date > /tmp/this

Een snelle chmod +x (als root) en een initiële test gaf aan dat de datum daadwerkelijke wordt opgeslagen.
Na het toevoegen aan de crontab (crontab -e als root) en wat wachten kan ik de conclusie trekken dat deze niet wordt uitgevoerd.
Als ik een 'ls -lut' op het script en de result file doe zie ik gewoon nog de oude timestamp dus er is nog eens een poging gedaan.

Wat ik wel vind zijn de volgende regels in de /var/log/messages op de tijden dat ik zou verwachten dat het script draait:

Bash: messages
1
2
3
4
{TIMESTAMP} {HOSTNAME} /usr/sbin/cron[2459]: pam_unix2(crond:session) session started for user root, service crond
{TIMESTAMP} {HOSTNAME} /usr/sbin/cron[2459]: Cannot make/remove an entry for the specified session
{TIMESTAMP} {HOSTNAME} kernel: audit(TIMESTAMP) user pid=4569 uid=0 auid=* msg='PAM: accounting acct=root : exe="/usr/sbin/cron" (hostname=7, addr=7, terminal=cron, res=success)'
{TIMESTAMP} {HOSTNAME} kernel: audit(TIMESTAMP) user pid=4569 uid=0 auid=* msg='PAM: session open acct=root : exe="/usr/sbin/cron" (hostname=7, addr=7, terminal=cron, res=failed)'


Wat is dan je uitdaging?
Nou, eigenlijk vrij simpel. Eerst snappen waarom het niet werkt en dan werkend krijgen :)

Ik hoop dat bovenstaande informatie duidelijk is, indien dit niet het geval is geef het even aan.

01101000 01100101 01101100 01110000


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 02-10 22:42

CAPSLOCK2000

zie teletekst pagina 888

Kun je de inhoud van /etc/pam.d/cron (of misschien crond) posten?
Je zou eens kunnen proberen of selinux uitschakelen helpt, al verwacht ik het hier eigenlijk niet.
De tekst "Cannot make/remove an entry for the specified session" geeft veel interessante suggesties op Google.


PS. Mooie post :)

This post is warranted for the full amount you paid me for it.


Acties:
  • 0 Henk 'm!

  • Broken
  • Registratie: Maart 2004
  • Laatst online: 26-09 14:42
Ondertussen is het me "iets" duidelijker geworden, het lijkt er op dat de pam_unix2 er geen zin in heeft. Zo ver ik de inhoud van /etc/pam.d/crond kan begrijpen staat deze goed ingesteld:

Bash: crond
1
2
3
4
5
6
auth sufficient pam_rootok.so
auth include common-auth
account include common-account
password include common-password
session include common-session
session required pam_loginuid.so require_auditd


Wat ik ook nog in de tussen tijd heb gedaan is gekeken naar een soort gelijk systeem (let op!, dus niet 100% hetzelfde. Het is een variant op), bij dit systeem heb ik gekeken naar de crond pam.d file. Tot mijn verbazing is deze exact hetzelfde alleen hier zie ik wel de cronjobs netjes draaien.
Echter als ik naar de systemen kijk waar de configuratie hetzelfde is (i.e. deze variant) zie ik dat de cron ook niet draait.

Wat CAPSLOCK2000 suggeerd om de selinux uit te schakelen gaat helaas niet, aangezien mijn versie voorzien is apparmor ;)

Ik ben ondertussen ook al vele varianten verder mbt "Cannot make/remove an entry for the specified session". Een van de dingen die ik ondertussen heb gedaan is "debug" toegevoegd /etc/security/pam_unix2.conf. Wel iets meer info in de logging, helaas nog niet de clue.

01101000 01100101 01101100 01110000


Acties:
  • 0 Henk 'm!

  • Broken
  • Registratie: Maart 2004
  • Laatst online: 26-09 14:42
*O* *O* *O*

Oké, het probleem is boven tafel. Aangezien ik jullie niet wil onthouden van dit succes(je), hierbij de omschrijving hoe ik het probleem heb kunnen vinden.

Ik las dat je de pam_unix2 ook iets meer informatie kunt laten printen door de volgende file te voorzien van debug: /etc/security/pam_unix2.conf

Dit gaf mij op het eerste gezicht weinig extra informatie, tot dat ik nog eens goed keek. Tot mijn verbazing zag ik vlak voor dat de cron task wordt uitgevoerd de volgende melding:
audit: error in audit_log_task_context

Deze melding had ik nog niet eerder gezien, maar hij staat in relatie met pam configuratie file in mijn eerdere post. Namelijk de regel "require_auditd", na het er uit halen begon gelijk mijn /root/bin/foo script te lopen. Dus eigenlijk faalde PAM stil op de achtergrond.

Een iets verdere inspectie toonde aan dat "auditd" deamon uitstond, maar dat deze wel verwacht word door de EAL4+ configuratie pack. Dit is gekomen door een vautd config script.

De oplossing was eigenlijk vrij simpel, alleen de weg er naar toe:

chkconfig auditd 35

01101000 01100101 01101100 01110000


Acties:
  • 0 Henk 'm!

  • CAPSLOCK2000
  • Registratie: Februari 2003
  • Laatst online: 02-10 22:42

CAPSLOCK2000

zie teletekst pagina 888

tnx voor de update

This post is warranted for the full amount you paid me for it.