2011-08-15 2 views
0

여기에 이상한 문제가 있습니다. 불행히도 나는 벤더에 속하기 때문에 여기에 코드를 게시 할 자유가 없지만, 필요하지 않을 정도로 정보를 충분하게 제공 할 수 있기를 바랍니다.UNIX/Linux 셸 스크립트가 현재 사용자를 '종료하고 로그 아웃 할 수 있습니까?

여기 누군가가 '밥'이 "some_script.sh"를 실행할 수 있는지 여부를 확실하게 말할 수 있을지 설명 할 수 있으며 세션을 MID 방식으로 종료하고 나머지는 MID ('밥'으로 가장 할 수있는 su'd 원래 사람)으로 계속됩니다.

나는 이것이 가능하지 않다는 것을 확신하지만, 그렇지 않은 사람은 누구입니까? 명심해야 할

것들 : 이러한 01.sql 10.sql까지 있다고 가정 할 수있는 데이터베이스

  • 로 변경 (직렬)

    1. scriptA.sh 실행 여러 다른 프로세스.
    2. 'sqlplus'를 적절한 인수와 함께 실행하여이를 수행합니다.
  • 'bql'은 'sqlplus'바이너리를 사용할 수 있지만 'pete'는 사용할 수 없습니다.
  • 사용자 pete는 현재 사용자 'bob'에 su'd되어 있습니다. Pete에는 PATH에 sqlplus가 없기 때문입니다.
  • 우리가 스크립트/데이터베이스에서 본 출력은 '01 .sql '이 성공적으로 실행되었지만 다른 스크립트는 실행되지 않았다고 제안했습니다.'sqlplus 명령을 찾을 수 없음 '오류로 실패했습니다. UID를 전환하려고 시도하는 스크립트를 사용
  • 건배,

    +0

    그게 유일한 이유입니까? 단지'slapate sqlplus | grep bin'을 경로에 추가하십시오. – Dave

    +0

    와우 빠른 응답 :) 불행히도 이것은 우리에게 옵션이 아닙니다. 실제로 'bob'은 'sqlplus'를 실행하기 위해 필요한 모든 권한과 경로 별명을 가진 기능적인 사용자입니다. 다른 것들 사이에서, 그는 여러 사용자들에 의해 공유됩니다. – Sandipan

    +0

    그러면 이미 문제를 발견 한 것 같습니다. pete는 sqlplus를 실행할 수 없으며 쉘 스크립트가 그를 원하면 문제가 있습니다. 왜 밥은 모든 것을 굴리지 않을 수 있습니까? – Dave

    답변

    2

    귀하가 제공 한 정보에서 "아니요. 불가능합니다."

    사용자 '피트'su이 '밥'인 경우 '밥'으로 새 셸을 만듭니다. 새 쉘에서 시작된 모든 프로세스는 'bob'으로 실행됩니다. 'bob'으로 실행되는 스크립트는 사용자/UID를 'pete'로 변경할 수 없습니다. 'bob'으로 시작된 프로세스는 사용자/UID (실행 파일의 setuid 비트가 없음)를 변경할 수 없습니다.

    스크립트의 일부가 쉘 환경을 수정하고 스크립트 내에서 PATH 또는 다른 오류를 변경하는 경우가 훨씬 더 많습니다.

    +0

    우수 - 답변 주셔서 감사합니다. 사무실에서 여기에 대한 합의는 스크립트가 어떻게 든 너무 많은 종료 명령을 가지고있을 수 있으므로 사용자를 전환하는 것이었지만 스크립트에서 몇 개의 종료 명령이 있는지에 상관없이 ('트랩'에도 불구하고) 출구 1 "...."), 이것은 근본적으로 불가능합니다. 귀하의 답변은 다른 의견과 함께 제 이해를 확인하고 문제는 다른 곳에 있습니다. – Sandipan

    1

    실패에 운명을 정한다. 공유 로그인이 필요한 사용 권한 시스템은 정의 상 안전하지 않습니다.

    의도 한대로 AIX 권한 시스템을 사용하십시오. 작업을 수행하기 위해 bob의 자격 증명이 필요한 경우 Sandipan이 실행할 수있는 프로그램이 있어야합니다. 그러면 Bob의 자격 증명이 필요한 권한 만 bob 권한으로 승격됩니다.

    이것은 Principle of Least Privilege이며 작업을 처리하는 방법입니다. 공유 암호는 해킹을 악용하는 나쁜 해킹입니다.

    +0

    +1 원칙 – zellio

    +0

    입력 해 주셔서 감사 드리며 귀하가 말하는 것을 100 % 동의합니다. - 그런 식으로 스크립트를 작성하지 않겠습니다 ....하지만 명확히하기 위해 이것은 무엇에 관한 질문이 아닙니다. 좋은/나쁜 디자인. 우리는 스크립트가 UID를 AIX에서 실수로 또는 다른 방법으로 전환 할 수 있는지 여부를 알아야합니다. 이것은 이것이 가능한지 여부에 대한 나의 호기심과 조사를 돕기위한 것입니다. – Sandipan

    +0

    공정한 '응석, 그 이유는 다른 대답을 upvoted. – msw

    관련 문제