write rename_user standalone script

pull/28/head
nate 2018-02-23 13:58:54 -08:00
parent 33fee98309
commit 0d8b370b5d
2 changed files with 38 additions and 0 deletions

View File

@ -0,0 +1,37 @@
#!/usr/bin/env python3
"""This script wraps the usermod command to allow user account renames via sudoers."""
import os
import sys
import subprocess
def rename_user(username, new_username):
# usermod -l new_username -m -d /home/{new_username} username
args = [
'usermod',
'-l',
new_username,
'-m',
'-d',
os.path.join('/home', new_username),
username
]
subprocess.run(args, check=True)
def main(argv):
if len(argv) < 3:
print('[rename_user] Too few arguments passed.', file=sys.stderr)
return 1
try:
rename_user(argv[1], argv[2])
except subprocess.CalledProcessError as e:
print('[rename_user] {}'.format(e), file=sys.stderr)
return 2
return 0
if __name__ == '__main__':
exit(main(sys.argv))

View File

@ -34,6 +34,7 @@ def validate_displayname(display_name):
if not DISPLAY_NAME_RE.match(display_name):
raise ValidationError("Valid characters: a-z, A-Z, 0-9, -, _, and '.")
def validate_pubkey(pubkey):
# TODO see if I can get the type out
key = ssh.SSHKey(pubkey, strict_mode=False, skip_option_parsing=True)