sudo가 필요한 작업을 백그라운드에 어떻게 넣나요?

sudo가 필요한 작업을 백그라운드에 어떻게 넣나요?

비밀번호를 입력하는 것 외에는 상호 작용을 최대한 적게하면서 sudo가 필요한 작업을 백그라운드에 넣는 방법을 찾고 있습니다.

sudo는 터미널의 비밀번호를 요구하며 백그라운드 작업은 터미널을 중단합니다.

$ sudo sleep 10 &
[1] 32749
$ fg 1
sudo sleep 10
[sudo] password for t: 

내 현재 솔루션은 위와 같으며 비밀번호를 입력한 다음 bg 1다시 작업합니다. 세 가지 명령을 대화식으로 실행해야 합니다.

sudo는 쉘 특정 명령이 아닌 실행 파일에서만 작동합니다.

$ sudo ( sleep 10 & )
bash: syntax error near unexpected token `sleep'
$ sudo { sleep 10 & }
bash: syntax error near unexpected token `}'

다음 접근 방식은 백그라운드 작업을 셸에서 분리하는데 이는 바람직하지 않습니다.

$ sudo bash -c "sleep 10 & "
[sudo] password for t: 
$ jobs
$ 

집중도 할 수 있어요 sudo. 예를 들어 sudoers에서 NOPASSWD 명령을 생성하거나 실제 백그라운드 sudo 명령 전에 더미 sudo 명령을 실행하여 암호 캐싱을 활용합니다. 우아한 방식인지 잘 모르겠습니다. 그들 중 존재하는 것이 있으면 알려주십시오.

답변1

나는 sudo -v이것을 "실제 백그라운드 sudo 명령 이전의 더미 sudo 명령"으로 사용합니다.sudo 매뉴얼 페이지이것을 고려하면:

-v 옵션과 함께 sudo를 실행하면 사용자는 명령을 실행하지 않고도 캐시된 자격 증명을 업데이트할 수 있습니다.

이를 위해서는 사용자가 "더미" sudo 명령으로 작동하기 위해 다른 sudo 부여 명령이 필요하지 않습니다.

답변2

나는 마지막 단락이 이것에 대해 설명하는 방법이라고 생각합니다. 비밀번호 요구 사항을 비활성화하는 것이 적절한 경우 를 사용하여 이 명령을 구성해야 합니다 NOPASSWD. 그렇지 않고 sudo자격 증명 캐싱을 허용하는 경우(기본적으로 수행됨) 이를 미리 설정할 수 있습니다.

sudo -v
sudo sleep 10 &

관련 정보