2010-01-29 6 views
2

파일에 파이썬에서 setuid 비트가 있는지 확인하려고합니다.파일이 파이썬에서 setuid 루트인지 확인하십시오.

The stat doc에는 S_ISUID 기능이 언급되어 있지만 실제로는 setuid 비트를 읽지 않고 os.chmod()과 만 작동합니다. 그것은 또한 S_IMODE을 나열하지만, ​​나는 그것을 어떻게 해석 할 지 전혀 모른다.

파일을 setuid root bit로 설정했는지 쉽게 확인할 수 있습니까?

답변

7

stat.S_ISUID는 'setuid'의 모드 비트입니다. 통계 결과의 모드를 비교하여 해당 비트가 포함되어 있는지 확인하십시오.

>>> ping = os.stat('/bin/ping') 
>>> ping.st_mode & stat.S_ISUID 
2048 
>>> echo = os.stat('/bin/echo') 
>>> echo.st_mode & stat.S_ISUID 
0 
+1

고맙습니다. 매뉴얼에있는 예제는 모든 예제가'S_ISDIR (mode)'와 같은 것을 사용하므로'S_ISUID (mode)'를 시도했지만 작동하지 않는다는 사실을 아주 분명하게 알 수 있습니다. –

관련 문제