From 1a081bfab0da8d8aa4ca4c688f73762dda553374 Mon Sep 17 00:00:00 2001 From: James Valleroy Date: Mon, 29 Dec 2014 22:21:00 -0500 Subject: [PATCH] Create POSIX user during firstboot. Closes #31. --- actions/create-user | 38 ++++++++++++++++++++++++++++++ plinth/modules/first_boot/forms.py | 4 ++++ 2 files changed, 42 insertions(+) create mode 100755 actions/create-user diff --git a/actions/create-user b/actions/create-user new file mode 100755 index 000000000..748ba4025 --- /dev/null +++ b/actions/create-user @@ -0,0 +1,38 @@ +#!/bin/bash +# +# This file is part of Plinth. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# + +username="$1" +password="$2" + +adduser --disabled-password --gecos "" "$username" +if [ $? -ne 0 ]; then + echo "Failed to create user" + exit +fi + +adduser "$username" sudo +if [ $? -ne 0 ]; then + echo "Failed to add user to sudo group" + exit +fi + +echo "$username:$password" | chpasswd +if [ $? -ne 0 ]; then + echo "Failed to set user password" + exit +fi diff --git a/plinth/modules/first_boot/forms.py b/plinth/modules/first_boot/forms.py index 44d777d2c..a85265dc3 100644 --- a/plinth/modules/first_boot/forms.py +++ b/plinth/modules/first_boot/forms.py @@ -20,6 +20,7 @@ from django.contrib import auth, messages from django.core import validators from gettext import gettext as _ +from plinth import actions from plinth.modules.config import config @@ -58,6 +59,9 @@ than 63 characters in length.'), user.set_password(self.cleaned_data['password']) if commit: user.save() + actions.superuser_run( + 'create-user', + [user.username, self.cleaned_data['password']]) self.login_user() return user