DevOps/트러블슈팅
Solaris 10 다른 권한으로 명령 실행
라퐁
2026. 8. 5. 23:43
상황
- 레거시 서버 중에 crontab을 사용하여 실행되는 배치들이 있다.
- 배치는 관리의 편의성을 위해 A사용자에서만 실행하도록 하고 있다.
- 추가된 배치가 B사용자의 파일을 삭제하는 작업을 필요로 했다.
조사
일반적인 Unix 권한 모델은 "이 파일은 누구 소유이고, 그 소유자만 뭘 할 수 있다"는 정적인 구조이다. 여기에 RBAC라는게 더 있어서 "이 사용자가 이 명령을 실행할 때만 다른 사용자 권한으로 승격시킨다"는 동적인 위임이 가능하게 된다.
적용
exec_attr 설정
프로파일의 이름, 실제 실행 가능한 명령어, 어떤 권한으로 실행할지 정의한다.
Batch File Cleanup:solaris:cmd:::/opt/scripts/foo_cleanup.sh:uid=foo
prof_attr 설정
exec_attr 뿐만 아니라 prof_attf에도 같은 이름으로 선언해줘야 프로파일을 인식한다.
Batch File Cleanup:::foo 소유 배치 로그 파일 정리 위임 프로파일:
user_attr 설정
특정 사용자가 프로파일을 사용할 수 있도록 연결한다.
bar::::profiles=Batch File Cleanup
실제 호출
pfexec을 사용해서 실행해야 만든 "user_attr → prof_attr → exec_attr" 순서로 프로파일을 확인하고 권한을 위임받아 실행하게 된다.
pfexec /opt/scripts/foo_cleanup.sh