시작 스크립트에서 비밀번호와 함께 명령 보내기

시작 스크립트에서 비밀번호와 함께 명령 보내기

센트OS 6.5

서버는 특히 AWS AMI입니다.이것

upstart를 사용하여 부팅 시 프로세스를 시작하려고 합니다.

이 특정 상자에서는 root로그인이 비활성화되고 sudo뭔가를 실행해야 할 때마다 비밀번호를 묻는 메시지가 나타납니다.

따라서 단순히 명령을 스크립트에 넣는 것만으로는 작동하지 않습니다.

나는 따라가려고 노력한다이 답변,성공하지 못했습니다

/ect/init 디렉토리에 다음 rio.conf 파일이 있습니다.

start on runlevel [2345]
stop on runlevel [!2345]

exec echo Password! | sudo -s /usr/bin/riofs --fuse-options="allow_other" --fmode=0777 --dmode=0777 xx.xxxxxx /mnt/applications/recorder/streams/_definst_/s3

이것을 실행할 때마다 아무 일도 일어나지 않는 것 같습니다.

Password!이것은 단지 샘플 비밀번호입니다.

편집하다:

입력하면 exec /usr/bin/riofsSSH 창이 닫히고 다시 돌아오면 작동하는 것을 볼 수 있습니다. 이것이 무엇을 의미하는지, 어떻게 자동화하는지 전혀 모릅니다.

답변1

sudoinit/upstart 스크립트에 있을 필요는 없습니다 . 기본적으로 모든 init/upstart 서비스는 루트로 실행됩니다.

이런 식으로 생각해보세요. 어떤 사용자로 시작 스크립트를 실행하시겠습니까? 개인 사용자로 실행하고 싶다면 왜 그럴까요? 시스템은 스크립트만 볼 수 있으며 개별 사용자가 누구인지 전혀 알 수 없습니다.

즉, exec줄을 다음과 같이 변경하십시오.

exec /usr/bin/riofs --fuse-options="allow_other" --fmode=0777 --dmode=0777 xx.xxxxxx /mnt/applications/recorder/streams/_definst_/s3

결국 나는 그것을하지 않을 것입니다. 파일 시스템을 마운트하는 중입니다 /etc/fstab. 다음 작업이 필요합니다.

riofs#xx.xxxxxx    /mnt/applications/recorder/streams/_definst_/s3    _netdev,allow_other,fmode=0777,dmode=0777   0 0

답변2

사용자 비밀번호 없이도 작동하도록 sudo를 구성할 수 있습니다. visudo를 루트로 실행하고 사용자 줄에 NOPASSWD를 추가합니다.

user    ALL=(root)    NOPASSWD: ALL

편집하다

이것이 신생 스크립트라는 점을 감안할 때 Patrick의 대답은 정확합니다.

또한 임의 스크립트의 경우 0xC0000022L이 적합합니다. 비밀번호가 필요하지 않은 사용자로 이 루트 전용 스크립트를 실행한다고 가정해 보겠습니다.

user@host:~$ ls -lah /usr/local/bin/script.sh
-rwx------  1 root root ... script.sh

visudo를 사용하면 사용자 줄은 다음과 같아야 합니다.

user    ALL=(root)    NOPASSWD: /usr/local/bin/script.sh

이렇게 하면 이 명령에만 암호 요구 사항이 면제됩니다.

답변3

고려해야 할 두 가지 사항이 있습니다.

먼저, 매번 비밀번호를 입력하는 것이 sudo지루하다면 @mirimir가 제안한 대로 "/etc/sudoers" 파일을 다음과 같이 편집하세요.

yourusername ALL=(root) NOPASSWD: ALL

또는

yourusername ALL=(ALL) NOPASSWD: ALL

영원히 고쳐주세요 :-).

둘째, 스크립트 소유자를 확인하십시오. 나는 소유자와 권한이 중요하다고 확신합니다. 주인이 이렇게 바뀌었습니다 sudo chown root:root /path/to/script.sh. 또한 권한을 744 로 설정하는 것을 고려해보세요 sudo chmod 744 /path/to/script.sh.

관련 정보