2009-06-18 5 views
11

Bash 파일을 주기적으로 실행해야하며 루트 권한이어야합니다.crontab에서 Bash 파일을 루트로 실행할 수 있습니까?

그럴 수 있습니까?

[[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

또한 serverfault에서이 질문을 시도 할 수 있습니다. –

답변

18

예, 단지에 추가 루트 사용자의 crontab; crontab -e 명령을 실행하십시오.

cron이 파일을 저장하는 장소는 약간 이상 할 수 있으므로 올바른 위치에 있는지 확인하는 crontab -e 명령을 사용하십시오. 구문이 올바른지 확인합니다.

+0

모든 crontab 파일을 나열했습니다. 수정해야한다는 의미입니까? – omg

+3

직접 crontab 파일을 직접 수정하는 대신 whatsisname은 올바른 crontab을 편집 할 "crontab -e"명령을 사용하는 것이 좋습니다. – ephemient

11

당신은 루트로

crontab -e 

을 할 수 있습니다.

0

루트의 crontab에있는 모든 항목이 루트로 실행됩니다. 액션으로 Bash 스크립트를 호출하도록 만들면 원하는대로 할 수 있습니다. (sudo를 통해)이 일을

-1

한 가지 방법 : 당신은 사용자 자격 증명

  • 추가 "sudo는/경로 /로/명령에 입력하지 않고 실행하는 계정에 대한 sudo는 prilvileges을 설정해야합니다

    1. "(를 빼고") 루트로 명령을 실행하는 또한 명령에 매개 변수를 추가 할 수 있습니다
  • 4

    을 그냥 /etc/crontab의 항목에 대한 사용자로 root을 지정합니다..

    0 0 * * * root somecommand 
    

    또는 루트로 crontab -e을 사용하여 루트의 개인 crontab에 명령을 추가 할 수도 있습니다.

    +0

    감사합니다. BTW, 다른 crontab 파일이 무엇인지 말해 줄 수 있습니까? – omg

    +1

    /usr/bin에있는 crontab 파일은 "crontab -e"를 입력하면 편집기를 여는 실행 파일입니다./usr/share/man 아래의 파일은 "man crontab"을 입력 할 때 얻는 매뉴얼 페이지입니다. /usr/share/vim*/sytax/crontab.vim은 vim (crontab 파일에 대해 활성화 됨)에 대한 특수 구문 강조 표시입니다. – sth

    +0

    이것은 나를 위해 작동하지 않았다./bin/sh : 1root : 메시지가 없습니다. – Lumbee

    4

    무엇이든지 상관없이 루트 사용자 계정에 액세스해야합니다.

  • 당신은 sudo를 사용할 수를 제안
  • 당신이 setuid 비트를 사용을 제안

    1. 당신은, 루트의 crontab에 추가 할 수 있습니다. setuid 비트의 문제점은 컴파일 된 프로그램이되어야한다는 것입니다. 컴파일 된 경우 "chmod 4755"를 실행하여 파일의 소유자를 root로 설정하면 루트로 실행됩니다. 컴파일되지 않았다면 C (또는 다른 컴파일 된 프로그래밍 언어)로 간단하게 스크립트를 호출하고 wrapper에서 setuid라는 작은 래퍼를 작성하고 래퍼가 root에 의해 소유되었는지 확인할 수 있습니다.

    루트 crontab을 사용하십시오. 그것은 그곳에있는 것입니다. STH에 의해 제안

    또한, crontab을에는 사용자 항목이없는 ... 구문은 다음과 같습니다 당신이 루트의 crontab에 뭔가를 입력합니다

    # .---------------- 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 
    

    , 당신의 루트 계정에 로그인 " crontab -e "및 voila ... 루트 crontab.

  • +0

    일부 (이전) 버전의 cron에는 crontab에 지정된 사용자가 있습니다. http://www.unixgeeks.org/security/newbie/unix/cron-1.html을 참조하십시오. – jschmier

    관련 문제