Belirli bir kullanıcı için cron işlerini devre dışı bırak


4

Crontabs’taki işlerin bir listesi var. user1, user2. İşlerini önlemek istiyorum user2 kaçmaktan.

Listelemeyi denedim user2 içinde cron.deny, ancak bu yalnızca kendisine erişmesini önler crontab. Listelenen işler user2 'ler crontab hala idam edilmek.

Belirli bir kullanıcı için cron işlerini nasıl devre dışı bırakabilirim?

Yanıtlar:


5

Kaba kuvvet!

crontab -u fred -e
%s/^/#/
:wq

Muhtemelen bunu yapmanın daha zarif bir yolu vardır, ancak bunu her zaman yapmazsanız, sahip olduğunuz çekiç kullanın.


Ben de aynı şekilde yapıyordum. Merak ediyordum eğer cron bu özelliğe sahip olmalıdır.
NOLFXceptMe

Bunun ne yaptığını / sorunu nasıl çözdüğünü açıklayabilir misiniz?
PsychoData

1
@PsychoData: Belirtilen kullanıcı için zamanlanmış tüm görevleri yorumlar. Görmek man crontab ve man vi: % = her satır s/a/b/ = ilk a için b yerine, ^ = satır başlangıcı. İle başlayan satırlar # cron tarafından göz ardı edilir.
RedGrittyBrick

2

Belirli bir kullanıcı için crontab'ı devre dışı bırakmanın en kolay yolu onu bulmaktır. crontab ve yeniden adlandırın. İçin Debian man sayfası cron diyor:

cron searches its spool  area  (/var/spool/cron/crontabs)  for  crontab
files  (which  are named after accounts in /etc/passwd); crontabs found
are loaded into memory.

Bu yüzden sadece dosyayı passwd'de olmayan bir şey ile yeniden adlandırın, genellikle buna benzer bir sonek vererek disabled, offline, dead veya benzeri.

mv -vi /var/spool/cron/crontabs/user2 /var/spool/cron/crontabs/user2.disabled

Debian'da (ve Ubuntu gibi ilgili sistemlerde), /var/log/syslog:

(user2.disabled) ORPHAN (no passwd entry)

Ayrıca eklediğinizden emin olun. user2 dosyaya /etc/cron.denyAksi takdirde, kullanıcı kendisi için yeni bir crontab oluşturabilir.

Girişi silerek kullanıcının crontab'ını tekrar etkinleştirin /etc/cron.deny ve onun crontab adını değiştirerek:

mv -vi /var/spool/cron/crontabs/user2.disabled /var/spool/cron/crontabs/user2

0

crontab -r username Belirli bir kullanıcı adı için crontab'ı kaldırmak için Solaris'te çalışır.

Eğer -r sizin için çalışmıyor, sonra deneyin:

su username 'sh -c "crontab /dev/null"'

Yazmayı daha hızlı ve komut dosyasından daha kolay crontab -e.


Bununla ilgili sorun, düşmanca bir kullanıcıyla (ve belki de o zaman bile) uğraşmadığınız sürece muhtemelen yapmamanız gereken kullanıcının bilgisini yok etmesidir. Diğer cevap, daha iyi bir fikir olarak beni vuran kullanıcının crontab'ını yorumluyor.
Keith Thompson

@KeithThompson'ın dediği gibi, bu kullanıcı için crontab'ı silmek istemiyorum. Sadece devre dışı bırakmak istiyorum. Kullanım durumu, daha sonra etkinleştirmek istediğim şekilde.
NOLFXceptMe

0

silmek /var/spool/cron/user1 veya user2 ? Ayrıca, bu kullanıcı adlarını /etc/cron.deny aksi takdirde bu cron işlerini geri ekleyebilirler


0

Belirli bir kullanıcı için crontab işini engellemek istiyorsanız, kök kullanıcıyla oturum açtığınızdan emin olun, kök kullanıcı yalnızca crontab dosyalarına erişebilir. 1. Daha sonra bu dizindeki dir /etc/cron.d dosyasına gidince cron.deny dosyasını görebilir, vi editörü veya başka bir komut kullanarak engellemek istediğiniz kullanıcının adını girebilirsiniz.


Bu, başka bir yanıtı çoğaltır ve yeni bir içerik eklemez. Gerçekten katkıda bulunacak yeni bir şeyiniz yoksa lütfen cevap yazmayın.
DavidPostill
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.