Skip to content

Commit

Permalink
Report unknown root status if getwindowsversion > 5
Browse files Browse the repository at this point in the history
Apparently the situation is much more complicated in newer versions, so
until someone more knowledgable can help, don't try to determine
superuser status there.

Signed-off-by: Rob Browning <[email protected]>
  • Loading branch information
rlbdv committed Sep 10, 2016
1 parent 39685ae commit 461b5b4
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
8 changes: 8 additions & 0 deletions lib/bup/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,8 +284,16 @@ def detect_fakeroot():
return os.getenv("FAKEROOTKEY") != None


_warned_about_superuser_detection = None
def is_superuser():
if sys.platform.startswith('cygwin'):
if sys.getwindowsversion()[0] > 5:
# Sounds like situation is much more complicated here
global _warned_about_superuser_detection
if not _warned_about_superuser_detection:
log("can't detect root status for OS version > 5; assuming not root")
_warned_about_superuser_detection = True
return False
import ctypes
return ctypes.cdll.shell32.IsUserAnAdmin()
else:
Expand Down
6 changes: 6 additions & 0 deletions t/root-status
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@ exec "$bup_python" "$0" ${1+"$@"}
"""
# end of bup preamble

from sys import stderr
import sys


if sys.platform.startswith('cygwin'):
if sys.getwindowsversion()[0] > 5:
# Sounds like the situation is much more complicated here
print >> stderr, "can't detect root status for OS version > 5; assuming not root"
print 'none'
import ctypes
if ctypes.cdll.shell32.IsUserAnAdmin():
print 'root'
Expand Down

0 comments on commit 461b5b4

Please sign in to comment.