2017-03-28 11 views
0

아래 이미지에서 알 수 있듯이 emerald_setup 스크립트의 소유권을 root : root로 변경하고 SUID도 설정했습니다.SUID로 실행 가능한 Ruby gem이 정상적으로 작동하지 않습니다.

enter image description here

내가 보석을 설치하고이 스크립트를 검사 할 때, 그것은 edvaldo 속한 일 : edvaldo (내 사용자 이름)과는 전혀 SUID가 없습니다!

enter image description here

내가 무슨 일이 일어나고 정확히 모르겠지만,이 스크립트는 /etc/hosts을 변경합니다 및 일부 방화벽 규칙을 만듭니다. 이 작업에는 루트 권한이 필요합니다.

그래서, 내 질문은 :

  • 나는 SUID의 경우 실종 무엇입니까?

  • 보석 실행 파일에 SUID가 설정되어 있는지 확인하려면 어떻게해야합니까? 보석의 실행 파일이 사용자 공간에 설치되어있는 위치이기 때문에, 물론

은 내가

$ sudo emerald_setup 

를 사용하여이 스크립트를 실행하도록 사용자에게 질문을 할 수 알고 있지만, 이것은 또 다른 문제로 나를 이끌 것 수퍼 유저의 경로가 아니며 수퍼 유저 권한이 필요합니다.

제안 사항?

답변

1

gem (또는 tarball)에 suid 권한으로 프로그램/스크립트를 압축하여 일반 사용자로 풀 때 해당 권한을 복원 할 수 없습니다. 어떤 시점에서 보석을 설치하는 사람은 루트 액세스 용 비밀번호를 제공해야합니다. gake Rakefile의 install 타겟이 su (do) 패스워드를 요구하는 스크립트를 실행 한 다음 sudo를 사용하여 실행해야하는 명령어를 실행함으로써 보석이 설치 될 때 이것을 처리 할 수 ​​있습니다 루트.