Created
March 13, 2012 03:53
-
-
Save monsat/2026630 to your computer and use it in GitHub Desktop.
Create a user
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# | |
# CentOS6.2 | |
# | |
# | |
# vars | |
# | |
UNAME=`uname -i` | |
# http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm | |
EPELRPM="epel-release-6-5.noarch.rpm" | |
EPELURL="http://download.fedoraproject.org/pub/epel/6/${UNAME}/${EPELRPM}" | |
# http://rpms.famillecollet.com/enterprise/6/remi/x86_64/remi-release-5-8.el5.remi.noarch.rpm | |
REMIRPM="remi-release-6-1.el6.remi.noarch.rpm" | |
REMIURL="http://rpms.famillecollet.com/enterprise/6/remi/${UNAME}/${REMIRPM}" | |
# | |
# yum | |
# | |
yum -y update | |
yum -y install wget | |
yum -y install expect | |
yum -y install sudo | |
# | |
# install | |
# | |
rpm -Uvh $EPELURL && echo "set up epel" | |
rpm -Uvh $REMIURL && echo "set up remi" | |
# screen | |
yum -y install screen && echo "installed screen" | |
# vim | |
yum -y install vim-enhanced && echo "installed vim" | |
# git | |
yum -y install git && echo "installed git" | |
exit 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# ユーザー作成スクリプトver.0.1 | |
# by http://blog.paz-para.com/?p=1352 | |
# | |
# wheel対応 | |
# | |
#---------------------------------------# | |
# 変数宣言 # | |
#---------------------------------------# | |
USERNAME="$1" | |
USERGROUP="$2" | |
USERPASSWD="$3" | |
WHEEL="wheel" | |
#---------------------------------------# | |
# 引数チェック # | |
#---------------------------------------# | |
# 第一引数はユーザー名になります。 | |
# 引数が1つもなかったらエラーを返します。 | |
if [ "$USERNAME" = "" ] ; then | |
cat << _EOT_ | |
Help================================= | |
./createUser.sh [UserName] [UserGroup] [UserPassword] | |
UserName : user name to create | |
UserGroup : (optional) group name. if blank, create by user name. | |
UserPassword : (optional) password. if blank, create by random password. | |
===================================== | |
_EOT_ | |
exit 1 | |
else | |
echo "...Argument OK!!" | |
fi | |
# ユーザー名が重複していないか確認します。 | |
# 重複している場合はエラーを返します。 | |
for user in `ls /etc/passwd | cut -d: -f 1` | |
do | |
if [ "$USERNAME" = "$user" ]; then | |
echo " Error: User Already Exists..." | |
exit 1 | |
fi | |
done | |
echo "...User not exist!!" | |
# ユーザー名と既存のディレクトリ名が重複していないか確認します。 | |
# 重複している場合はエラーを返します。 | |
for dir in `ls /home` | |
do | |
if [ "$USERNAME" = "$dir" ]; then | |
echo " Error: Directory Already Exists..." | |
exit 1 | |
fi | |
done | |
echo "...Directory not exist!!" | |
# ユーザー名の文字数を確認します。 | |
# 32文字を超えていたらエラーを返します。 | |
if [ "${#USERNAME}" -gt 32 ]; then | |
echo " Error: Username too Long..." | |
exit 1 | |
else | |
echo "...Username's Length OK!!" | |
fi | |
# ユーザー名に使用された文字を確認します。 | |
# 不正な文字を使用していたらエラーを返します。 | |
if expr $USERNAME : [a-zA-Z0-9_-] > /dev/null ; then | |
echo "...Username's Character OK!!" | |
else | |
echo " Error: Caracter Not allow..." | |
exit 1 | |
fi | |
# 第二引数はグループ名になります。 | |
# 引数がなかったらユーザー名で作成されます。 | |
if [ "$USERGROUP" = "" ] ; then | |
USERGROUP="$USERNAME" | |
else | |
echo "...Argument OK!!" | |
fi | |
# グループ名の文字数を確認します。 | |
# 32文字を超えていたらエラーを返します。 | |
if [ "${#USERGROUP}" -gt 32 ]; then | |
echo " Error: Username too Long..." | |
exit 1 | |
else | |
echo "...Groupname's Length OK!!" | |
fi | |
# グループ名に使用された文字を確認します。 | |
# 不正な文字を使用していたらエラーを返します。 | |
if expr $USERGROUP : [a-zA-Z0-9_-] > /dev/null ; then | |
echo "...Groupname's Character OK!!" | |
else | |
echo " Error: Caracter Not allow..." | |
exit 1 | |
fi | |
# グループ名が存在していない場合はグループを作成します。 | |
GROUPEXISTS=`grep -e "${USERGROUP}:" /etc/group` | |
if [ ! "${GROUPEXISTS}" ]; then | |
groupadd "${USERGROUP}" && echo " Group created..." | |
fi | |
# 第三引数はパスワードになります。 | |
# パスワードが空ではなく、8文字未満の場合はエラーを返します。 | |
if [ "$USERPASSWD" != "" ] && [ "${#USERPASSWD}" -lt 8 ]; then | |
echo " Error: Password too short..." | |
exit 1 | |
else | |
echo "...Password Length OK!!" | |
fi | |
# パスワードが空の場合は生成して代入します。 | |
# 自動生成のパスワードは8桁の乱数を利用します。 | |
if [ "$USERPASSWD" = "" ]; then | |
USERPASSWD=`mkpasswd -l 8 -d 2 -c 3 -C 3 -s 0` | |
fi | |
# useraddコマンドで新規ユーザーを作成します。 | |
useradd ${USERNAME} && echo "...Useradd OK!!" | |
# group を登録します。 | |
usermod -a --group ${USERGROUP} ${USERNAME} | |
usermod -a --group ${WHEEL} ${USERNAME} | |
usermod -g ${USERGROUP} ${USERNAME} | |
# .sshディレクトリを作成します | |
mkdir /home/${USERNAME}/.ssh && echo "...mkdir .ssh OK!!" | |
# authorized_keys を作成します | |
touch /home/${USERNAME}/.ssh/authorized_keys && echo "...touch authorized_keys OK!!" | |
# 所有者をユーザーに変更します。 | |
chown -R ${USERNAME}:${USERGROUP} /home/${USERNAME}/ && echo "...chown Userdir OK!!" | |
# 新規に作成されたディレクトリの権限を755に変更します。 | |
chmod 755 /home/${USERNAME}/ && echo "...chmod Userdir OK!!" | |
# 新規に作成された .ssh ディレクトリの権限を700に変更します。 | |
chmod 700 /home/${USERNAME}/.ssh && echo "...chmod .ssh OK!!" | |
# 新規に作成された authorized_keys の権限を600に変更します。 | |
chmod 600 /home/${USERNAME}/.ssh/authorized_keys && echo "...chmod authorized_keys OK!!" | |
# 新規に作成されたユーザーのパスワードを設定します。 | |
expect -c " | |
spawn passwd ${USERNAME} | |
expect \"新しいUNIX パスワード:\" | |
sleep 1 | |
send \"${USERPASSWD}\r\" | |
sleep 1 | |
expect \"新しいUNIX パスワードを再入力してください:\" | |
send \"${USERPASSWD}\r\" | |
expect eof | |
" | |
#登録完了です! | |
cat << _EOT_ | |
Making User Complete!!! | |
Info================================= | |
New UserName : ${USERNAME} | |
New UserGroup : ${USERGROUP} | |
NEW UserPassword : ${USERPASSWD} | |
===================================== | |
_EOT_ | |
exit 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment