DirectAdmin Cron Jailshell Hatası ve Kesin Çözümü: Adım Adım Rehber

DirectAdmin cron jailshell hatası alıyorsanız bu kapsamlı rehberde jail mekanizmasını devre dışı bırakma, crontab’ı temizleme ve cron job’larınızı sorunsuz şekilde çalıştıracaktır , Bu sorunu almanızın sebebi sunucuda jailshell e alternatif bir sistemin bulunmasıdır , CAGEFS gibi.

DirectAdmin üzerinden eklenen cron job’lar çalıştırıldığında aşağıdaki hata alınıyor:

execl: couldn't exec `/usr/bin/jailshell'
execl: Böyle bir dosya ya da dizin yok

Bu, sistemde /usr/bin/jailshell dosyasının bulunmaması ve DirectAdmin’in cron komutlarını jailshell aracılığıyla çalıştırmaya çalışması nedeniyle oluşur.

Çözüm

Aşağıdaki adımları uygulayarak sorunu giderebilirsiniz:

  1. Jail mekanizmasını kapatın:
    /usr/local/directadmin/directadmin config-set jail 0
  2. DirectAdmin servisini yeniden başlatın:
    service directadmin restart
    # veya
    systemctl restart directadmin
  3. Mevcut tüm crontab’lardaki SHELL= satırlarını silin:
    for user in $(ls /var/spool/cron); do
      crontab -u "$user" -l \
        | sed '/^SHELL=/d' \
        | crontab -u "$user" -
    done

Sonuç

Bu adımları tamamladıktan sonra DirectAdmin’in cron job’ları gerçek shell (bash/sh) ile çalışacak ve “couldn’t exec `/usr/bin/jailshell`” hatası tamamen ortadan kalkacaktır.