시스템에 사용자를 추가하지 못하는 상황에서
사용자 별로 홈디렉토리 환경을 만들어야 하는 일이 생겨
가상 사용자용
1. 대표 사용자 (test) 의 .bashrc 에 login.sh 를 연결.
/home/test/.bashrc 파일
--------------------------------------------------------------------------------
...
PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[31m\]\h\[\e[0m\] \[\e[33m\]\w\[\e[0m\] \$ '
. bin/login.sh
================================================================================
/home/test/bin/login.sh 파일
--------------------------------------------------------------------------------
#! /usr/bin/bash
HOME_ROOT=/home
NEW_HOME=
banner()
{
echo
echo "Welcome to $(hostname)."
echo "If you want to remain as '$USER' user, press Control+C"
echo
}
check_login()
{
local user=
#local pass=
read -p "User name: " user
#read -sp "Password: " pass
[ -z "$user" ] && return 1
[ "$user" = "$USER" ] && return 1
[ ${user:0:1} = "." ] && return 1
[ -d "$HOME_ROOT/$user" ] || return 1
NEW_HOME="$HOME_ROOT/$user"
return 0
}
# main
banner
# try to check up to 3 times
for t in 1 2 3; do
check_login && break
done
[ -z "$NEW_HOME" ] && exit
export HOME="$NEW_HOME"
export USER=$(basename "$HOME")
export HISTFILE=$HOME/.bash_history
unset HOME_ROOT NEW_HOME banner check_login
cd "$HOME"
[ -f .bashrc ] && . .bashrc
history -ac $HISFILE
================================================================================
2. 추가 사용자용 홈디렉토리 생성
$ mkdir -p /home/test1/.{git,ssh}
$ touch /home/test1/.{bash,input,vim}rc
3. 로그인 및 테스트
--------------------------------------------------------------------------------
User name: test1
$ pwd
/home/test1
$ echo $USER
test1
$ whoami
test # 시스템이 인식하는 사용자는 바뀌지 않는다.
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/test/.ssh/id_rsa): # 역시 바뀌지 않는다.
^C
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/test1/.ssh/id_rsa.
Your public key has been saved in /home/test1/.ssh/id_rsa.pub.
The key fingerprint is:
...
$ git config --global user.email test1@test.com
$ cat ~/.gitconfig
[user]
email = test1@test.com
================================================================================
일단은 이 정도로 만족
# 자동 로그인 매크로 - teraterm
login.ttl
--------------------------------------------------------------------------------
; Connection configuration
Host = 'host'
UserName = 'test'
VirtualUser = 'test1'
PrivateKeyfile = '암호키 파일 경로'
Prompt = 'User name: '
; Build connect message
Msg = Host
strconcat Msg ':22 /ssh /user='
strconcat Msg UserName
strconcat Msg ' /auth=publickey /keyfile='
strconcat Msg PrivateKeyfile
connect Msg
wait Prompt
sendln VirtualUser
================================================================================
> ttpmacro /V login.ttl