Add interactive mode for all *user scripts
This commit is contained in:
parent
6db81fda52
commit
4cfd8d01ad
38
adduser
38
adduser
|
@ -3,7 +3,6 @@
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
|
||||||
# Determine if running in interactive mode
|
# Determine if running in interactive mode
|
||||||
interactive = len(sys.argv) == 1
|
interactive = len(sys.argv) == 1
|
||||||
|
|
||||||
|
@ -20,15 +19,8 @@ else:
|
||||||
email = sys.argv[4]
|
email = sys.argv[4]
|
||||||
|
|
||||||
# Get UID
|
# Get UID
|
||||||
if interactive:
|
output = os.popen('getent passwd').read()
|
||||||
custom_uid = input('Would you like to enter a custom UID? (y/N) ')
|
uid = [u for u in range(1000, 10000) if str(u) not in output][0]
|
||||||
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]
|
|
||||||
|
|
||||||
# Password
|
# Password
|
||||||
if interactive:
|
if interactive:
|
||||||
|
@ -88,29 +80,19 @@ if interactive:
|
||||||
# Add user
|
# Add user
|
||||||
if interactive:
|
if interactive:
|
||||||
ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -W -f ' + filename)
|
ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -W -f ' + filename)
|
||||||
if ret != 0:
|
|
||||||
os.remove(filename)
|
|
||||||
exit(0)
|
|
||||||
else:
|
else:
|
||||||
ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -w "' +
|
ret = os.system('ldapadd -D "cn=Manager,dc=exozy,dc=me" -w "' +
|
||||||
sys.argv[6] + '" -f ' + filename)
|
sys.argv[6] + '" -f ' + filename)
|
||||||
if ret != 0:
|
if ret != 0:
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
exit(0)
|
exit(0)
|
||||||
os.system('chown ta180m:ta180m ' + filename)
|
os.system('chown ta180m:ta180m ' + filename)
|
||||||
os.system('mv ' + filename + ' /home/ta180m/git/LDAP/users')
|
os.system('mv ' + filename + ' /home/ta180m/git/LDAP/users')
|
||||||
|
|
||||||
# Configure user
|
# Configure user
|
||||||
os.system('sudo mkhomedir_helper ' + username + ' 077')
|
os.system('sudo mkhomedir_helper ' + username + ' 077')
|
||||||
os.system('sudo -u ' + username + ' mkdir /home/' + username + '/.config')
|
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 +
|
os.system('sudo -u ' + username +
|
||||||
' flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo --user')
|
' xdg-settings set default-web-browser firefox.desktop') # Set default browser
|
||||||
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)
|
|
||||||
|
|
36
deluser
36
deluser
|
@ -1,25 +1,25 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# Determine if running in interactive mode
|
||||||
|
interactive = len(sys.argv) == 1
|
||||||
|
|
||||||
# Get user details
|
# 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:]
|
||||||
|
|
||||||
|
for username in usernames:
|
||||||
# Confirmation
|
# Delete user
|
||||||
confirm = input('OK? (y/n) ')
|
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"')
|
||||||
if confirm != 'y':
|
# Cleanup
|
||||||
print('Cancelled')
|
os.system('sudo rm -rf /home/' + username)
|
||||||
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')
|
|
||||||
|
|
9
moduser
9
moduser
|
@ -1,16 +1,21 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import sys
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
# Determine if running in interactive mode
|
||||||
|
interactive = len(sys.argv) == 1
|
||||||
|
|
||||||
# Get user details
|
# Get user details
|
||||||
username = input('Enter username: ')
|
if interactive:
|
||||||
|
username = input('Enter username: ')
|
||||||
|
else:
|
||||||
|
username = sys.argv[1]
|
||||||
|
|
||||||
if username == 'Manager':
|
if username == 'Manager':
|
||||||
bind_user = 'cn=Manager,dc=exozy,dc=me'
|
bind_user = 'cn=Manager,dc=exozy,dc=me'
|
||||||
else:
|
else:
|
||||||
bind_user = 'uid=' + username + ',ou=People,dc=exozy,dc=me'
|
bind_user = 'uid=' + username + ',ou=People,dc=exozy,dc=me'
|
||||||
|
|
||||||
|
|
||||||
# Modify user
|
# Modify user
|
||||||
os.system('ldapvi --user ' + bind_user)
|
os.system('ldapvi --user ' + bind_user)
|
||||||
|
|
Loading…
Reference in a new issue