애플리케이션을 시작하기 위해 루트로 사용자 정의 명령을 실행하는 방법

애플리케이션을 시작하기 위해 루트로 사용자 정의 명령을 실행하는 방법

컴퓨터를 시작할 때마다 터미널 명령을 실행하고 싶지만 실행하려는 명령에는 루트 권한이 필요합니다. 설정 섹션에서 애플리케이션을 시작하기 위해 명령에 sudo를 입력했지만 비밀번호가 필요했기 때문에 애플리케이션이 실행되지 않은 것 같습니다.

답변1

루트의 크론 테이블에 크론 작업을 추가합니다. 크론 작업은 일정에 따라 실행되는 작업입니다. 시스템이 시작될 때마다 작업이 실행되도록 예약할 수 있습니다.

마찬가지로 edit cron table을 root입력 crontab -e(또는 사용 sudo crontab -e)하면 예약된 작업 목록일 뿐입니다. 그런 다음 별명을 사용하십시오 @reboot(대신일반 타이밍 구문) 시작할 때마다 실행되는 작업을 생성하려면 다음을 수행하세요.

@reboot your_command

답변2

명령을 실행할 수 있도록 sudo를 구성할 수 있습니다.아니요비밀번호를 입력하세요. 나는 일반적으로 이 작업을 수행하지 말 것을 권고하지만 다시 한 번 루트 응용 프로그램을 자동으로 실행하지 않는 것이 좋습니다(setuid 루트이고 권한/보안이 올바르게 관리되지 않는 한). 이봐, 이건 여러분의 컴퓨터입니다. 이 기술은 로그인할 때마다 sudo 명령을 실행해야 하는 경우 특히 유용합니다. (시작할 때 cron 작업만 시작하면 된다는 점에 동의합니다.)

다음 두 가지 방법 중 하나로 이 작업을 수행할 수 있습니다.

  1. 루트로 실행하거나 sudo를 통해 편집할 수 /etc/sudoers있는 sudo 구성 파일에 적절한 항목을 추가합니다 .visudo
  2. (존중)/etc/sudoers.d구성 변경 사항이 포함된 파일을 만듭니다 . 파일 /etc/sudoers하단에는 이 디렉터리의 파일을 추가 구성으로 읽도록 하는 지시문이 포함되어 있어야 합니다. #includedir /etc/sudoers.d(그렇지 않으면 이 옵션 #2가 작동하지 않습니다.)

어쨌든 /etc/sudoers사용 가능한 구성 구문에 대한 설명이 있지만 약간 길기 때문에 기존 구성에 대해 너무 걱정할 필요가 없습니다. (man 페이지도 있습니다 man 5 sudoers.)

당신이 해야 할 일은 비밀번호를 입력하지 않고도 특정 명령을 실행할 수 있는 사용자 사양 라인을 작성하는 것입니다.

파일 주석에 언급된 대로 사용자 사양의 기본 형식은 다음과 같습니다.

## Syntax:
##
##      user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.

특정 유형의 구성에 대한 몇 가지 구문 예제도 있습니다. 귀하의 요구 사항을 충족하기 위한 사용자 사양은 다음과 같습니다.

username ALL = NOPASSWD: /path/to/command

("username" 및 "/path/to/command"를 적절한 값으로 바꾸십시오. "ALL" 및 "NOPASSWD"는 리터럴입니다.)

항상 사용해야 한다는 점에 유의하세요.가득한명령의 경로,둘 다sudoers 구성 및 자동 시작에서. 이렇게 하면 프로그램이 예상대로 작동하고 하이재킹으로 인해 다른(악성일 수 있는) 프로그램으로 교체되지 않도록 하는 데 도움이 됩니다 $PATH. 이 조언은 루트 crontab 항목이나 자동으로 루트 권한을 부여하는 다른 방법에도 적용됩니다.

관련 정보