이 작업을 수행하는 두 가지 방법을 생각할 수 있습니다.
하나는 서비스를 시스템 서비스가 아닌 사용자 서비스로 만드는 것입니다.
시스템 장치를 작성하는 대신 시스템 장치는 서비스 사용자의 홈 디렉토리 ()에 배치됩니다 $HOME/.config/systemd/user/daemon-name.service
. 동일한 사용자는 수 있습니다 서비스 관리 와를 systemctl --user <action> daemon-name.service
.
부팅시 사용자 장치가 시작 되도록하려면 root는 계정에 대해 남아 있어야합니다 sudo loginctl enable-linger username
. 단위는이어야합니다 WantedBy=default.target
.
다른 방법은 PolicyKit을 통해 시스템 장치를 관리하기 위해 사용자 액세스를 허용하는 것입니다. 이를 위해서는 시스템 226 이상이 필요합니다 (그리고 JavaScript rules.d 파일의 경우 PolicyKit> = 0.106 – 확인하십시오 pkaction --version
).
예 /etc/polkit-1/rules.d/57-manage-daemon-name.rules
를 들어 허용하려는 속성을 확인 하는 새로운 PolicyKit 구성 파일을 작성합니다 . 예를 들면 다음과 같습니다.
// Allow alice to manage example.service;
// fall back to implicit authorization otherwise.
polkit.addRule(function(action, subject) {
if (action.id == "org.freedesktop.systemd1.manage-units" &&
action.lookup("unit") == "example.service" &&
subject.user == "alice") {
return polkit.Result.YES;
}
});
명명 된 사용자 systemctl
는를 사용하거나 사용하지 않고 명명 된 서비스를 관리 할 수 있습니다 sudo
.