diff --git a/adduser b/adduser index 2ba0b1d..ad029eb 100755 --- a/adduser +++ b/adduser @@ -8,7 +8,7 @@ from subprocess import run, call, check_output from sys import argv -def adduser(username, firstname, lastname, email, password): +def adduser(username, firstname, lastname, email, pubkey, password): """Add a new user""" # Get UID @@ -53,33 +53,26 @@ cn: {username} gidNumber: {uid}''' # Write to file - filename = username + '.ldif' - with open(filename, 'w') as f: + with open('user.ldif', 'w') as f: f.write(ldif) # Add user - ret = call(['ldapadd', '-y', '/etc/ldappass', '-D', 'cn=Manager,dc=exozy,dc=me', '-f', filename]) + ret = call(['ldapadd', '-y', '/etc/ldappass', '-D', 'cn=Manager,dc=exozy,dc=me', '-f', 'user.ldif']) if ret != 0: return - remove(filename) + remove('user.ldif') # Configure and set up user # Make home directory - run(['sudo', 'mkhomedir_helper', username, '077']) - run(['sudo', '-u', username, 'mkdir', '/home/' + username + '/.config']) + run(['mkhomedir_helper', username, '077']) + run(['sudo', '-u', username, 'mkdir', f'/home/{username}/.ssh']) + run(['sudo', '-u', username, 'tee', f'/home/{username}/.ssh/authorized_keys'], input=pubkey.encode('utf-8')) + run(['sudo', '-u', username, 'tee', f'/home/{username}/password'], input=password.encode('utf-8')) # Set up Flatpak # This is a workaround for the error "flatpak refusing to operate under sudo with --user" run(['sudo', '-u', username, 'sh', '-c', 'flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo --user']) - # Set default browser - # xdg-settings uses KDE_SESSION_VERSION to determine which KDE commands to use - # For instance, kwriteconfig5 instead of kwriteconfig from Plasma 4 - run(['sudo', '-u', username, 'env', 'KDE_SESSION_VERSION=5', 'xdg-settings', - 'set', 'default-web-browser', 'firefox.desktop']) # Generate temporary password -password = token_urlsafe(6) -print('Temporary password:', password) - -adduser(*argv[1:], password) +adduser(*argv[1:], token_urlsafe(6))