add_ftp_user.sh
#!/bin/sh IFS=$'\n' SCRIPT_PATH=`echo $(cd $(dirname $0);pwd)` usage_exit() { echo "Usage: $0 [-g groupname] username" 1>&2 exit 1 } while getopts g:h OPT do case $OPT in g) VALUE_G=$OPTARG ;; h) usage_exit ;; \?) usage_exit ;; esac done shift $((OPTIND - 1)) if [ $# -ne 1 ]; then echo "ユーザー名を引数として指定してください。" >&2 exit 1 fi if [ -n "${VALUE_G}" ]; then if [ `egrep "^${VALUE_G}:" /etc/group | wc -l` -eq 0 ]; then echo "${VALUE_G} というグループは存在しません。" >&2 exit 1 fi fi USERNAME=$1 if [ `egrep "^${USERNAME}:" /etc/passwd | wc -l` -gt 0 ]; then echo "${USERNAME} というユーザーはすでに登録されています。" >&2 exit 1 fi PASSWORD=`pwgen -cn 12 1` useradd ${USERNAME} echo "${USERNAME}:${PASSWORD}" | chpasswd if [ -n "${VALUE_G}" ]; then usermod -g ${VALUE_G} ${USERNAME} cp_template utils/bash_profile "/home/${USERNAME}/.bash_profile" fi if [ `egrep "^${USERNAME}$" /etc/vsftpd/user_list | wc -l` -eq 0 ]; then echo "${USERNAME}" >> /etc/vsftpd/user_list fi service vsftpd restart echo "FTP ユーザーを追加しました" echo "ユーザー名: ${USERNAME}" echo "パスワード: ${PASSWORD}"
使い方
sh add_ftp_user.sh [-g グループ名] ユーザー名