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
|
from sys import argv
|
||||||
|
|
||||||
|
|
||||||
def adduser(username, firstname, lastname, email, password):
|
def adduser(username, firstname, lastname, email, pubkey, password):
|
||||||
"""Add a new user"""
|
"""Add a new user"""
|
||||||
|
|
||||||
# Get UID
|
# Get UID
|
||||||
|
@ -53,33 +53,26 @@ cn: {username}
|
||||||
gidNumber: {uid}'''
|
gidNumber: {uid}'''
|
||||||
|
|
||||||
# Write to file
|
# Write to file
|
||||||
filename = username + '.ldif'
|
with open('user.ldif', 'w') as f:
|
||||||
with open(filename, 'w') as f:
|
|
||||||
f.write(ldif)
|
f.write(ldif)
|
||||||
|
|
||||||
# Add user
|
# 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:
|
if ret != 0:
|
||||||
return
|
return
|
||||||
remove(filename)
|
remove('user.ldif')
|
||||||
|
|
||||||
# Configure and set up user
|
# Configure and set up user
|
||||||
# Make home directory
|
# Make home directory
|
||||||
run(['sudo', 'mkhomedir_helper', username, '077'])
|
run(['mkhomedir_helper', username, '077'])
|
||||||
run(['sudo', '-u', username, 'mkdir', '/home/' + username + '/.config'])
|
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
|
# Set up Flatpak
|
||||||
# This is a workaround for the error "flatpak refusing to operate under sudo with --user"
|
# This is a workaround for the error "flatpak refusing to operate under sudo with --user"
|
||||||
run(['sudo', '-u', username, 'sh', '-c',
|
run(['sudo', '-u', username, 'sh', '-c',
|
||||||
'flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo --user'])
|
'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
|
# Generate temporary password
|
||||||
password = token_urlsafe(6)
|
adduser(*argv[1:], token_urlsafe(6))
|
||||||
print('Temporary password:', password)
|
|
||||||
|
|
||||||
adduser(*argv[1:], password)
|
|
||||||
|
|
Loading…
Reference in a new issue