2009-06-18 7 views
11

Ben Bash dosya periyodik olarak çalıştırmak için, ve root olarak olması gerektiğini gerekir.Bir Bash dosyasının crontab içinde root olarak çalıştırılması mümkün mü?

Bu mümkün mü?

[[email protected] nutch-0.9]# locate crontab 
/etc/crontab 
/etc/sysconfig/crontab 
/usr/bin/crontab 
/usr/share/man/man1/crontab.1.gz 
/usr/share/man/man1p/crontab.1p.gz 
/usr/share/man/man5/crontab.5.gz 
/usr/share/vim/vim71/syntax/crontab.vim 
[[email protected] nutch-0.9]# 
+1

Ayrıca bu soruyu serverfault üzerinde sormayı deneyebilirsiniz. –

cevap

18

Evet, yalnızca root kullanıcılarının 'crontab; crontab -e komutunu çalıştırın.

Cron dosyalarını sakladığı yerlerin küçük bir kısmı olabilir, bu yüzden doğru yerde olduğundan emin olmak için crontab -e komutunu kullanın ve sözdizimini kontrol ettiğine inanıyorum.

+0

Tüm crontab dosyalarını listeledim, yani değiştirmem gereken anlamına mı geliyor? – omg

+3

Bir crontab dosyasını doğrudan kendiniz değiştirmek yerine whatsisname, doğru crontab dosyasını düzenleyeceğiniz "crontab -e" komutunu kullanmanızı önerir. – ephemient

11

Sadece root olarak

crontab -e 

yapabilirsiniz.

0

Ben root olarak çalıştırmak root crontab'ın girişlerin tüm inanıyoruz. Sadece bir Bash komut dosyasını eylem olarak çağırırsınız ve istediğiniz şeyi yapmalıdır. (Sudo ile) Bunu yapmanın

-1

Tek yönlü: Sen kullanıcı kimlik

  • Add "sudo/path/to/komut içinde girmeden çalıştırmak için hesap için sudo prilvileges kurmanız gerekir

    1. "(olmadan") kök olarak komutu çalıştırmak için de komuta parametreler ekleyebilir
  • 4

    Sadece /etc/crontab girebilmek için kullanıcı olarak root belirtin:..

    0 0 * * * root somecommand 
    

    Alternatif olarak root olarak crontab -e kullanarak kökün kişisel crontab komutu ekleyebilirsiniz.

    +0

    Teşekkür ederim, BTW, diğer crontab dosyalarının ne için olduğunu söyleyebilir misiniz? – omg

    +1

    /usr/bin dosyasındaki crontab dosyası, "crontab -e" yazarsanız bir düzenleyiciyi açan yürütülebilir dosyadır. Aşağıdaki dosyalar/usr/share/man, "man crontab" yazarken aldığınız kılavuz sayfalardır. /usr/share/vim*/sytax/crontab.vim vim için özel sözdizimi vurgulamadır (crontab dosyaları için etkinleştirilmiştir). – sth

    +0

    Bu benim için çalışmadı./Bin/sh iletisini aldım: 1root: bulunamadı – Lumbee

    4

    Ne olursa olsun, kök kullanıcı hesabına erişimi olması gerekir.

  • sudo'yu kullanabilirsiniz önerildiği gibi
  • setuid bit kullanabilirsiniz önerildiği gibi

    1. Eğer kök crontab ekleyebilirsiniz. Setuid biti ile ilgili sorun, derlenmiş bir program olması gerektiğidir. Eğer derlenmişse, "chmod 4755" ve dosyanın sahibini root olarak ayarlayabilir ve root olarak çalışacaktır. o derlenmiş değilse, sen, sargı üzerinde C küçücük sarıcı (veya başka derlenmiş programlama dili) sadece komut dosyası çağırır ve setuid yazmak ve sarıcı kökü aittir emin olabiliriz.

    Tavsiyem? Kök crontab kullanın. Bunun için var. Sth tarafından önerildiği gibi

    Ayrıca crontab Kullanıcı girişi mevcut değildir ... sözdizimi: Eğer kök olarak crontab bir şey girmek istiyorsanız

    # .---------------- minute (0 - 59) 
    # | .------------- hour (0 - 23) 
    # | | .---------- day of month (1 - 31) 
    # | | | .------- month (1 - 12) OR jan,feb,mar,apr ... 
    # | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat 
    # | | | | | 
    # * * * * * command to be executed 
    

    , sadece kök hesabınıza giriş, " crontab -e "ve voila ... kök crontab.

  • +0

    Bazı (eski) cron sürümlerinde, crontab'da belirtilen bir kullanıcı var. Bkz. Http://www.unixgeeks.org/security/newbie/unix/cron-1.html – jschmier