2023-03-21
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は無事消えているはずである。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Windowsのデスクトップ画面をそのまま配信するための下準備
WindowsでGPUの状態を確認するには(ASUS系監視ソフトの自動起動を停止する)
CORESERVER v1プランからさくらインターネットスタンダートプランへ引っ越しメモ
さくらインターネットでPython MecabをCGIから使う
さくらインターネットのPHPでAnalytics-G4 APIを使う
インクルードパスの調べ方
【Git】特定ファイルを除外する.gitignore
【Ubuntu/Debian】NVIDIA関係のドライバを自動アップデートさせない
【Python】Spacyを使用して文章から出発地と目的地を抜き出す
進研ゼミチャレンジタッチをAndroid端末化する
Windows版Google Driveが使用中と言われアンインストールできない場合
【Apache】サーバーに同時接続可能なクライアント数を調整する
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
【Linux】iconv/libiconvをソースコードからインストール
Ubuntu Server 21.10でイーサリアムブロックチェーン【その5】