【VMware】vCSAのローカルユーザ作成で苦戦した話(エラーコード:8002)

2021年10月8日

password

こんにちは、キクです。

本記事では先日僕が経験した『vCSAのローカルユーザ作成時に苦戦した話』をシェアしていこうと思います!
簡単に内容をご紹介すると、vCSA上にローカルユーザを作成しようとした際に「Error in excuting command: 8002」と表示されて正常に作成できなかったときの対応方法に関するお話になります。

それでは、よろしくお願いします。

動作環境

本記事の内容は、下記の環境で実施したものになります。
・VMware vSphere 7.0

注意事項

本記事は僕が経験した内容をもとに記載しておりますが、実行環境や設定内容によっては動作が異なる場合があります。
そのため『参考程度』にお読みいただけますと幸いです。

本作業の目的

冒頭でも触れましたが、今回僕はvCSAにローカルユーザを作成する作業を担当しました。

そもそもなぜローカルユーザを作成する必要があったのか?

それはvCSAを監視するシステムからログインするためのユーザが必要だったからです。
ここで作成したユーザを利用して内部的にコマンドを実行してリソースなどに問題ないことを確認します。

本作業で直面した課題「エラーコード:8002」

課題解決までの全体的な流れは後述しますが、ローカルユーザを作成するためにvCSAのアプライアンスシェルにて以下のコマンドを実行しました。

Command> localaccounts.user.add --role <ロール名> --username <ユーザ名> --password 

この作業は今回初めてでしたが、コマンド自体は「ローカルユーザを作成する」というシンプルなものです。
ところが、次のようなエラーが返ってきたのです。

Error in executing command: 8002

「なんだこれは」と思い早速調査を開始しました。
いくつか原因の候補を発見しました。
その1つとしては「rootユーザのパスワード期限切れ」です。

しかし、今回はそれが原因ではなかったので解決の糸口が分からなくなり苦戦することになりました。
ただ、今思えばヒントとなるものはありました。
本作業を実施した際には「ユーザは作成できたがパスワードが設定できていない」という状態だったのです。
この状態をもう少し深く考えていればもっと解決が早かったのかもしれません・・・(笑)

課題「エラーコード:8002」を解決した方法

本作業で最終的に「エラーコード:8002」を解決した方法はいたってシンプルでした。
それは「パスワードのポリシー違反」でした。

なんともまあ初歩的・・・。

上述の「localaccounts.user.addコマンド」の最後に「--passwordオプション」を指定することで、そのローカルユーザに対してパスワードを指定することが可能です。
今回はここで指定したパスワードがポリシー違反をしていたことが原因でした。

課題解決までの作業内容

それでは原因がパスワードポリシー違反であることが判明するまでに試行錯誤した内容を書いていこうと思います。
やや備忘録色が強くなってしまいますが、何かしら参考になれば幸いです。

1. 状態確認

「Error in executing command: 8002」が表示されてからまず実施したのが状態確認です。

次のコマンドにてローカルユーザ一覧を確認することができます。

Command> localaccounts.user.list 

すると次の結果が得られました。
なお、ここでは作成したユーザ名を「user1」、ロールを「operator」とします。

4:
  Username: user1
  Role: operator
  Fullname: user1
  Status: disabled
  Passwordstats: noset
  Email: ''

ここで「ユーザは作成できているがパスワードは設定できていない」という状態が判明しました。

2. アプライアンスシェルからパスワード変更を試みる

「ユーザは作成できているのだからパスワードを別途設定してみよう」と思いました。

次のコマンドでパスワード変更を試みました。

Command> localaccounts.user.password.update --username user1 --password

しかし、再びエラーが表示されて失敗。

Error in method: Could not update the password. (code com.vmware.applmgmt.err_set_password_failed_update)

3. ユーザ削除

パスワードの再設定にも失敗したので一度ユーザを削除してみました。

Command> localaccounts.user.delete --username user1

4. bashシェルからパスワード変更を試みる

続いて試したのがbashシェルからのパスワード変更です。

ここまで試していたのはアプライアンスシェルで「Command>」というプロンプトが表示される状態。
ここで試すbashシェルは「# 」などのプロンプトが表示されるよく見るやつです。

前述の作業でユーザを削除してしまったので、アプライアンスシェルでユーザを再作成してから本作業を実施しました。
bashシェルでは次のようにパスワード変更を試みました。

# passwd user1

しかし、ここでもエラーが発生。

passwd: Authentication token manipulation error
passwd: password unchanged

このエラーを調べると次のページに辿りつきました。

ユーザー パスワードの長さは、次の要件を満たしている必要があります。

・3 種類の文字クラスを使用するパスワードの場合、最低 8 文字が必要。

・4 種類の文字クラスを使用するパスワードの場合、最低 7 文字が必要。

参考:VMware:認証トークンの操作エラー

この内容から「--passwordオプションで指定したパスワードに問題があるのでは?」という考えに至りました。
そしてアプライアンスシェルから再度上記の要件をクリアしたパスワードを指定したら無事ローカルユーザを作成することができました。

おわりに

いかがでしたでしょうか。

今回はvCSAにおけるローカルユーザ作成で苦戦した話を書いてきました。
エラーには苦戦しましたが、答えはいたってシンプルでした。
でも「パスワード自体に問題がある」ということにもう少し早く気が付ければなと反省です。

本記事を最後までお読みいただきありがとうございました。
ではでは!

-VMware
-