setuid가 작동하지 않는 이유는 무엇입니까?

마커스 손튼

xyz루트 권한을 사용 하는 사용자 만 내 프로그램을 실행할 수 있도록하고 싶습니다 . 이를 위해 setuid 비트를 다음과 같이 설정합니다.

chmod u+s program1.sh
ls -l program1.sh
rwsr-x--- 1 root house 1299 May 15 23:54 program1.sh

또한 사용자 xyzhouse그룹에 추가 xyz하여 root program1.sh를 실행할 수 있도록했습니다 .

program1.sh에는

id -u

유효 ID를 보여줄 수 있습니다.

program1.sh루트로 실행 하면 root. 그러나 xyz계정으로 실행하면 xyz. 루트 권한으로 실행되지 않은 것 같습니다. 나는 여기서 무엇이 잘못되었는지 모른다.

너 23

setuid 비트가있는 쉘 스크립트 (예 : rwsr-xr-x의 perms)를 실행할 때 스크립트는 스크립트를 소유 한 사용자가 아니라 스크립트를 실행하는 사용자로 실행됩니다. 이것은 어떤 사용자가 실행하는지에 관계없이이를 소유 한 사용자로 실행되는 바이너리 (예 : / usr / bin / passwd)에 대해 setuid가 처리되는 방식과 반대입니다.

이 페이지를 확인하십시오 : https://access.redhat.com/site/solutions/124693

이것은 운영 체제에서 취한 보안 조치입니다. 대신 sudo 와 함께 스크립트를 사용해야합니다 .

스크립트에 setuid를 정말로 사용해야하는 경우 작업을 수행 할 바이너리를 만들 수 있습니다. 새 파일 "program.c"를 만들고 다음 코드를 복사합니다.

   #include <stdio.h>
   #include <stdlib.h>
   #include <sys/types.h>
   #include <unistd.h>
     
   int main()
   {
     setuid(0);
     system("./program.sh"); #This line is dangerous: It allows an attacker to execute arbitrary code on your machine (even by accident).
     return 0;
   }

다음 명령을 사용하여 코드를 컴파일하고 실행합니다.

$ gcc program.c -o program
$ sudo chown root.root program
$ sudo chmod 4755 program
$ ./program

이렇게하면 작동합니다. setuid는 컴파일 된 파일에 대해 작동하며이 파일은 다른 파일을 루트로 실행할 수 있습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

SETUID가 Raspberry Pi에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

setuid가 mount에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

루트가 아닌 사용자와 setuid ()가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

sed가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

indexOf가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

.hover ()가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

CSSArrowPlease가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

pip가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

'DefaultAxesMarkerOrder'가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

free ()가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

REGEX가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

setOnItemLongClickListener가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

removeClass가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

Angularjs가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

VisualStateManager가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

isEOF가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

isdigit ()가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

ActionListener가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

GCC가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

NSMutableArray가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

paintComponent가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

LocalBroadcastManager가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

LocalBroadcastManager가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

getScaledInstance ()가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

JavaScript가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

startActivityForResult가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

swappiness가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

var =-가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

isElementPresent가 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    SETUID가 Raspberry Pi에서 작동하지 않는 이유는 무엇입니까?

  2. 2

    setuid가 mount에서 작동하지 않는 이유는 무엇입니까?

  3. 3

    루트가 아닌 사용자와 setuid ()가 작동하지 않는 이유는 무엇입니까?

  4. 4

    sed가 작동하지 않는 이유는 무엇입니까?

  5. 5

    indexOf가 작동하지 않는 이유는 무엇입니까?

  6. 6

    .hover ()가 작동하지 않는 이유는 무엇입니까?

  7. 7

    CSSArrowPlease가 작동하지 않는 이유는 무엇입니까?

  8. 8

    pip가 작동하지 않는 이유는 무엇입니까?

  9. 9

    'DefaultAxesMarkerOrder'가 작동하지 않는 이유는 무엇입니까?

  10. 10

    free ()가 작동하지 않는 이유는 무엇입니까?

  11. 11

    REGEX가 작동하지 않는 이유는 무엇입니까?

  12. 12

    setOnItemLongClickListener가 작동하지 않는 이유는 무엇입니까?

  13. 13

    removeClass가 작동하지 않는 이유는 무엇입니까?

  14. 14

    Angularjs가 작동하지 않는 이유는 무엇입니까?

  15. 15

    VisualStateManager가 작동하지 않는 이유는 무엇입니까?

  16. 16

    isEOF가 작동하지 않는 이유는 무엇입니까?

  17. 17

    isdigit ()가 작동하지 않는 이유는 무엇입니까?

  18. 18

    ActionListener가 작동하지 않는 이유는 무엇입니까?

  19. 19

    GCC가 작동하지 않는 이유는 무엇입니까?

  20. 20

    NSMutableArray가 작동하지 않는 이유는 무엇입니까?

  21. 21

    paintComponent가 작동하지 않는 이유는 무엇입니까?

  22. 22

    LocalBroadcastManager가 작동하지 않는 이유는 무엇입니까?

  23. 23

    LocalBroadcastManager가 작동하지 않는 이유는 무엇입니까?

  24. 24

    getScaledInstance ()가 작동하지 않는 이유는 무엇입니까?

  25. 25

    JavaScript가 작동하지 않는 이유는 무엇입니까?

  26. 26

    startActivityForResult가 작동하지 않는 이유는 무엇입니까?

  27. 27

    swappiness가 작동하지 않는 이유는 무엇입니까?

  28. 28

    var =-가 작동하지 않는 이유는 무엇입니까?

  29. 29

    isElementPresent가 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관