さくらのVPSでは、almaLinux をインストールすると alma というユーザー名が作られる。デフォルトのユーザー名だとセキュリティ的に不安なので任意のユーザー名に変更した。
以下のページにくわしい手順が載っているが、エラーに遭遇もしたので復習もかねてまとめた。
1.root ユーザーでログインする
作業の為、一時的に root ユーザーでログイン可能なよう、パスワードを設定する。ここで設定したパスワードは作業後に削除するので時間をかけて練る必要はない。
sudo passwd root
passwd はパスワードを変更するためのコマンド。
root のパスワードを設定したら root でログインし直す。
2.ユーザー名を変更
ユーザー名を変更する前に、alma が現在のユーザーであることを確認
id alma
ユーザー名を変更
usermod -l 新ログイン名 alma(旧ログイン名)
メッセージが出て変更できなかった。
usermod: user alma(元ユーザー名) is currently used by process 815
なんか使われているらしいのでプロセスを終了させる
kill 815
kill -KILL 815 ← こっちの方が強力
しかし、teratarm からサーバーにログインして、root にユーザー変更後、alma のプロセスをすべて終了させてようとすると、teratarm が強制終了する。おそらく、サーバーにログイン時に alma でログインしているのが原因。alma のプロセスが発生しないように、さくらのVPS のコントロールパネルの VNCコンソールから root でログインして、ユーザー名変更を実行。以降、変更後のユーザーに sudo の権限を与えるまではコントロールパネルからコンソールを操作した方がエラーに遭遇しにくい。
VNCコンソールに root でログイン後、改めてユーザー名変更を実施
usermod -l 新ログイン名 alma(旧ログイン名)
3.ユーザーのホームディレクトリを変更する
ユーザーのホームディレクトリは自動的に変更されない為、新しいユーザー名と同名のホームディレクトリに移動する。 既に運用中である場合、絶対パスで指定および参照されている箇所が無いか注意!
usermod -m -d /home/新ユーザー名 新ユーザー名
オプションの意味
-d パス → パス ユーザーのホームディレクトリを変更する(現ディレクトリの内容を移動したい場合は「-m」オプションを同時に指定)
-m →(「-d」オプション指定時)現ホームディレクトリの内容を新たな場所に移動する
※ usermod は user modify の略。
ユーザーのホームディレクトリが変更された事を確認。
[root@localhost ~]# echo ~新ユーザー名
/home/新ユーザー名
[root@localhost ~]# ls -l ~新ユーザー名
4.ユーザーグループ名を変更する
groupmod -n 新ユーザー名 元ユーザー名
ユーザーの所属グループのグループ名が変更された事を確認
[root@localhost ~]# id 新ユーザー名 uid=1000(新ユーザー名) gid=1000(新ユーザー名) groups=1000(新ユーザー名),10(wheel)
5.sudoの設定を変更する
# visudo
# 最終行に有る下記の alma を変更後のユーザー名に変更します。
alma ALL=(ALL) NOPASSWD: ALL
# 変更例
新ユーザー名 ALL=(ALL) NOPASSWD: ALL
変更後のユーザーにsudo権限が与えられている事を確認。
# sudo -l -U 新ユーザー名
Matching Defaults entries for 新ユーザー名 on localhost:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
User 新ユーザー名 may run the following commands on localhost:
(ALL) ALL
(ALL) NOPASSWD: ALL
6.rootユーザーでログイン不可能とする
変更後のユーザー名でログインし直して、sudoコマンドが利用できる事を確認する。
[新ユーザー名@localhost ~]$ id
uid=1000(sakura) gid=1000(sakura) groups=1000(sakura),10(wheel)
[新ユーザー名@localhost ~]$ pwd
/home/sakura
[新ユーザー名@localhost ~]$ sudo ls ~root # sudoが利用できるかの確認の為、他のコマンドでの確認でも問題ございません。
確認ができたら、一時的に設定した root ユーザーのパスワードを削除してロック。
[新ユーザー名@localhost ~]$ sudo passwd -d root
[新ユーザー名@localhost ~]$ sudo passwd -l root
以上で、ユーザー名の変更は完了。