2023-04-20
AWSインスタンス作成時の初期ユーザ名・グループ名はDebianの場合admin/adminであるが、このままではまずいので変更する。目的は、
変更前:
ログインID:admin
ニックネーム:Debian
グループID:admin
ホームディレクトリ:/home/admin
を、
変更後:
ログインID:hogeuser
ニックネーム:Hoge User
グループID:hogegroup
ホームディレクトリ:/home/hogeuser
とすることとする。
しかしながら、usermodで単純に変更しようとしても、「今ログイン中のユーザ名は変更できない」とエラー終了してしまう。
よって、sudo権限を持つテンポラリユーザーを作成し、そのユーザー名でログインして、そこからadminの情報を変更する方法を取る。
1、sudoの設定
sudoグループはNOPASSWDとしておく(当方環境の場合)。
sudo -s export EDITOR=vi visudo /etc/sudoers #Defaults env_reset Defaults env_keep += "PATH EDITOR" Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" %sudo ALL=(ALL:ALL) NOPASSWD:ALL
2、テンポラリsudoユーザー(tmpuser)の作成とSSHログインし直し
sudo -s useradd -G admin tmpuser usermod -aG sudo tmpuser cd /home cp -Rp admin tmpuser chown -Rh tmpuser:admin tmpuser
いったんマシンからログアウトし、今度はtmpuserでSSHし直す
ssh tmpuser@IPADDR -i <ssh private key>
3、テンポラリtmpuserがsudoでrootになってadminをhogeuserに変更する
tmpuserでSSHログインして、他のユーザ(admin)がマシンにログインしていなければ、usermodが可能になる。
sudo -s usermod -l hogeuser admin groupmod -n hogegroup admin cd /home mv admin hogeuser usermod -d /home/hogeuser -c "Hoge User" hogeuser
これで、最初に記した「変更後」の情報にadminが書き換わったはずである。
cat /etc/passwd cat /etc/group
で確認して、マシンからログアウトし、今度はhogeuserでSSHログインする。
ssh hogeuser@IPADDR -i <ssh private key>
4、テンポラリtmpuserを削除して完了
hogeuserでSSHログインでき、かつsudo -sでパスワード無しでrootになれることが確認できたら、tmpuserは削除できる。
sudo -s userdel -r tmpuser
あと元々あったsudoers.d/90-cloud-init-usersもadmin用NOPASSWD設定があるだけなのでファイルごと削除でもいいが、残しておいても特に問題はないかと。
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
TSUKUMOのマルチGPUパソコンWA9J-X211/XTのUbuntu Server 22.04でMYCOEIROINK作成コードを実行し音声合成モデルをトレーニングする
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とCOEIROINK Engineを導入する
Python venv(仮想環境作成)でError: Command returned non-zero exit status 1のエラー対処法
【Ubuntu】プロジェクトごとに複数のPythonバージョンを使い分ける
【PHP】フォーム入力を受け取り出力する
【Ubuntu】aptでインストールしたapache2にソースコンパイルしたphpをマルチスレッドモードで組み込む
【PHP】HTMLファイルを読み込んで文字列変換して出力する
TSUKUMOのマルチGPUパソコンWA9J-X211/XTにUbuntu Server 22.04とVOICEVOX Engineを導入する
【VOICEBOX Engine】403 Forbidden Origin not allowedの対処法
【Windows10】リモートデスクトップ間のコピー&ペーストができなくなった場合の対処法
Windows版Google Driveが使用中と言われアンインストールできない場合
Googleファミリーリンクで子供の端末の現在地がエラーで取得できない場合
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
Googleスプレッドシートを編集したら自動で更新日時を入れる
【Javascript】JSON配列内にある特定要素の取得法【Node.js】
【PHP】Mail/mimeDecodeを使ってメールの中身を解析(準備編)