2012-05-06 4 views
0

나는이 질문에 전에 대답했지만, 나는 내가 좋아하는 대답을 찾을 수 없다. 다른 사용자로 매우 특정한 스크립트를 실행하는 쉘 스크립트를 작성하고 싶습니다. (누군가가 postgres 사용자로 postgres를 시작할 수 있기를 바랍니다.) 스크립트에는 710 perms가 있으므로 특정 그룹에 의해 실행 가능하지만 해당 그룹에서 읽기 또는 쓰기가 불가능합니다.su 암호없이 스크립트 내에서

이제 대화식 암호 프롬프트없이 'su'를 사용할 방법이 없다고 확신합니다. 좋은 이유가 많이 있는데, 나는 그 이유의 장점을 확신 할 필요가 없다. (나보다 잘난 척하는 사람이 프로세스 목록에서 비밀 번호를 얻을 수 있다고 들었다.)

질문은 일반적으로 유닉스 보안 패러다임을 남용하지 않고 내가하고 싶은 것을 어떻게 성취 할 수 있을까요? 사용자가 매우 특정한 프로세스를 다른 사용자로 실행할 수있게하는 방법이 있습니까?

답변

3

이러한 종류의 상황은 정확하게 sudo이 설계된 것입니다.

1

postgres 사용자로 실행해야하는 스크립트를 실행하는 실행 파일 (이 아닌 쉘 스크립트)을 만들 수 있습니다. 실행 파일의 소유자를 postgres 사용자로 변경하고 setuid 비트를 설정하십시오.

Celada의 우려 사항을 해결하기 위해 Best practice to run Linux service as a different user을 참조하십시오.

+1

실제 uid가 아닌 실제 uid 만 변경하면 되나요? Postgres는 차이점에 신경을 쓸 수 있습니다. – Celada

+0

이 경우 sudo가 올바른 대답이라고 생각합니다. postgres를 시작하고 관리하는 데몬은 이미 존재합니다. 올바른 사용자 계정에서 호출해야합니다. 링크 된 스레드는 훌륭한 토론이라고합니다. 감사! – prauchfuss