
주요 고객의 Linux 서버에서는 수년 동안 루트에서 bash 스크립트를 실행해 왔습니다. 이제 보안상의 이유로 이를 변경하려고 합니다.
일부 스크립트는 "service filescontrol start"와 같은 "service" 명령에 의해 트리거됩니다.
클라이언트의 기본 관리자는 또한 이러한 서비스 트리거 스크립트가 일반 사용자로 실행되기를 원합니다.
하지만 "service" 명령의 개념은 루트 사용자에게 묶여 있지 않습니까?
답변1
service
다른 것과 같은 과정입니다. 대부분의 경우 입니다 /sbin/service
. 이제 각각 고유한 전문 분야를 가진 많은 "init" 관리자(RC-Scripts, upstart, systemd, svcadm...)가 있으므로 service
시작 스크립트를 관리하는 데 사용하는 것이 좋습니다.
수정해야 하는 사항은 기본 시스템과 연결되어 있습니다.
/etc/init.d/crond
예를 들어, 스크립트를 호출 하거나 init-rc 시스템(가장 일반적임)을 호출하는 service crond
것은 동일합니다.
$ service crond status
crond (pid 1837) is running...
$ /etc/init.d/crond status
crond (pid 1837) is running...
그러나 systemd를 사용하면 모든 것이 바이너리 "systemd"에 의해 관리되기 때문에 문제가 훨씬 더 까다로워집니다.
따라서 많은 시스템과 예외를 관리하고 싶지 않다면 사용을 고려할 수 있습니다 sudo
. 그렇지 않으면 사용자 람다로 스크립트를 시작하거나 "set-uid" 스크립트를 사용할 수 있습니다.