ユーザ名とパスワードを引数で受け取りLinuxユーザを作成するスクリプト
はじめに
コマンドライン引数で ユーザ名 と パスワード を受け取り、Linuxユーザを作成する非インタラクティブなスクリプトをかけないかを思い試してみました。
※複数人がログインするようなサーバ環境で実行した場合、実行されたコマンドがhistoryに残ってしまうためご注意ください。パスワードがバレてしまいます。
検証環境
$ uname -moi
x86_64 x86_64 GNU/Linux
$ bash -version | head -n 1
GNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
スクリプト
スクリプト名は create_ops_user.sh
とでもしておきましょう。
#!/usr/bin/env bash
NAME="${1}"
PASSWORD="${2}"
# Create a passwordless user
useradd "${NAME}"
# Set password
echo "${PASSWORD}" | passwd --stdin "${NAME}"
passwd
コマンドは、ログインユーザあるいは指定したユーザのパスワードを変更するコマンドです。
--stdin
オプションを指定してやることで、パイプ経由で標準入力に渡された文字列をパスワードとして設定することができます。
実行方法
$ sudo create_ops_user.sh genzouw five_children
# 指定したパスワードでログインできる
$ su genzouw
Password:
ひとこと
取り急ぎ環境構築手順をスクリプト化する必要がありましたが、
AnsibleやTerraform、Dockerfile、Kubernetesマニフェストなどにする時間すらないほど急いでいたのでシェルでやってしまいました。
負の遺産になってしまったらごめんなさい。
ディスカッション
コメント一覧
まだ、コメントがありません