From 35b363698bca90cae05be9e8079976bfdce7daae Mon Sep 17 00:00:00 2001 From: Paul Belanger Date: Mon, 23 Nov 2015 21:05:35 -0500 Subject: [PATCH] Add DIB_LOCAL_CONFIG_USERNAME to local-config Allow a user to override the username on where .ssh/authorized_keys is installed. Change-Id: I030d5a89260aed8b23a35c4cdc2d67629934b076 Signed-off-by: Paul Belanger --- elements/local-config/README.rst | 8 ++++++++ elements/local-config/environment.d/62-ssh-key | 1 + elements/local-config/install.d/62-ssh-key | 16 +++++++++++----- 3 files changed, 20 insertions(+), 5 deletions(-) create mode 100644 elements/local-config/environment.d/62-ssh-key diff --git a/elements/local-config/README.rst b/elements/local-config/README.rst index 80a88d502..4e3eb8774 100644 --- a/elements/local-config/README.rst +++ b/elements/local-config/README.rst @@ -3,3 +3,11 @@ local-config ============ Copies local user settings such as .ssh/authorized\_keys and $http\_proxy into the image. + +Environment Variables +--------------------- + +DIB_LOCAL_CONFIG_USERNAME + :Required: No + :Default: root + :Description: Username used when installing .ssh/authorized\_keys. diff --git a/elements/local-config/environment.d/62-ssh-key b/elements/local-config/environment.d/62-ssh-key new file mode 100644 index 000000000..cdb33da28 --- /dev/null +++ b/elements/local-config/environment.d/62-ssh-key @@ -0,0 +1 @@ +export DIB_LOCAL_CONFIG_USERNAME=${DIB_LOCAL_CONFIG_USERNAME:-root} diff --git a/elements/local-config/install.d/62-ssh-key b/elements/local-config/install.d/62-ssh-key index c66328a55..d8a9db179 100755 --- a/elements/local-config/install.d/62-ssh-key +++ b/elements/local-config/install.d/62-ssh-key @@ -8,9 +8,15 @@ fi set -eu set -o pipefail -if [ -e "/tmp/in_target.d/ssh-authorized-keys" ]; then - mkdir -p /root/.ssh - cat /tmp/in_target.d/ssh-authorized-keys >> /root/.ssh/authorized_keys - chmod 0700 /root/.ssh - chmod 0600 /root/.ssh/authorized_keys +if [ "$DIB_LOCAL_CONFIG_USERNAME" == "root" ]; then + DIR_NAME=${DIB_LOCAL_CONFIG_USERNAME} +else + DIR_NAME=home/${DIB_LOCAL_CONFIG_USERNAME} +fi + +if [ -e "/tmp/in_target.d/ssh-authorized-keys" ]; then + mkdir -p /${DIR_NAME}/.ssh + cat /tmp/in_target.d/ssh-authorized-keys >> /${DIR_NAME}/.ssh/authorized_keys + chmod 0700 /${DIR_NAME}/.ssh + chmod 0600 /${DIR_NAME}/.ssh/authorized_keys fi