えむにわリソース

ITのスキマ的なあれこれを書きます。

LinuxにGitHubの認証情報でユーザーを追加するスクリプト

全国300億のLinuxユーザーのみなさんこんにちは。
今回のテーマはクラウドで自動化フル活用の先進文明な人にはあまり関係のない話、ユーザー管理です。

ちょっとした作業用サーバとかで複数人で使いたいときとか、ユーザー管理が面倒ですね。
ユーザー名とパスワード決めて公開鍵受け取ってとか、やり取りする情報が多すぎてストレスフルです。

そこで、本記事ではLinuxGitHubのユーザー名と秘密鍵でログインできるようにしました。
試したLinuxディストリビューションUbuntu, AmazonLinux, AmazonLinux2, CentOS7 です。

セットアップ

1. operator グループの追加

operator グループが無ければ追加します(ubuntuなどはもともとある)

sudo groupadd operator

2. sudoers.d への記述の追加

ファイル /etc/sudoers.d/operator を作成し、以下の様な内容にします。

%operator ALL = NOPASSWD: ALL

# User rules for operator group
%operator ALL=(ALL) NOPASSWD:ALL

3. ユーザー作成バッチの作成

ファイル /root/create_user.sh を作成し、以下の内容にします。

#!/bin/sh
if [ $# -ne 1 ]; then
  echo "USAGE: "`basename $0`" USERNAME" 1>&2
  exit 1
fi

USER=$1
useradd -m -s /bin/bash -g operator --password $USER $USER

mkdir /home/${USER}/.ssh
chmod 700 /home/${USER}/.ssh
touch /home/${USER}/.ssh/authorized_keys
chmod 600 /home/${USER}/.ssh/authorized_keys
curl https://github.com/${USER}.keys > /home/${USER}/.ssh/authorized_keys
chown -R ${USER}:operator /home/${USER}/.ssh

実行権限を与えます。

sudo chmod +x /root/create_user.sh

4. できあがり

完成です!早速使ってみましょう。

使い方

追加したいユーザーのGitHubのユーザー名を調べて、 sudo持ちのユーザーで以下コマンドを実行します。

sudo /root/create_user.sh <GitHubユーザー名>

これでユーザー作成が完了したので自分のGitHubユーザーでログインしましょう!

では、良い鯖缶ライフを。

Gistにもあげてます
Githubのユーザー名と鍵でLinuxユーザーを追加する · GitHub