파이썬 스크립트 내에서 관리자 권한 확인


15

python 스크립트가 BSD와 같은 OS에서 관리자 권한 (sudo)으로 실행되고 있는지 확인하는 방법은 무엇입니까? 관리자 권한없이 실행하려면 사용자에게 친숙한 경고를 표시해야합니다.

답변:


37

이건 어때? 다음을 확인하십시오 uid == 0.

[kbrandt@kbrandt-admin: ~] python -c 'import os; print os.getuid()'
196677

[kbrandt@kbrandt-admin: ~] sudo python -c 'import os; print os.getuid()'
0

1
나는 실제로 그것을 단축했다 :-). Linux 인증에 대해서도 open을 사용합니다. Windows SID를 해싱하여 큰 UID를 만듭니다.
Kyle Brandt

3

어때요?

import os
username=os.system("whoami")
if username is not "root":
    print "You aren't root"
else:
    print "Hello, "+username

2

문자열 "root"와 사용자 이름을 일치 시키려고 유혹하지 마십시오.

일반적으로 UID의 텍스트 표현을 얻기 위해 덜 효율적인 콜 아웃을 제공하거나 신뢰할 수없는 환경 변수에 의존하게됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.