From: dev Date: Tue, 18 Oct 2022 08:44:17 +0000 (+0000) Subject: FirstRelease X-Git-Url: https://www.chovits.jp/git/?a=commitdiff_plain;h=e2770f02530955946627a04bbaccee237682ff6b;p=chroot_mk.git FirstRelease --- diff --git a/useradd.sh b/useradd.sh new file mode 100755 index 0000000..69836ae --- /dev/null +++ b/useradd.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +##################################################################################### +# +# chroot 環境にユーザーを追加する +# ログインユーザー情報を関連ファイルに追加する +# +# 使用上の注意 +# - chroot環境を構築後に、このスクリプトを実行すること +# - 既存ユーザーを対象。新規ユーザーの場合は事前に、'useradd' しておくこと +# +# $Id: useradd.sh,v 1.1 2022/10/18 08:44:17 dev Exp $ +# +##################################################################################### + +# Settings +# --- 設定変更 ここから --- +# chroot を作成するディレクトリを指定 +CHG_ROOT=/chroot + +# --- ここまで --- + +# Init +FLG=0 +EXEC_CMD=( + /usr/bin/install + /usr/bin/id +) + +for valf in ${EXEC_CMD[@]} +do + if [ ! -x $valf ]; then + echo "File ($valf) not found" + FLG=1 + fi +done + +if [ $FLG -eq 1 ]; then + echo "--- Error ---" + exit 1 +fi + +if [ -z $1 ]; then + echo "Undefined Username" + echo "$0 " + exit 1 +fi + +USER=$1 +id $USER > /dev/null 2>&1 +if [ $? -ne 0 ]; then + echo "User $USER not found" + echo "Create User $USER" + exit 1 +fi +GROUP=`id -gn $USER` + +# Main + +test ! -d ${CHG_ROOT}/home/$USER && install -m 0700 -o $USER -g root -d ${CHG_ROOT}/home/$USER +test ! -d ${CHG_ROOT}/home/${USER}/.ssh && install -m 0700 -o $USER -g root -d ${CHG_ROOT}/home/${USER}/.ssh + +if [ ! -f ${CHG_ROOT}/home/${USER}/.ssh/authorized_keys -a -f /home/${USER}/.ssh/authorized_keys ]; then + install -m 0600 -o $USER -g root /home/${USER}/.ssh/authorized_keys ${CHG_ROOT}/home/${USER}/.ssh/authorized_keys +fi + +if [ -d /home/${USER}/.ssh ]; then + mv /home/${USER}/.ssh /home/${USER}/.ssh.bak + ln -s ${CHG_ROOT}/home/${USER}/.ssh /home/${USER}/.ssh +fi + +grep ${CHG_ROOT}/etc/passwd -e "^$USER:" >/dev/null 2>&1 +test $? -ne 0 && grep /etc/passwd -e "^$USER" >> ${CHG_ROOT}/etc/passwd + +grep ${CHG_ROOT}/etc/group -e "^$GROUP:" >/dev/null 2>&1 +test $? -ne 0 && grep /etc/group -e "^$GROUP" >> ${CHG_ROOT}/etc/group + +grep ${CHG_ROOT}/etc/shadow -e "^$USER:" >/dev/null 2>&1 +test $? -ne 0 && grep /etc/shadow -e "^$USER" >> ${CHG_ROOT}/etc/shadow