Simgeler /etc/cron.d/ içinde kullanılabilir mi?


25

Belirli bir projede svn cron yapılandırması yoluyla konuşlandırılmasını sağlayan bir yapılandırma mekanizması uygulamaya çalışıyorum.

Hemen yapmam gereken şeyin, /etc/cron.d/ adresinden projemin cron dosyasına (sırayla bir vcs tarafından kontrol edilir) bağlanan işaretli sandıklar olduğunu düşünmüştüm.

Bazı eski forum mesajlarını, sembolik bağlantıların desteklenmediğini ve diğerlerinin de öyle olduğunu söyleyerek buldum. Hangisi?

Bunu başarmak için başka bir şey veya başka bir iyi yol var mı?

Yanıtlar:


27

Göre man crond

YETERSİZLİKLER

Tüm crontab dosyalarının normal dosyalar olması veya normal dosyalara bağlanması gerekir, bunlar sahibinden başka bir kişi için çalıştırılabilir veya yazılabilir olmamalıdır. Bu gereksinim, crond komut satırındaki -p seçeneği kullanılarak geçersiz kılınabilir. Bilgilendirme desteği kullanılıyorsa, sembolize edilen crontab'lardaki değişiklikler cron cini tarafından otomatik olarak fark edilmez. Cron arka plan programı, crontab'ları yeniden yüklemek için bir SIGHUP sinyali almalıdır. Bu, inotify API'sinin bir sınırlamasıdır.

Sendmail kurulu değilse, syslog çıktısı posta yerine kullanılacaktır

Benden de yaşayan canlıları kızdırdı, Kısacası evet, ancak eğer değilse bir anahtar regular files or symlinks to a regular filekullanmanız gereken sembolik işaretleri kullanabilirsiniz -p.


1
Ayrıca, dosyanın kullanıcı cron'unun çalıştığı kullanıcı tarafından sahiplenilmesi gerektiğini; örneğin, /etc/cron.d/bobsjob"bob" cron kullanıcısı tarafından sahip olunan bir dosyayı işaret eden bir link , bir syslog mesajıyla başarısız olacaktır WRONG FILE OWNER (/etc/cron.d/bobsjob).
Craig Ringer

@CraigRinger Cron dosyasına sahip olan "www-data" adlı bir kullanıcım var, şu anda syslogda WRONG FILE OWNER hatası alıyorum. Cron'u "www-data" kullanıcısını kullanarak nasıl çalıştırabilirim. Kök dosyayı kendi haline getirmek istemiyorum.
CMCDragonkai

@ CMCDragonkai sudo -u www-data crontab -eve www-data kullanıcısının crontab'ına ekleyin. Daha sonra kullanıcı olarak çalışacaktır www-data. Kullanıcı crontab'larında bulunmadığından açık kullanıcı sütununu kaldırmayı unutmayın.
Craig Ringer

Bu dosyayı içine yerleştirecek etc/cron.mi? Crontab aracının görevi başka bir yere yerleştireceği izlenimini edindim.
CMCDragonkai

@ CMCDragonkai Haklısınız, arama crontab -ebu durumda istediğiniz değil. Bakıyorum ama bir kullanıcı crontab'ı root olmayan bir kullanıcı olarak çalıştırmanın bir yolunu bulamadım.
ACK_stoverflow

14

Bunun güvenlik etkileri var. /Etc/cron.d/ dosyasındaki scriptler root haklarıyla çalıştırılıyor. Sisteminiz bu şekilde tehlikeye girebileceğinden, root olmayan kullanıcılar için sahip olunan ve yazılabilir komut dosyalarını oraya bağlamak kötü bir fikirdir.


4

Ubuntu versiyonunuz için cron sayfasını kontrol ederdim (Sanırım bu forumda Ubuntu ile konuşuyoruz!):

Bu dizindeki dosyalar root'a ait olmalı, çalıştırılabilir olması gerekmez (bunlar / etc / crontab gibi konfigürasyon dosyalarıdır) ve run-parts (8) tarafından kullanılan aynı adlandırma kurallarına uymalıdırlar: yalnızca büyük ve küçük harflerden, rakamlardan, alt çizgilerden ve kısa çizgilerden oluşur. Bu, hiç nokta içeremeyecekleri anlamına gelir.

Florian'ın işaret ettiği gibi, eğer bu dosya root olmayan kullanıcılar tarafından yazılabilirse, bu işler bir root tarafından çalıştırılacağı için bir güvenlik açığıdır (dosyadaki iş sahibi olarak adlandırılan kişi için). Ayrıca, bu nedenle, unutmayın

Bu dizin, / etc / crontab'da kullanılan formatı izleyen herhangi bir dosyayı tanımlayan görevleri içerebilir, yani kullanıcı cron biriktiricisinin aksine, bu dosyaların görevi tanımlamasında olduğu gibi çalıştırmak için kullanıcı adı sağlaması gerekir.

yani çalıştırılacak komuttan önce kullanıcı adını girin.


1
Bu, hiç nokta içeremeyecekleri anlamına gelir. buna dikkat et. Bağlantı isminde bir nokta vardı. Benim için çalışmayan işlerimin sorumlusu buydu. Artı: dosyanın kendisi bir CRLF ile
bitmelidir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.