kiểm tra quyền quản trị trong tập lệnh python


15

Làm cách nào để kiểm tra xem tập lệnh python của tôi có chạy dưới quyền Quản trị viên (sudo) trong HĐH giống BSD không? Cần hiển thị cảnh báo thân thiện với người dùng để nó được thực thi mà không có quyền quản trị.

Câu trả lời:


37

Còn cái này thì sao? Kiểm tra nếu 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
Tôi thực sự rút ngắn nó :-). Tôi sử dụng tương tự mở để xác thực Linux, tạo ra một UID lớn bằng cách băm Windows SID.
Kyle Brandt

3

Thế còn cái đó:

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

2

Đừng cố kết hợp tên người dùng với chuỗi "root".

Nói chung, bạn sẽ phải cung cấp các chú thích kém hiệu quả hơn để có được biểu diễn bằng văn bản của UID hoặc bạn sẽ dựa vào các biến môi trường có thể không đáng tin cậy.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.