こんにちは、キクです。
本記事ではvCSAでローカルユーザのデフォルトシェルを変更する方法を書いていこうと思います。
前回の記事ではローカルユーザを作成する際に苦戦した話について触れているので、ご興味がある方は併せてお読みいただけると嬉しいです。
前回の記事:【VMware】vCSAのローカルユーザ作成で苦戦した話(エラーコード:8002)
それでは、よろしくお願いします。
本作業の目的
まずは今回ローカルユーザのデフォルトシェルを変更した経緯をお話していきます。
今回作業対象とするユーザは、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ステップを踏みました。
なお、確認作業および変更作業は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>」というプロンプトが表示されるのは決まりごとだと思っていましたが、あれはアプライアンスシェルがデフォルトシェルになっているからだということも学ぶことができました。
今回の記事がみなさんの学びにも繋がっていれば嬉しいです。
本記事を最後までお読みいただき、ありがとうございました。
ではでは!