2023-03-22
EC2で新しく仮想マシンを立ち上げた場合のデフォルトユーザー名とグループ名はAmazon Linux2であればec2-user、Debianであればadminとなっている。ec2-userはまだしもadminはさすがにまずいだろうと変更しようとしたところ、
usermod -l hogeuser admin usermod: user admin is currently used by process 782
と言われて変更させてくれない。これは初回ログイン手段がadminユーザ名でのSSHのみで、adminユーザのシェルプロセスが立ち上がっている以上変更不可ということである。IDCフロンティアのように仮想マシンコンソールからrootユーザで直接操作できるなら上記のようなことにはならないが、AWSはSSHしか手段が無いのでエラーになる。
これを回避するには、面倒ながらvipwコマンドとvigrコマンドでsudo権限を持つ一時ユーザー(adtmp)を作成しそれでログインし直し、adminユーザー名を変更することになる。
初回ログイン(Debian 10 Buster)後、adtmpユーザ作成
whoami admin sudo -s export EDITOR=vi vipw adtmp:x:1099:1000:Adtmp:/home/adtmp:/bin/bash を加えて保存。 vipw -s adtmp:!:18559:0:99999:7::: を加えて保存。 vigr sudo:x:27:admin,adtmp と、sudoにadtmpを加えて保存。 vigr -s sudo:*::admin,adtmp と、sudoにadtmpを加えて保存。 vi sudoers.d/90-cloud-init-users adtmp ALL=(ALL) NOPASSWD:ALL を加えて保存。 cd /home cp -Rp admin adtmp # adminのホーム内容(SSHキー含め)丸ごとコピー chown -Rh adtmp:admin adtmp # 所有者をadtmpに変更 exit exit
これで、一時管理者ユーザーadtmpが、外部からadminのSSHキーでログインできるようになったはずなので、一旦adminを抜けてマシンからログアウトし、今度はadtmpユーザーでSSHログインし直す。
adtmpユーザーでログイン後、adminユーザー・グループ変更
whoami adtmp sudo -s export EDITOR=vi usermod -l hogeuser admin # ユーザーログイン名の変更 usermod -c "hogeuser" hogeuser # ユーザーフルネームの変更 usermod -m -d /home/hogeuser hogeuser # ホームディレクトリの移行(admin→hogeuser) groupmod -n hogegroup admin # グループ名の変更 vi sudoers.d/90-cloud-init-users admin ALL=(ALL) NOPASSWD:ALL を、 hogeuser ALL=(ALL) NOPASSWD:ALL に変更して保存。 exit exit
これで、デフォルトユーザー名・グループ名 admin:admin が、hogeuser:hogegroup に変更できたので、再度マシンからログアウトし、hogeuserでSSHログインし直す。
hogeusrユーザーでログイン後、adtmpユーザーを削除する
最後に、不要となった一時管理者アカウントadtmpを削除する。
whoami hogeuser sudo -s export EDITOR=vi userdel -r adtmp # ホームディレクトリごと削除 userdel: adtmp mail spool (/var/mail/adtmp) not found vi sudoers.d/90-cloud-init-users adtmp ALL=(ALL) NOPASSWD:ALL の行を削除する。
mail spoolデータは無いというだけなので気にしなくてよく、passwd,home等adtmpは無事消えているはずである。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【VOICEBOX Engine】403 Forbidden Origin not allowedの対処法
【Python urllib】Proxy URL had no scheme, should start with http:// or https://の対処法
FirebaseでiOSアプリにプッシュ通知機能を実装する【3】
FirebaseでiOSアプリにプッシュ通知機能を実装する【2】
FirebaseでiOSアプリにプッシュ通知機能を実装する【1】
Apple Push Services: この証明書は信頼されていません【対処法】
OpenAI Assistants APIメモ【4】スレッドの一覧表示と削除
OpenAI Assistants APIメモ【3】GPT-3.5およびGPT-4のアシスタントが質問に回答する
OpenAI Assistants APIメモ【2】GPT-3.5およびGPT-4のアシスタントを作成
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【Apache】サーバーに同時接続可能なクライアント数を調整する
Googleスプレッドシートで図形をコピーして使いまわすには
Pythonで処理にかかった時間を計測するには