cron은 실행 환경을 수정하고 tor 서비스가 종료 노드를 변경하지 않도록 합니까?

cron은 실행 환경을 수정하고 tor 서비스가 종료 노드를 변경하지 않도록 합니까?

~에 따르면https://unix.stackexchange.com/a/478636/674, cron은 작업을 실행하기 위해 실행 환경을 수정합니다.

  1. Bash에서 직접 두 번 실행 하면 sudo service tor reload항상 두 개의 다른 IP 주소가 표시됩니다.

    $ sudo service tor reload; torsocks  curl ipinfo.io/ip; sudo service tor reload; torsocks  curl ipinfo.io/ip
    12.345.678.901
    987.654.321.00
    

    sudo service tor reload이렇게 하면 종료 노드가 변경될 가능성이 높으며 이에 따라 공용 IP 주소가 변경됩니다. 이것이 맞습니까?

  2. 하지만 cron 작업을 만들 /etc/cron.d/myjob

    * * * * * tim (sudo service tor reload; torsocks  curl ipinfo.io/ip; sudo service tor reload; torsocks  curl ipinfo.io/ip) > /tmp/cron.log
    

    를 확인할 때마다 /tmp/cron.logIP 주소는 작업마다 다르지만 항상 두 개의 동일한 IP 주소가 표시됩니다(다음 예약 작업이 로그를 덮어쓰면 덮어쓰기 전의 두 IP 주소와 다른 두 개의 동일한 IP 주소가 표시됩니다). 다시 로드 사이에 삽입할 때도 마찬가지입니다 sleep 20.

    * * * * * tim (sudo service tor reload; torsocks  curl ipinfo.io/ip; sleep 20; sudo service tor reload; torsocks  curl ipinfo.io/ip) > /tmp/cron.log
    

    크론 작업으로서 sudo service tor reloadIP 주소를 변경할 수 없는 이유는 무엇입니까? 어떻게 작동하게 할 수 있나요?

감사해요.

답변1

문제의 원인은 작업 라인에서 명령이 사용되고 sudo사용자 필드가 루트가 아닌 사용자라는 것입니다 tim. tim요청한 비밀번호를 제공하지 않았습니다 sudo.

저는 여전히 cron 작업에 대한 사용자 및 명령 필드 작성에 대한 모범 사례를 이해하려고 노력하고 있습니다."/etc/cron.d/" 파일의 cron 작업에 "sudo"가 포함되어서는 안 되나요?

관련 정보