Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
lima-vm
GitHub Repository: lima-vm/lima
Path: blob/master/pkg/driver/wsl2/boot/02-no-cloud-init-setup.sh
2621 views
1
#!/bin/sh
2
3
# SPDX-FileCopyrightText: Copyright The Lima Authors
4
# SPDX-License-Identifier: Apache-2.0
5
6
# This script replaces the cloud-init functionality of creating a user and setting its SSH keys
7
# when cloud-init is not available
8
[ "$LIMA_CIDATA_NO_CLOUD_INIT" = "1" ] || exit 0
9
10
# create user
11
# shellcheck disable=SC2153
12
useradd -u "${LIMA_CIDATA_UID}" "${LIMA_CIDATA_USER}" -c "${LIMA_CIDATA_COMMENT}" -d "${LIMA_CIDATA_HOME}" -m -s "${LIMA_CIDATA_SHELL}"
13
LIMA_CIDATA_GID=$(id -g "${LIMA_CIDATA_USER}")
14
mkdir "${LIMA_CIDATA_HOME}"/.ssh/
15
chown "${LIMA_CIDATA_UID}:${LIMA_CIDATA_GID}" "${LIMA_CIDATA_HOME}"/.ssh/
16
chmod 700 "${LIMA_CIDATA_HOME}"/.ssh/
17
cp "${LIMA_CIDATA_MNT}"/ssh_authorized_keys "${LIMA_CIDATA_HOME}"/.ssh/authorized_keys
18
chown "${LIMA_CIDATA_UID}:${LIMA_CIDATA_GID}" "${LIMA_CIDATA_HOME}"/.ssh/authorized_keys
19
chmod 600 "${LIMA_CIDATA_HOME}"/.ssh/authorized_keys
20
21
# add $LIMA_CIDATA_USER to sudoers
22
echo "${LIMA_CIDATA_USER} ALL=(ALL) NOPASSWD:ALL" | tee -a /etc/sudoers.d/99_lima_sudoers
23
24
# symlink CIDATA to the hardcoded path for requirement checks (TODO: make this not hardcoded)
25
[ "$LIMA_CIDATA_MNT" = "/mnt/lima-cidata" ] || ln -sfFn "${LIMA_CIDATA_MNT}" /mnt/lima-cidata
26
27