[질문] 부팅시 root 외의 계정으로 프로그램을 실행하고 싶어요.

progamer의 이미지

리눅스에서 부팅시 rc.local 파일에 어떤 프로그램을 실행하도록
등록한다면 root 권한으로 실행이 되는데요.

이를 root 권한이 아닌 다른 권한으로 실행하고 싶은데
방법이 있는지요?

답은 복잡하지 않을 것 같은데 도저히 모르겠네요.
그럼.. 많은 도움 부탁드립니다.

xfmulder의 이미지

env 명령을 통해 가능.

사용법은 man 에서 다시 확인하세요.
아마 env username " command "

이런식으로 실행하면 username 의 계정으로 명령실행할 겁니다.

내 자식들도 나처럼 !!

pok의 이미지

파일 자체에 SetUID를 하시는 방법을 고려해볼수 있습니다.
chmod 4??? 하시면 그 파일 소유주 권한으로 파일이 실행됩니다.

만일 chmod 4755 로 하신다면 -rwsr-xr-x 같은 권한(x가 아닌 s)가 되고 누가 실행하던간에 그 파일 소유주 권한으로 실행이 됩니다.

progamer의 이미지

테스트 해보니 setuid 로 일반 프로그램을 실행시킬 경우 잘 동작 되었습니다.
그런데 root 권한으로 실행시킬 것이 shell 프로그램인 경우는 또 달라서 문의드립니다.

텔넷으로 서버에 들어가서 setuid 설정된 A라는 쉘 프로그램을
root 권한으로 실행시켰더니 setuid 로 실행되는 것이 아니라
root 권한으로 실행되더군요.
이건 리눅스 시스템상 너무나도 당연한 것이라는 것은 알겠는데
이런 경우 해결책은 없을까요? --;

그럼... 도움 부탁드립니다..

keizie의 이미지

su <user> -c "xxx"라고 하면 user란 사용자로 xxx를 실행하죠.

kevinhan의 이미지

RBAC를 원하시는 건 아닌지요?

quid pro quo