ตรวจสอบสิทธิ์ผู้ดูแลระบบภายในสคริปต์ไพ ธ อน


15

ฉันจะตรวจสอบว่าสคริปต์ python ของฉันทำงานภายใต้สิทธิ์ผู้ดูแลระบบ (sudo) ภายใต้ระบบปฏิบัติการ BSD ได้อย่างไร จำเป็นต้องแสดงคำเตือนที่ใช้งานง่ายเพื่อให้สามารถดำเนินการได้โดยไม่มีสิทธิ์ของผู้ดูแลระบบ

คำตอบ:


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 ซึ่งสร้าง UID ขนาดใหญ่โดยการแฮช Windows SID
Kyle Brandt

3

วิธีการเกี่ยวกับที่หนึ่ง:

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

2

อย่าล่อลวงให้จับคู่ชื่อผู้ใช้กับสตริง "รูท"

โดยทั่วไปคุณจะต้องให้คำบรรยายภาพที่มีประสิทธิภาพน้อยลงเพื่อให้ได้การแสดงข้อความของ UID หรือคุณจะต้องพึ่งพาตัวแปรสภาพแวดล้อมซึ่งอาจไม่น่าเชื่อถือ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.