Bash 스크립트에서 sudo 명령을 실행하는 방법

Bash 스크립트에서 sudo 명령을 실행하는 방법

부팅 시 tor 서비스를 다시 시작하면 됩니다. 스크립트는 간단합니다.

#!/bin/bash

sudo service tor restart

하지만 부팅할 때마다 비밀번호를 요구하지 않고 실행하고 싶습니다.

나는 다음 게시물을 팔로우했습니다.https://askubuntu.com/questions/425754/how-do-i-run-a-sudo-command-inside-a-script/425990

sudoers 파일을 다음과 같이 변경했습니다.

username ALL=(ALL) NOPASSWD: /path/to/script

하지만 터미널에서 실행하려고 하면 스크립트가 항상 비밀번호를 묻습니다. 이 게시물의 다른 답변도 시도했지만 게시물에 유효성 검사가 없기 때문에 해결책을 찾지 못했습니다. 누구든지 해결책이 있다면?

답변1

username ALL=(ALL) NOPASSWD: /path/to/script

다음과 같은 username스크립트를 실행할 수 있는 권한을 부여하십시오 .sudo

$ sudo /path/to/script

사용자가 스크립트에서 구체적으로 재부팅할 수 있도록 하려면 tor다음을 사용하십시오.sudo

username ALL=(ALL) NOPASSWD: /usr/sbin/service tor restart

이제 스크립트는 다음을 수행할 수 있습니다.

sudo /usr/sbin/service tor restart

이 명령은 sudo구성과 정확히 일치해야 합니다.

답변2

가장 좋은 방법은 스크립트에서 sudo를 사용하지 않는 것입니다.

  1. sudo 없이 스크립팅
  2. 스크립트 파일을 루트로 chmod하여 사용자 및 다른 사용자의 모든 권한을 제거합니다.
  3. sudo를 사용하여 스크립트 실행

관련 정보