【VMware】vCSAでローカルユーザのデフォルトシェルを変更する方法

2021年10月17日

vcsa-defaultshell

こんにちは、キクです。

本記事ではvCSAでローカルユーザのデフォルトシェルを変更する方法を書いていこうと思います。
前回の記事ではローカルユーザを作成する際に苦戦した話について触れているので、ご興味がある方は併せてお読みいただけると嬉しいです。
前回の記事:【VMware】vCSAのローカルユーザ作成で苦戦した話(エラーコード:8002)

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

動作環境

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

注意事項

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

本作業の目的

まずは今回ローカルユーザのデフォルトシェルを変更した経緯をお話していきます。

今回作業対象とするユーザは、vCSAの監視でログインするために用意したものです。
スケジューリングされたスクリプトによりSSHでログインした後、CPUやメモリなどのリソース確認を始めとしたコマンドを実行するために利用します。

前回の記事のおさらいになりますが、ユーザの作成は以下のコマンドで実施しました。

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

プロンプトが「Command>」となっていますが、これは「アプライアンスシェル」というシェルを使っている状態を意味します。
アプライアンスシェルは、アプライアンスの監視やトラブルシューティングなどを実行するすべてのvCSA APIコマンドを使用するために用意されたシェルです。

アプライアンスシェルからBashシェルに切り替えるには次のコマンドを実行します。

Command> shell

これによりプロンプトが「#」となり、Bashシェルに切り替わったことが分かります。
今回使用するユーザではSSHでログインした直後からBashシェルを使える状態を想定していました。
しかし、前述の「localaccounts.user.add」で追加したユーザにSSHで接続するとアプライアンスシェルでログインしてしまい、shellコマンドを実行してからでないとBashシェルを使用できない状態でした。
そのため、今回の記事の題材である「デフォルトシェルの変更」が必要になった次第です。

デフォルトシェルの変更方法

デフォルトシェルの変更には次の3ステップを踏みました。

デフォルトシェル変更で実施した3ステップ

  1. 現在のデフォルトシェル設定の確認
  2. デフォルトシェル設定の変更
  3. 動作確認

なお、確認作業および変更作業はBashシェルから実行しました。

1. デフォルトシェルの確認

変更作業の前後で対象ユーザのデフォルトシェルを確認するために次のコマンドを実行します。

# cat /etc/passwd | grep <ユーザ名>

このコマンドの表示結果の最終カラムが「/bin/appliancesh」となっていた場合、そのユーザのデフォルトシェルはアプライアンスシェルに設定されています。
そのユーザでSSH接続した際には「Command>」が表示されることを意味します。
今回はBashシェルをデフォルトにしていきたいので変更対象であることが明確になりました。

2. デフォルトシェルの変更

それでは次のコマンドでデフォルトシェルの変更をしていきましょう。

# chsh -s /bin/bash <ユーザ名>

オプション「-s」を指定しなかった場合は対話的に動作しますが、今回は「-s」を指定した状態で変更しました。

変更後の値を確認しておきましょう。
手順1のコマンドを再度実行して、結果が「/bin/bash」となっていればデフォルトシェルがBashシェルに変更されていることになります。

# cat /etc/passwd | grep <ユーザ名>

3. 動作確認

最後にデフォルトシェルを変更したユーザでSSH接続した際の動作確認をしておきましょう。
SSH接続した際のプロンプトとして「$」が表示されていれば今回の作業は完了となります。

おわりに

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

今回はvCSAにおけるローカルユーザデフォルトシェルの変更方法についてお話しました。
僕はあまりvCSAのCUI操作をすることがないので最初は変更方法など見当も付きませんでしたが、実際にやってみるとシンプルだったので安心しました。

また、vCSAにログインした際に「Command>」というプロンプトが表示されるのは決まりごとだと思っていましたが、あれはアプライアンスシェルがデフォルトシェルになっているからだということも学ぶことができました。
今回の記事がみなさんの学びにも繋がっていれば嬉しいです。

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

  • LINE
  • -VMware
    -