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