Merge pull request #49 from CanonicalLtd/patch-is_root-hdparm

Checks if run as root before accessing hdparm
This commit is contained in:
Adam Stokes 2015-09-28 10:49:54 -04:00
commit b97e51d70a
2 changed files with 18 additions and 6 deletions

View File

@ -196,12 +196,15 @@ class FilesystemController(ControllerPolicy):
def show_disk_information(self, device):
""" Show disk information, requires sudo/root
"""
out = utils.run_command("hdparm -i {}".format(device))
log.debug(out)
if out['status'] != 0:
result = out['err']
if not utils.is_root():
result = "hdparm requires root permission."
else:
result = out['output']
out = utils.run_command("hdparm -i {}".format(device))
log.debug(out)
if out['status'] != 0:
result = out['err']
else:
result = out['output']
disk_info_view = DiskInfoView(self.model,
self.signal,
result)
@ -212,4 +215,3 @@ class FilesystemController(ControllerPolicy):
log.debug('forcing is_uefi True beacuse of options')
return True
return os.path.exists('/sys/firmware/efi')

View File

@ -113,3 +113,13 @@ def crypt_password(passwd, algo='SHA-512'):
salt = 16 * ' '
salt = ''.join([random.choice(salt_set) for c in salt])
return crypt.crypt(passwd, algos[algo] + salt)
def is_root():
""" Returns root or if sudo user exists
"""
sudo_user = os.getenv('SUDO_USER', None)
if os.geteuid() != 0 or not sudo_user:
return False
return True