〜 エックスサーバー・PHP 8.2.28 環境での実践例 〜
多人数のユーザーを手動で登録するのは非常に手間のかかる作業です。Nextcloud Hub 10(31.0.6)には、Webインターフェースからの登録以外に、occ
コマンドを使って CLI(コマンドライン)経由でユーザーを一括登録する方法が用意されています。
本記事では、エックスサーバーにインストールした Nextcloud Hub 10 環境(PHP 8.2.28)で、CSVファイルを使ってユーザーを一括登録した実践手順を紹介します。
使用環境
- Nextcloud バージョン:Hub 10(31.0.6)
- サーバー:エックスサーバー(共用プラン)
- PHP バージョン:8.2.28(CLI)
- 実行ユーザー:
user123
- Nextcloudの設置パス:
~/nextcloud/
1. ユーザー情報をCSVで準備
以下のように、ユーザー情報を1行ずつ記述した users.csv
ファイルを作成します:
username,password,displayname,email
dummyuser1,AbcdEfgh1234!@#$,Dummy User One,dummy1@example.com
dummyuser2,SecurePass5678*()!,Dummy User Two,dummy2@example.com
パスワードは 16文字以上かつ英大文字・小文字・数字・記号を含む必要があります。さらに、既知の漏洩パスワードと一致しないようにする必要があります。
2. シェルスクリプトを作成
Nextcloud の occ
コマンドを使って、CSVに記載されたユーザーを1人ずつ登録するシェルスクリプトを作成します。
#!/bin/bash
NEXTCLOUD_PATH="$HOME/nextcloud"
USER_FILE="users.csv"
tail -n +2 "$USER_FILE" | while IFS=',' read -r username password displayname email; do
if [[ -z "$username" || -z "$password" ]]; then
echo "スキップ:不正な行(ユーザー名またはパスワードが空)"
continue
fi
echo "ユーザー $username を作成中..."
OC_PASS="$password" php "$NEXTCLOUD_PATH/occ" user:add \
--password-from-env \
--display-name="$displayname" \
--email="$email" \
"$username"
done
スクリプトファイル名は register_users.sh
として保存し、以下のコマンドで実行権限を付与します:
chmod +x register_users.sh
3. 実行してユーザーを登録
作成したスクリプトを実行します:
./register_users.sh
正常に登録されると、以下のようなメッセージが表示されます:
ユーザー dummyuser1 を作成中...
The account "dummyuser1" was created successfully
Display name set to "Dummy User One"
Welcome email sent to dummy1@example.com
4. よくあるエラーと対処法
PCNTL 拡張に関する警告(無視可)
The process control (PCNTL) extensions are required...
→ これは php-pcntl
拡張が入っていないという警告ですが、ユーザー登録処理には影響ありません。無視して問題ありません。
パスワードポリシー違反
Password needs to be at least 16 characters long.
Password needs to contain at least one lower and one upper case character.
Password needs to contain at least one special character.
Password is present in compromised password list.
→ パスワード強度を満たしていない場合はエラーになります。安全性確保のため、ポリシーの緩和は非推奨です。
5. 補足:スクリプトの拡張例
- 所属グループを指定したい場合は
--group
オプションを追加できます。 - エラーログをファイルに出力したり、成功/失敗の件数を集計するなど、スクリプトの拡張も可能です。
- 必要に応じて、初回ログイン時にパスワード変更を促す通知を別途用意するのも有効です。
まとめ
Nextcloud Hub 10(31.0.6)では、occ
コマンドとシェルスクリプトを使って、CSVから複数ユーザーを効率的に一括登録できます。エックスサーバーなどの共用環境でも実行可能で、管理作業の効率化に役立ちます。
コメント