はじめに
NextcloudにはCLI環境としてocc
というものがあり、さまざまな設定、管理を行うことができます。 ここではoccで使える様々なコマンド群のうち、ユーザ管理に関するコマンド群についてまとめてみます。
※occ の使い方については、 【techblog】 Nextcloudの管理用CLI「occ」コマンドについての記事を参照ください。
※occ の共通オプションについては、【techblog】Nextcloudの管理用CLI「occ」詳細: Nextcloud自体に対するコマンド群、共通オプション設定の記事を参照ください。
環境について
ここで記載するoccを実行するNextcloudのバージョンは、2019年2月22日現在で最新の15.0.4
を利用します。
WebサーバはNginxをインストールした環境で実施しております。ApacheをWebサーバとして利用している場合は、sudo -u
のユーザIDをapache
に読み替えてください。
ユーザ管理に関するコマンド群
ユーザ管理に関するコマンドは以下のようなものがあります。
- user:add
- user:delete
- user:disable
- user:enable
- user:info
- user:lastseen
- user:list
- user:report
- user:resetpassword
- user:setting
user:add
ユーザを追加します。
使い方
user:add [オプション] <ユーザID>
ユーザID
Nextcloudにログインする際に使用するユーザIDを指定します。ユーザIDとして使用できる文字は次のとおりです。
- 半角英字(
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
) - 半角数字(
0123456789
) - 半角ハイフン(
-
) - 半角アンダースコア(
_
) - 半角アットマーク(
@
)
オプション
--password-from-env
環境変数OC_PASS
に定義されている内容を追加するユーザIDの初期パスワードとして設定します。
このコマンドでは、実行の都度Enter password:
とユーザIDに対する初期パスワードの入力を要求されますが、これを指定すると初期パスワードを自動的に設定することができます。--display-name=[DISPLAY-NAME]
追加するユーザのNextcloud画面での表示名を指定します。日本語文字などのマルチバイト文字も指定することができます。
このオプションを指定しない場合は、デフォルトでユーザIDと同じ文字列がセットされます。-g, --group=[GROUP]
追加するユーザをどのグループに所属させるかを指定します。
指定したグループが登録されていない場合は、指定されたグループを自動的に作成します。
グループには日本語文字などのマルチバイト文字も指定することができます。
このオプションを複数指定することで、複数のグループに所属させるように指定することができます。
使用例
hoge_9999
ユーザを追加する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:add hoge_9999 Enter password: [パスワードを入力] Confirm password: [パスワードを入力] The user "hoge_9999" was created successfully
- 環境変数
OC_PASS
にセットされた文字列をパスワードとするfuga_9999
ユーザを追加する。$ OC_PASS=password $ sudo -E su -s /bin/sh nginx -c "php /var/www/html/nextcloud/occ user:add --password-from-env fuga_9999" The user "fuga_9999" was created successfully
- ユーザID:
piyo_9999
、表示名:ぴよ9999
のユーザを追加する。この際に新規グループ:ぴよぴよ
に所属させる。$ sudo -u nginx php /var/www/html/nextcloud/occ user:add --display-name=ぴよ9999 -g ぴよぴよ piyo_9999 Enter password: [パスワードを入力] Confirm password: [パスワードを入力] The user "piyo_9999" was created successfully Display name set to "ぴよ9999" Created group "ぴよぴよ" User "piyo_9999" added to group "ぴよぴよ"
- ユーザID:
hogera_9999
のユーザを追加する。この際に既存グループ:ぴよぴよ
と新規グループhogehoge
に所属させる。$ sudo -u nginx php /var/www/html/nextcloud/occ user:add --group=ぴよぴよ --group=hogehoge hogera_9999 Enter password: [パスワードを入力] Confirm password: [パスワードを入力] The user "hogera_9999" was created successfully User "hogera_9999" added to group "ぴよぴよ" Created group "hogehoge" User "hogera_9999" added to group "hogehoge"
user:delete
登録済みのユーザを削除します。
使い方
user:delete <ユーザID>
ユーザID
登録済みのユーザIDを指定します。
使用例
hoge_9999
ユーザを削除する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:delete hoge_9999 The specified user was deleted
user:disable
登録済みのユーザを利用不可にします。
利用不可となっているユーザに対してコマンドを実施してもエラーとはなりません。
使い方
user:disable <ユーザID>
ユーザID
登録済みのユーザIDを指定します。
使用例
hoge_9999
ユーザを利用不可する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:disable hoge_9999 The specified user is disabled
user:enable
登録済みのユーザを利用可能にします。
利用可能となっているユーザに対してコマンドを実施してもエラーとはなりません。
使い方
user:enable <ユーザID>
ユーザID
登録済みのユーザIDを指定します。
使用例
hoge_9999
ユーザを利用可能にする。$ sudo -u nginx php /var/www/html/nextcloud/occ user:enable hoge_9999 The specified user is enabled
user:info
ユーザの登録情報を出力します。
指定したユーザが登録されていない場合はuser not found
と表示されます。
使い方
user:info [オプション] <ユーザID>
ユーザID
登録情報を出力したいユーザIDを指定します。
オプション
--output=[OUTPUT]
ユーザ情報の出力フォーマットを指定します。指定できるフォーマットは次のとおりです。plain
: 普通の出力 (オプション未指定の場合のデフォルト)json
: JSON形式json_pretty
: 整形されたJSON形式
使用例
hoge_9999
ユーザの情報を普通の形式で出力する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:info hoge_9999
hogera_9999
ユーザの情報を整形されたJSON形式で出力する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:info --output=json_pretty hogera_9999 { "user_id": "hogera_9999", "display_name": "hogera_9999", "email": "", "cloud_id": "hogera_9999@192.168.33.100", "enabled": true, "groups": [ "hogehoge", "\u3074\u3088\u3074\u3088" ], "quota": "none", "last_seen": "2019-02-22T05:24:03+00:00", "user_directory": "\/var\/www\/html\/nextcloud\/data\/hogera_9999", "backend": "Database" }
user:lastseen
ユーザが最後にログインを行った日時を出力します。日時は世界標準時で出力されるので、日本時間でいつか確認したい場合は、この日時に9時間を足してください。
指定したユーザがまだログインしたことがない場合は User (ユーザID) has never logged in, yet.
と表示されます。
指定したユーザが登録されていない場合は user does not exist
と表示されます。
使い方
user:lastseen <ユーザID>
ユーザID
登録済みのユーザIDを指定します。
使用例
admin
ユーザが最後にログインした日時を出力する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:lastseen admin admin`s last login: 22.02.2019 06:17
user:list
登録済みユーザのリストを出力します。
使い方
user:list [オプション]
オプション
-l, --limit[=LIMIT]
取得するユーザ数を指定します。このオプションを指定しない場合のデフォルト値は500
です。-o, --offset[=OFFSET]
取得するユーザを何番目から出力するかを指定します。このオプションを指定しない場合のデフォルト値は0
(=先頭)です。--output=[OUTPUT]
ユーザ情報の出力フォーマットを指定します。指定できるフォーマットは次のとおりです。plain
: 普通の出力 (オプション未指定の場合のデフォルト)json
: JSON形式json_pretty
: 整形されたJSON形式
使用例
- 全登録ユーザ(先頭から500件まで)のリストを出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ user:list - admin: admin - fuga_9999: fuga_9999 - fugafuga_001: ふがふが_001 - HanakoTanaka: 田中 花子 - hoge_9999: hoge_9999 - hogehoge_001: ほげほげ_001 - hogera_001: ほげら_001 - hogera_9999: hogera_9999 - hogohoge_002: ほげほげ_002 - piyo_9999: ぴよ9999 - piyopiyo_001: ぴよぴよ_001 - taro_yamada: 山田 太郎
- 登録ユーザのうち先頭から5件分のリストを出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ user:list -l 5 - admin: admin - fuga_9999: fuga_9999 - fugafuga_001: ふがふが_001 - HanakoTanaka: 田中 花子 - hoge_9999: hoge_9999
- 登録ユーザのうち先頭から6番目以降で5件分のリストをJSON形式で出力する。
$ sudo -u nginx php /var/www/html/nextcloud/occ user:list --offset=5 --limit=5 --output=json {"hogehoge_001":"\u307b\u3052\u307b\u3052_001","hogera_001":"\u307b\u3052\u3089_001","hogera_9999":"hogera_9999","hogohoge_002":"\u307b\u3052\u307b\u3052_002","piyo_9999":"\u3074\u30889999"}
user:report
どれだけのユーザがアクセスをしているかを出力します。
使い方
user:report
使用例
$ sudo -u nginx php /var/www/html/nextcloud/occ user:report
+------------------+----+
| User Report | |
+------------------+----+
| Database | 12 |
| | |
| total users | 12 |
| | |
| user directories | 2 |
+------------------+----+
user:resetpassword
登録されたユーザのパスワードを再設定します。
使い方
user:resetpassword [オプション] <ユーザID>
ユーザID
登録済みのユーザIDを指定します。
オプション
--password-from-env
環境変数OC_PASS
に定義されている内容を追加するユーザIDの新しいパスワードとして設定します。
このコマンドでは、実行の都度Enter a new password:
とユーザIDに対する新しいパスワードの入力を要求されますが、これを指定すると新しいパスワードを自動的に設定することができます。
使用例
hoge_9999
ユーザのパスワードを変更する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:resetpassword hoge_9999 Enter a new password: Confirm the new password: Successfully reset password for hoge_9999
fuga_9999
ユーザのパスワードを環境変数OC_PASS
にセットされた文字列に変更する。$ OC_PASS=password $ sudo -E su -s /bin/sh nginx -c "php /var/www/html/nextcloud/occ user:resetpassword --password-from-env fuga_9999" Successfully reset password for fuga_9999
user:setting
ユーザのアプリケーション設定情報を読み込み、または変更します。
使い方
user:setting [オプション] <ユーザID> [アプリケーション名] [キー] [設定値]
ユーザID
ユーザIDを指定します。
アプリケーション名
対象のアプリケーション名を指定します。
キー
指定したアプリケーションのキーを指定します。
設定値
指定したアプリケーションのキーの設定値をこの設定に変更します。
オプション
--output=[OUTPUT]
ユーザ情報の出力フォーマットを指定します。指定できるフォーマットは次のとおりです。plain
: 普通の出力 (オプション未指定の場合のデフォルト)json
: JSON形式json_pretty
: 整形されたJSON形式
--ignore-missing-user
指定したユーザが存在しない場合はこれを無視します。--default-value=DEFAULT-VALUE
デフォルト値が設定されておらず、設定が存在しない場合、コマンドは1で終了します。
このオプションは、設定取得時にのみ適用することができます。--update-only
設定値の変更のみを行います。指定した設定がまだされていない場合は設定の追加は行われません。--delete
指定したアプリケーションのキーの設定を削除します。--error-if-not-exists
--delete
オプションとセットで指定します。アプリケーションのキーの設定を削除する前に、この設定が存在しているかどうかを確認し、存在しない場合はエラーとします。--delete
実施時にこのオプションが指定されていないと、設定が存在する/しないにかかわらず正常終了となります。
使用例
admin
ユーザの設定情報を表示する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:setting admin - avatar: - generated: true - version: 4 - core: - lang: ja - locale: ja_JP - timezone: Asia/Tokyo - files: - quota: default - firstrunwizard: - show: 0 - login: - lastLogin: 1550833090 - login_token: - xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx: nnnnnnnnnn
admin
ユーザの言語設定を取得する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:setting admin core lang ja
hogera_9999
ユーザのE-Mailアドレス設定を変更する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:setting hogera_9999 settings email hogera_9999@stylez.co.jp $ sudo -u nginx php /var/www/html/nextcloud/occ user:setting hogera_9999 - avatar: - generated: true - core: - lang: ja - timezone: Asia/Tokyo - files: - show_grid: 0 - firstrunwizard: - show: 0 - login: - lastLogin: 1550814907 - settings: - email: hogera_9999@stylez.co.jp
hogera_9999
ユーザのE-Mailアドレス設定を削除する。$ sudo -u nginx php /var/www/html/nextcloud/occ user:setting --delete hogera_9999 settings email $ sudo -u nginx php /var/www/html/nextcloud/occ user:setting hogera_9999 - avatar: - generated: true - core: - lang: ja - timezone: Asia/Tokyo - files: - show_grid: 0 - firstrunwizard: - show: 0 - login: - lastLogin: 1550814907