summaryrefslogtreecommitdiff
path: root/azurelinuxagent/distro/default/osutil.py
diff options
context:
space:
mode:
Diffstat (limited to 'azurelinuxagent/distro/default/osutil.py')
-rw-r--r--azurelinuxagent/distro/default/osutil.py23
1 files changed, 9 insertions, 14 deletions
diff --git a/azurelinuxagent/distro/default/osutil.py b/azurelinuxagent/distro/default/osutil.py
index 8e3fb77..00a57cc 100644
--- a/azurelinuxagent/distro/default/osutil.py
+++ b/azurelinuxagent/distro/default/osutil.py
@@ -117,22 +117,16 @@ class DefaultOSUtil(object):
"retcode:{1}, "
"output:{2}").format(username, retcode, out))
- def chpasswd(self, username, password, use_salt=True, salt_type=6,
- salt_len=10):
+ def chpasswd(self, username, password, crypt_id=6, salt_len=10):
if self.is_sys_user(username):
raise OSUtilError(("User {0} is a system user. "
"Will not set passwd.").format(username))
- passwd_hash = textutil.gen_password_hash(password, use_salt, salt_type,
- salt_len)
- try:
- passwd_content = fileutil.read_file(self.passwd_file_path)
- passwd = passwd_content.split("\n")
- new_passwd = [x for x in passwd if not x.startswith(username)]
- new_passwd.append("{0}:{1}:14600::::::".format(username, passwd_hash))
- fileutil.write_file(self.passwd_file_path, "\n".join(new_passwd))
- except IOError as e:
+ passwd_hash = textutil.gen_password_hash(password, crypt_id, salt_len)
+ cmd = "usermod -p '{0}' {1}".format(passwd_hash, username)
+ ret, output = shellutil.run_get_output(cmd, log_cmd=False)
+ if ret != 0:
raise OSUtilError(("Failed to set password for {0}: {1}"
- "").format(username, e))
+ "").format(username, output))
def conf_sudoer(self, username, nopasswd):
# for older distros create sudoers.d
@@ -344,9 +338,10 @@ class DefaultOSUtil(object):
raise OSUtilError("Failed to umount dvd.")
def eject_dvd(self, chk_err=True):
- retcode = shellutil.run("eject")
+ dvd = self.get_dvd_device()
+ retcode = shellutil.run("eject {0}".format(dvd))
if chk_err and retcode != 0:
- raise OSUtilError("Failed to eject dvd")
+ raise OSUtilError("Failed to eject dvd: ret={0}".format(retcode))
def load_atappix_mod(self):
if self.is_atapiix_mod_loaded():