2011-11-18 2 views
9

지정된 타이밍으로 cron 작업에 추가하는 bash 스크립트가 거의 없지만 루트 사용자로 실행해야합니다. 그 스크립트를 실행하려고합니다. 즉, crob 작업이지만 루트 사용자가 제한된 우분투 ec2 인스턴스에서이 작업을 실행하고 있기 때문에 루트 사용자 권한이 필요합니다. 이 스크립트를 루트 사용자로 실행하려면 어떻게해야할까요?루트 사용자 대신 cron 작업을 사용자로 실행하는 방법

감사

당신은 그것의 소유자로 실행하는 스크립트를 만드는 setuid flag을 사용하여 스크립트가 루트로 실행 할 수 있습니다
+1

로는 실행됩니다. 아마도 '슈퍼'또는 'sudo'명령이 도움이 될까요? –

+0

이것은 StackOverflow가 아니라 ServerFault에 속합니다. – Amy

+0

당신은 여기에 속하지 않는다는 것을 충분히 알았습니다. 다른 사용자 계정으로 리눅스에서 bash 스크립트를 cron하는 방법을 알고 싶다면 [unix.se]를 시도해보십시오. EC2가 이에 중요한 역할을한다면 [sf]를 시도해보십시오. – Will

답변

7

은 몇 가지 가능성이 있습니다

1) 루트의 crontab을에 스크립트 (들)을 추가합니다. 당신이 sudo su - 또는 su - 루트되기 위해해야 ​​할이 작업을 수행하려면, 다음의 crontab을 사용할 수 있도록) 루트가 아닌 사용자를

2 crontab -e을 사용하여 cron 작업을 추가하여, 해당 사용자의 crontab으로 cron 작업을 추가 crontab -e 이 스크립트의 설정-UID 플래그를 설정하고 루트로 소유권을 변경하여, 내가 질문을 이해하는 것이 확실하지 않다 루트 chmod +s scriptname; chown root scriptname

10

:

chmod +s yourscript 
chown root yourscript 

그냥 루트로 실행하려는 명령을 어떤 yourscript 실행을 .

이 방법을 사용하면 모든 사용자가 스크립트를 실행할 수 있습니다.

+0

많은 플랫폼이 보안상의 이유로 스크립트 파일에서'setuid'를 무시합니다. – tripleee

2

Basile이 그의 의견에 맞습니다. 우분투에서 root을 실행하려면 sudo을 사용하십시오. 암호를 입력하지 않고도 수퍼 유저 권한으로 자동 스크립트 (또는 명령)을 실행하려면

,

sudo visudo 

sudoers 파일을 편집하여 실행합니다. 특정 스크립트 (또는 명령)에 대한 암호를 묻는 sudo 정지하려면 username는 사용자 호출 sudo는의 이름입니다

username ALL = NOPASSWD: /path/to/script 

를 삽입합니다.

관련 문제