Linuxサーバーでユーザ―名など情報を変更したい場合はないでしょうか?
ユーザーを削除して再作成などしてないでしょうか?
という事で今回はLinuxサーバーで、ユーザー変更する方法を教えます。
筆者はWindowsサーバーやLinuxサーバーの運用構築を11年以上おこなってきました。その経験を元に知識を公開していきます!
ユーザー作成したけど、ユーザー名やホームディレクトリを変更したい人はこの記事を読んでください。
Linuxサーバーでユーザー名を変更する方法
Linuxサーバーでユーザーを変更するコマンドの基礎構文を以下に示します。
usermod オプション ユーザー名
これでユーザーの情報を変更できます。
Linuxサーバーでユーザーを変更する時のオプション
Linuxサーバーでユーザーを変更する時のオプションをまとめます。
usermodコマンドのオプション | 効果 |
---|---|
-l ユーザー名 | ユーザー名を変更する |
-d ホームディレクトリのパス | ホームディレクトリのパス変更 |
-m | ホームディレクトリを変更する時に中身も移動させる |
-g グループID | 1次グループIDの変更 |
-G グループID | 2次グループIDの変更 |
-s シェルのパス | ログインシェルの変更 |
ユーザー名を変更する
Linuxでユーザー名を変更するにはlオプションを使用します。
usermod -l 新ログイン名 変更したいユーザー名
まずは「userchange」というユーザーを作成してみます。
useradd userchange
ユーザーが作成されたか一覧で確認します。
[root@localhost ~]# cat /etc/passwd | grep userchange
userchange:x:1027:1027::/home/userchange:/bin/bash
ユーザーが作成されています。
ではこのユーザー名を変更してみます。
usermod -l userchange-after userchange
ユーザー名が変更されているか確認します。
[root@localhost ~]# cat /etc/passwd | grep userchange-after
userchange-after:x:1027:1027::/home/userchange:/bin/bash
ユーザー名が変更されています。
ホームディレクトリのパス変更
先程確認してユーザー名は変更されていますが、ホームディレクトリは変更されていない事に気が付いたでしょうか?
ホームディレクトリを変更するにはdオプションを使用します。
usermod -d /home/userchange-after userchange-after
ユーザーのホームディレクトリが変更されたか確認します。
[root@localhost ~]# cat /etc/passwd | grep userchange-after
userchange-after:x:1027:1027::/home/userchange-after:/bin/bash
ホームディレクトリが変更されています。
ホームディレクトリを変更する時に中身も移動させる
先程ユーザーのホームディレクトリを変更しました。
実際のホームディレクトリの中身を確認してみましょう!「userchange」という名前がつくディレクトリがあるか確認しています。
[root@localhost ~]# ls /home/ | grep userchange
userchange
ホームディレクトリを指定しただけでは、以前のホームディレクトリを引き継ぐ事はできません。
そんな時はdオプションと共にmオプションをつけましょう!
そうする事でホームディレクトリも移動できます。
usermod -d /home/userchange-after -m userchange-after
ホームディレクトリも移動しているか確認します。
[root@localhost ~]# ls /home/ | grep userchange-after
userchange-after
ホームディレクトリも移動されています。
グループIDの変更
グループIDを変更できます。グループIDを確認します。
[root@localhost ~]# cat /etc/passwd | grep userchange-after
userchange-after:x:1027:1027::/home/userchange-after:/bin/bash
グループIDが確認できました。1027になっています。
グループIDを100に変更してみます。
usermod -g 100 userchange-after
確認します。
[root@localhost ~]# cat /etc/passwd | grep userchange-after
userchange-after:x:1027:100::/home/userchange-after:/bin/bash
グループIDが100に変更されています。
Linuxサーバーでユーザー管理に関するその他の記事について
ユーザーを一覧表示して確認する方法について
ユーザー作成する方法について
ユーザー削除する方法について
ユーザー名変更する方法について
ユーザーのパスワード管理について
まとめ:Linuxでユーザー名を変更するコマンドについて
Linuxサーバーでユーザーを変更するコマンドの基礎構文は以下でした。
usermod オプション ユーザー名
ユーザーを変更する時のオプションをまとめます。
usermodコマンドのオプション | 効果 |
---|---|
-l ユーザー名 | ユーザー名を変更する |
-d ホームディレクトリのパス | ホームディレクトリのパス変更 |
-m | ホームディレクトリを変更する時に中身も移動させる |
-g グループID | 1次グループIDの変更 |
-G グループID | 2次グループIDの変更 |
-s シェルのパス | ログインシェルの変更 |
ユーザー名を変更しただけでは、ホームディレクトリもホームディレクトリの中身も変更前のままです。
どちらも変更するにはdオプションとmオプションを使用します。
usermod -l 新ユーザー名 -d 新ディレクトリのパス -m 既存のユーザー名
これでユーザー名とディレクトリのパスと中身を変更できます。