From 4cfd8d01ade7f4c7b7124e1d344340b8f7c42664 Mon Sep 17 00:00:00 2001 From: Anthony Wang Date: Sat, 11 Dec 2021 14:45:12 -0600 Subject: [PATCH] Add interactive mode for all *user scripts --- adduser | 38 ++++++++++---------------------------- deluser | 36 ++++++++++++++++++------------------ moduser | 9 +++++++-- 3 files changed, 35 insertions(+), 48 deletions(-) diff --git a/adduser b/adduser index b500079..e910b85 100755 --- a/adduser +++ b/adduser @@ -3,7 +3,6 @@ import sys import os - # Determine if running in interactive mode interactive = len(sys.argv) == 1 @@ -20,15 +19,8 @@ else: email = sys.argv[4] # Get UID -if interactive: - custom_uid = input('Would you like to enter a custom UID? (y/N) ') -else: - custom_uid = 'n' -if custom_uid == 'y' or custom_uid == 'Y': - uid = input('Enter UID: ') -else: - output = os.popen('getent passwd').read() - uid = [u for u in range(1000, 10000) if str(u) not in output][0] +output = os.popen('getent passwd').read() +uid = [u for u in range(1000, 10000) if str(u) not in output][0] # Password if interactive: @@ -88,29 +80,19 @@ if interactive: # Add user if interactive: ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -W -f ' + filename) - if ret != 0: - os.remove(filename) - exit(0) else: ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -w "' + sys.argv[6] + '" -f ' + filename) - if ret != 0: - os.remove(filename) - exit(0) - os.system('chown ta180m:ta180m ' + filename) - os.system('mv ' + filename + ' /home/ta180m/git/LDAP/users') +if ret != 0: + os.remove(filename) + exit(0) +os.system('chown ta180m:ta180m ' + filename) +os.system('mv ' + filename + ' /home/ta180m/git/LDAP/users') # Configure user os.system('sudo mkhomedir_helper ' + username + ' 077') os.system('sudo -u ' + username + ' mkdir /home/' + username + '/.config') +os.system('sudo -u ' + username + ' flatpak remote-add --if-not-exists flathub \ + https://dl.flathub.org/repo/flathub.flatpakrepo --user') # Set up Flatpak os.system('sudo -u ' + username + - ' flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo --user') -os.system('sudo -u ' + username + - ' xdg-settings set default-web-browser firefox.desktop') - -# Set up rootless Podman -# https://wiki.archlinux.org/title/Podman#Set_subuid_and_subgid -start = str((int(uid) - 999) * 100000) -end = str(int(start) + 65535) # Allocate 65536 UIDs -os.system('sudo usermod --add-subuids ' + start + '-' + end + - ' --add-subgids ' + start + '-' + end + ' ' + username) + ' xdg-settings set default-web-browser firefox.desktop') # Set default browser diff --git a/deluser b/deluser index 2510f0d..d7127af 100755 --- a/deluser +++ b/deluser @@ -1,25 +1,25 @@ #!/usr/bin/python3 +import sys import os +# Determine if running in interactive mode +interactive = len(sys.argv) == 1 # Get user details -username = input('Enter username: ') +if interactive: + usernames = [input('Enter username: ')] + # Confirmation + confirm = input('OK? (y/n) ') + if confirm != 'y': + print('Cancelled') + exit(0) +else: + usernames = sys.argv[1:] - -# Confirmation -confirm = input('OK? (y/n) ') - -if confirm != 'y': - print('Cancelled') - exit(0) - - -# Delete user -os.system('ldapdelete -W -D "cn=Manager,dc=exozy,dc=me" "uid=' + username + - ',ou=People,dc=exozy,dc=me" "cn=' + username + ',ou=Group,dc=exozy,dc=me"') - -# Cleanup -os.system('sudo rm -rf /home/' + username) -os.system('sudo sed -i \'/' + username + '/d\' /etc/subuid') -os.system('sudo sed -i \'/' + username + '/d\' /etc/subgid') +for username in usernames: + # Delete user + os.system('ldapdelete -W -D "cn=Manager,dc=exozy,dc=me" "uid=' + username + + ',ou=People,dc=exozy,dc=me" "cn=' + username + ',ou=Group,dc=exozy,dc=me"') + # Cleanup + os.system('sudo rm -rf /home/' + username) diff --git a/moduser b/moduser index ee89768..92689c0 100755 --- a/moduser +++ b/moduser @@ -1,16 +1,21 @@ #!/usr/bin/python3 +import sys import os +# Determine if running in interactive mode +interactive = len(sys.argv) == 1 # Get user details -username = input('Enter username: ') +if interactive: + username = input('Enter username: ') +else: + username = sys.argv[1] if username == 'Manager': bind_user = 'cn=Manager,dc=exozy,dc=me' else: bind_user = 'uid=' + username + ',ou=People,dc=exozy,dc=me' - # Modify user os.system('ldapvi --user ' + bind_user)