#TIL Linux 유저에게 특정 서비스에 대한 systemctl 프로그램 사용을 허용하기
Systemd로 실행을 관리하는 프로그램이 있다. GitHub actions를 사용해 빌드하고 scp 프로그램으로 배포한다. 복사 전후에 프로세스 중지 실행을 수행해야 한다. systemd에 대한 전체 권한을 주지 않고 특정 디렉터리에 권한을 준 것처럼 특정 프로그램의 시작과 종료만 가능하게 하고 싶다.
/etc/sudoers
파일에 특정 유저가 root 권한을 얻어 실행할 수 있는 동작을 정의할 수 있다. Drop-in을 지원하니 /etc/sudoers
파일을 직접 수정하지 말고 /etc/sudoers.d/deployuser-systemctl
처럼 파일을 만든다.
sudo visudo -f /etc/sudoers.d/deployuser-systemctl
sudoers
파일 문법 검사를 해주는 visudo
를 통해 수정한다.
deployuser ALL=NOPASSWD: /usr/bin/systemctl restart myapp, /usr/bin/systemctl start myapp, /usr/bin/systemctl stop myapp
이제 deployuser
가 myapp
을 비밀번호 입력 없이 sudo systemctl로 컨트롤할 수 있게 했다.