コマンドでサーバーを管理する
SpaceBuilderの実行ファイル(setfn-spacebuilder)には、サーバーを起動する機能のほかに、ターミナルで使う管理コマンドが含まれています。管理者ページにログインできないときにアカウントやアクセス制限を復旧したり、ポートや言語などの設定を確認したりするときに使います。
このドキュメントは、サーバーをインストールして運用する管理者向けの参考資料です。通常の管理は管理者ページで行い、管理者ページを使えない場合にだけコマンドを使用してください。
始める前に
- SpaceBuilderをインストールしたコンピューターのターミナルで実行します。
- SpaceBuilderを実行しているのと同じOSユーザーで実行します。既定の設定パスはそのユーザーのホームフォルダの下にあります。別のパスで運用している場合は、サーバーと同じ設定ファイルを指定します。
- 例は、実行ファイルがホームフォルダ(
~/setfn-spacebuilder)にある場合です。別の場所に置いた場合は、そのパスに置き換えて入力します。 user、unblock、ip、admin、login、logoutで始まる管理コマンドは、サーバーを停止した状態で実行します。
運用中のサーバーの設定パスを指定する
Linuxの既定の設定ファイルは~/.config/SetFN/config.yamlです。サービスを別のユーザーや設定パスで実行している場合は、サービスの起動コマンドで指定されたパスを確認します。
-cまたは--configでその設定ファイルを指定します。次は/srv/setfn/config.yamlで運用するサーバーの例です。実際のファイルパスに置き換えます。
~/setfn-spacebuilder -c /srv/setfn/config.yaml port get
~/setfn-spacebuilder -c /srv/setfn/config.yaml user list
この文書のほかの管理コマンドにも同じ-cオプションを付けます。-Hまたは--homeで運用している場合は、そのオプションも合わせます。両方を指定した場合、設定ファイルの選択では-cが優先されます。
サーバーを停止して再び起動する
ユーザー・アクセス制限・デバイス登録の管理コマンドと、admin status・admin logout-allなどは、サーバーのデータベースを直接開きます。別のプロセスが同じデータベースを使用している場合、再試行後にDatabase is still lockedで終了することがあります。admin reset-configはデータベースを開かずに設定ファイルを削除しますが、この操作もサーバーを停止してから実行します。
自動起動を設定している場合は、次の順序で実行します。
sudo systemctl stop setfn-spacebuilder
必要なコマンドを実行したあと、サーバーを再び起動します。
sudo systemctl start setfn-spacebuilder
ターミナルで直接実行している場合は、そのターミナルでCtrl+Cを押して停止します。
コンソールアクセスパスワードを決める
userとunblockコマンドは、実行時にConsole Access Passwordを尋ねます。このパスワードは、環境変数SETFN_CONSOLE_PASSWORDに設定した値です。コマンドを実行する前に、同じターミナルで値を設定します。
export SETFN_CONSOLE_PASSWORD="自分で決めたパスワード"
この値はローカルのコンソールコマンドへのアクセス確認に使います。Workspace管理者やSetFNアカウントのパスワードを変更する設定ではありません。Console Access Passwordには、このターミナルで設定した値を入力します。
コマンド一覧
| コマンド | 内容 | サーバーの停止 |
|---|---|---|
serv | サーバーを起動します。コマンドなしで実行ファイルだけを実行しても、サーバーが起動します。 | - |
version | バージョンとビルド情報を表示します。 | 不要 |
lang get、lang set <コード>、lang list | ターミナルメッセージの言語を確認または変更します。en、ko、ja、zhに対応しています。 | 不要 |
port get | 現在のサーバーポートと使用状況を確認します。 | 不要 |
homepath get | データを保存するホームパスを確認します。 | 不要 |
user list | ユーザーアカウントの一覧を表示します。 | 必要 |
user add、user delete | ユーザーアカウントを追加または削除します。 | 必要 |
user password | ユーザーのパスワードを変更します。 | 必要 |
user promote | ユーザーの役割を変更します。 | 必要 |
user mfa reset | 管理者アカウントの2段階認証をオフにします(緊急復旧)。 | 必要 |
unblock | ログインブロックを緊急復旧します。user unblockと同じです。 | 必要 |
ip status、ip add、ip remove、ip enable、ip disable | IPアクセス制限と許可リストを管理します。 | 必要 |
admin status、admin status-json | サーバーの状態と設定を確認します。status-jsonは状態情報をJSON形式で表示します。 | 必要 |
admin logout-all | すべてのユーザーをログアウトさせます。 | 必要 |
admin reset-config | 設定ファイルを削除し、初期設定をやり直します。 | 必要 |
admin knowledge-backup、admin knowledge-restore | ナレッジストレージをバックアップまたは復元します。 | 必要 |
admin vector-instance-id、admin prepare-clone | コピーしたサーバーを別のインスタンスとして運用できるように準備します。サーバーを移行するを参照してください。 | 必要 |
login、logout | ターミナルからSetFNアカウントにこのデバイスを登録、または登録を解除します。 | 必要 |
各コマンドの詳しいオプションは、コマンドの後ろに--helpを付けて確認します。
~/setfn-spacebuilder user --help
ログインできないときに復旧する
以下のコマンドは、すべてサーバーを停止し、コンソールアクセスパスワードを設定してから実行します。
ログインブロックを解除する
ログインの失敗が繰り返されて管理者のアクセスがブロックされた場合は、接続に使うコンピューターのIPをセキュリティホワイトリストに追加します。
~/setfn-spacebuilder unblock --ip 203.0.113.10
現在の復旧状態は、次のコマンドで確認します。
~/setfn-spacebuilder unblock --status
IPを追加しても接続できない場合は、ログインセキュリティ機能を一時的にオフにします。
~/setfn-spacebuilder unblock --all
~/setfn-spacebuilder unblock --enable-security
対象のユーザーアカウントを確認する
パスワードや役割を変更するには、Workspaceに登録されている既存アカウントのログイン用ユーザー名が必要です。次のコマンドでユーザー一覧を確認します。
~/setfn-spacebuilder user list
以下の例の<ユーザーアカウント>全体を、一覧のUsername列に表示されるログイン用ユーザー名に置き換えます。Nick列は画面に表示する名前です。
管理者のパスワードを変更する
~/setfn-spacebuilder user password -u "<ユーザーアカウント>" --password "新しいパスワード"
<ユーザーアカウント>を、パスワードを変更するアカウントのログイン用ユーザー名に置き換えます。入力したコマンドはターミナルの履歴に残るため、ログイン後に管理者ページでパスワードをもう一度変更することをおすすめします。新しいパスワードはサーバーのパスワードルールに従い、よく使われている、または流出したパスワードは拒否されます。新しくインストールしたサーバーの既定のルールは12文字以上です。
管理者の2段階認証をオフにする
管理者が認証アプリとリカバリーコードの両方を失ってログインできず、管理者ページでリセットしてくれる別の最高管理者もいないときに使用します。
~/setfn-spacebuilder user mfa reset "<ユーザーアカウント>"
そのアカウントの認証アプリの登録とリカバリーコードが削除され、ログイン中だったセッションがすべて終了します。次回のログインはパスワードだけで行い、管理者の2段階認証を必須にするポリシーがオンの場合はログイン後に再登録が必要です。実行の記録は監査ログに2段階認証のリセットとして残ります。2段階認証を使っていないアカウントに実行すると、何も変わらず案内だけが表示されます。登録の手順は、管理者の2段階認証を設定するを参照してください。
管理者権限を取り戻す
管理者権限を持つアカウントがない場合は、既存のユーザーの役割を変更します。
~/setfn-spacebuilder user promote -u "<ユーザーアカウント>" -r admin
-uには、役割を変更する既存アカウントのログイン用ユーザー名を入力します。-r adminのadminは付与する管理者の役割を表します。admin statusのadminは管理用コマンドのグループです。
| オプション | 説明 |
|---|---|
-u、--username | 役割を変更する既存アカウントのログイン用ユーザー名(Username)です。 |
-r、--role | superuser、admin、userのいずれかです。入力しない場合はsuperuserです。 |
ユーザーアカウントを追加・削除する
~/setfn-spacebuilder user add -u newadmin -n "新しい管理者" --admin
| オプション | 説明 |
|---|---|
-u、--username | ログインに使うユーザー名です。 |
-n、--nickname | 画面に表示する名前です。 |
--password | パスワードです。入力しない場合は、自動で作成されたパスワードが画面に表示されます。 |
--admin | 管理者として追加します。 |
アカウントを削除するときは、ユーザー名を指定します。最後の管理者は削除できません。
~/setfn-spacebuilder user delete -u olduser
IPアクセス制限を管理する
IPアクセス制限をオンにすると、許可リストにあるIPからのみ管理者ページに接続できます。許可リストの設定を誤って管理者ページに接続できなくなったときに、コマンドで修正します。
現在の状態と許可リストを確認します。
~/setfn-spacebuilder ip status
許可リストにIPアドレスまたはCIDR範囲を追加、または削除します。
~/setfn-spacebuilder ip add --ip 192.168.1.100
~/setfn-spacebuilder ip add --ip 192.168.1.0/24
~/setfn-spacebuilder ip remove --ip 192.168.1.100
アクセス制限をオンまたはオフにします。
~/setfn-spacebuilder ip enable
~/setfn-spacebuilder ip disable
サーバー設定を確認する
~/setfn-spacebuilder port get
~/setfn-spacebuilder homepath get
~/setfn-spacebuilder lang get
- ターミナルメッセージの言語は、
lang set jaのようにすぐに変更できます。 port set <ポート>とhomepath set <パス>は値を変更しません。設定ファイルに入力する内容を案内し、port setはそのポートを使用できるかどうかも表示します。設定ファイルを修正してサーバーを再起動すると適用されます。- 使用できるポートは
3000から65535までです。既定のポートは8510です。
SetFNアカウントとのデバイス接続を復旧する
このコマンドは、サーバーデバイスとSetFNアカウントの接続を管理します。Workspaceユーザーのパスワードやログインブロックは、前述のuser・unblockコマンドで復旧します。
サーバーを停止し、運用中のサーバーと同じ設定パスで接続を開始します。
~/setfn-spacebuilder login
ターミナルの認証案内に従い、ブラウザで承認します。登録済みのデバイスを再登録する場合は、次のコマンドを使います。
~/setfn-spacebuilder login --force
認証情報の期限切れや無効化により再接続が必要な場合は、既存の接続を解除してから登録し直します。
~/setfn-spacebuilder logout
~/setfn-spacebuilder login --force
logoutは既定で、ローカルのサイトトークン・デバイスキー・認証ファイルを削除します。logout --unlinkは、同じ完全解除の動作を行う互換オプションです。デバイスキーと認証ファイルを保持し、サイトのセッショントークンだけ削除する場合はlogout --keep-linkを使います。
再接続後はサーバーを起動し、管理者ページでライセンスの登録状況を確認します。
サーバーの状態とログインセッションを管理する
サーバーの状態と現在の設定を確認します。
~/setfn-spacebuilder admin status
アカウント情報が漏えいした疑いがある場合は、すべてのユーザーをログアウトさせます。ユーザーは再度ログインする必要があります。
~/setfn-spacebuilder admin logout-all
ナレッジストレージのバックアップと復元は、ナレッジストレージを運用するを参照してください。
注意事項
- Linuxはプロセス名を15文字までしか保持しないため、
ps -eやtopではsetfn-spacebuilと表示されます。実行中かどうかを確認するときは、pgrep -f setfn-spacebuilderを使用します。 - ユーザーの追加やブロック管理など、管理者ページでできる作業は管理者ページで行うことをおすすめします。アカウントとブロックに関するコマンドは、サーバーを停止しないと実行できません。