Make adduser script save SSH key
This commit is contained in:
parent
d6df69b701
commit
cab5728a63
25
adduser
25
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))
|
||||
|
|
Loading…
Reference in a new issue