suid 비트가 쉘이나 펄 스크립트에 아무런 영향을 미치지 않는 이유는 무엇입니까? [복사]

suid 비트가 쉘이나 펄 스크립트에 아무런 영향을 미치지 않는 이유는 무엇입니까? [복사]

suid 비트를 사용하는 실험으로 apt-get updatebash 스크립트에서 실행할 스크립트를 작성한 다음 suid 비트를 설정하여 실행하거나 ~/update다른 작업을 수행해 보았습니다.

apt-get update이는 무엇이든 될 수 있습니다. 권한 있는 소켓에서 수신하는 일부 프로그램, 쓰기 /또는 루트로 실행해야 하는 다른 프로그램 등이 될 수 있습니다. 여기서 잡지 마세요 apt-get update.

첫 번째 시도는 이랬으나 실패하고 실패했습니다 can't get lock, are you root?. 이유는 다음과 같습니다.setuid 비트는 bash에 영향을 미치지 않는 것 같습니다..

#!/bin/bash
apt-get update

그래서 쉘을 우회하려고 생각했지만, 같은 이유로 그것도 작동하지 않았습니다.

#!/usr/bin/perl
system("apt-get", "update").

내 권한은 정확합니다(내가 아는 한). - sudo chmod 4755 ~/update.

내가 setuid를 오해하고 있는 걸까요, 아니면 단순한 내용을 놓치고 있는 걸까요?

답변1

suid bit장애가 있는스크립트대부분의 경우리눅스와 유닉스배포판은 여러 보안 허점을 열어주기 때문입니다.

그러나 기본 명령과 바이너리 실행 파일은 suid bit.

답변2

이것이 작동하려면 다음을 시도하십시오.

cp /bin/bash /bin/mybash
chmod 4755 /bin/mybash 

스크립트 /bin/mybash(첫 번째 줄)에서 shebang으로 사용합니다.#!/bin/mybash

프로덕션 시스템에서는 이러한 상황을 피해야 합니다.

관련 정보