728x90
반응형
개요
특정 명령을 비밀번호 없이 루트(root) 권한으로 실행하는 방법들을 알아 보겠습니다.
시험환경
- SBC : Rock5B
- OS : Armbian 23.11.1 Jammy / Linux 5.10.160-legacy-rk35xx
chmod 이용 방법
가장 손쉬운 방법으로 chmod 명령으로 해당 명령 자체에 "root" 권한을 부여하는 방법입니다.
$ sudo chmod 4755 {command}
$ sudo chmod u+s {command}
위와 같이 명령에 "root" 권한을 부여한 뒤에, 정보를 확인해 보면, 첫 부분에 "-rws"와 같이 "x" 부분에 "s"라고 표시된 것을 확인할 수 있습니다. "s"가 부여된 명령은 "root" 권한이 부여되어 실행됩니다.
$ sudo chmod 4755 t.sh
$ sudo chmod u+s t.sh
$ ls -l
total 8
-rwsr-xr-x 1 hunature hunature 26 5월 11 16:21 t.sh*
sudoers 편집하기
다른 방법은 sudoers 파일에 "sudo" 로 이용할 특정 명령에 대하여 비밀번호를 요청받지 않도록 설정할 수 있습니다.<br />
다음과 같이 "/etc/sudoers" 파일의 마지막 부분에 이용할 명령을 지정해 놓으면, "sudo {command}" 이용 시, 비밀번호 입력 없이 바로 "root" 권한으로 실행이 가능하게 됩니다.
$ sudo sh -c "echo '{user_id} ALL=(root) NOPASSWD: {command}' >> /etc/sudoers"
결론
위 방법들 모두 권한을 부여한 명령이 스크립트 파일일 경우, 악의적인 명령을 추가 편집하여 시스템을 침범할 수 있으니, 스크립트 파일에는 적용하면 안될 것입니다.
어쨌든 특정 명령에 "root" 권한을 부여하여 실행하도록 하는 것은 보안상 위험성이 높은 작업이니 신중하게 고민하고 처리해야만 합니다.
참고자료
- "How to run a specific program as root without a password prompt?":https://unix.stackexchange.com/questions/18830/
'Linux,Unix,BSD' 카테고리의 다른 글
[라즈베리파이] 화면 꺼짐 설정 (Configuring Screen Blanking) (0) | 2022.06.08 |
---|---|
라즈베리파이에서 "Emergency Mode" 진입 문제 (0) | 2022.05.31 |
[라즈베리파이] RTC 모듈(DS3231) 설정하기 (5) | 2022.05.01 |
[라즈베리파이] OpenVino 설치하기 (NCS2) (0) | 2022.04.02 |
FreeDOS를 이용한 BIOS 업그레이드 (0) | 2022.03.16 |