컴퓨터를 시작할 때마다 터미널 명령을 실행하고 싶지만 실행하려는 명령에는 루트 권한이 필요합니다. 설정 섹션에서 애플리케이션을 시작하기 위해 명령에 sudo를 입력했지만 비밀번호가 필요했기 때문에 애플리케이션이 실행되지 않은 것 같습니다.
답변1
루트의 크론 테이블에 크론 작업을 추가합니다. 크론 작업은 일정에 따라 실행되는 작업입니다. 시스템이 시작될 때마다 작업이 실행되도록 예약할 수 있습니다.
마찬가지로 edit cron table을 root
입력 crontab -e
(또는 사용 sudo crontab -e
)하면 예약된 작업 목록일 뿐입니다. 그런 다음 별명을 사용하십시오 @reboot
(대신일반 타이밍 구문) 시작할 때마다 실행되는 작업을 생성하려면 다음을 수행하세요.
@reboot your_command
답변2
명령을 실행할 수 있도록 sudo를 구성할 수 있습니다.아니요비밀번호를 입력하세요. 나는 일반적으로 이 작업을 수행하지 말 것을 권고하지만 다시 한 번 루트 응용 프로그램을 자동으로 실행하지 않는 것이 좋습니다(setuid 루트이고 권한/보안이 올바르게 관리되지 않는 한). 이봐, 이건 여러분의 컴퓨터입니다. 이 기술은 로그인할 때마다 sudo 명령을 실행해야 하는 경우 특히 유용합니다. (시작할 때 cron 작업만 시작하면 된다는 점에 동의합니다.)
다음 두 가지 방법 중 하나로 이 작업을 수행할 수 있습니다.
- 루트로 실행하거나 sudo를 통해 편집할 수
/etc/sudoers
있는 sudo 구성 파일에 적절한 항목을 추가합니다 .visudo
- (존중)
/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 항목이나 자동으로 루트 권한을 부여하는 다른 방법에도 적용됩니다.