![suid 비트가 쉘이나 펄 스크립트에 아무런 영향을 미치지 않는 이유는 무엇입니까? [복사]](https://linux55.com/image/5468/suid%20%EB%B9%84%ED%8A%B8%EA%B0%80%20%EC%89%98%EC%9D%B4%EB%82%98%20%ED%8E%84%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%20%EC%95%84%EB%AC%B4%EB%9F%B0%20%EC%98%81%ED%96%A5%EC%9D%84%20%EB%AF%B8%EC%B9%98%EC%A7%80%20%EC%95%8A%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
suid 비트를 사용하는 실험으로 apt-get update
bash 스크립트에서 실행할 스크립트를 작성한 다음 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
프로덕션 시스템에서는 이러한 상황을 피해야 합니다.