usermodコマンドでユーザー設定を変更する方法|グループ追加・シェル変更・ロックもコマンド

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxコマンド, LinuxコマンドU-Z, ユーザ・グループ管理コマンド > usermodコマンドでユーザー設定を変更する方法|グループ追加・シェル変更・ロックもコマンド
「ユーザーのグループを変更したいけど、どのオプションを使えばいいかわからない」
「サービス用アカウントのシェルをnologinに変えたい」

既存ユーザーの設定を変更するusermodコマンドは、サーバー運用で頻繁に使います。
この記事では、usermodコマンドの基本から、グループ追加・ホームディレクトリ変更・アカウントロックまで、実務で必要な操作を網羅します。
【この記事でわかること】
・-aG でサブグループを追加する際は -a(append)を必ず付ける。忘れると既存グループが全て外れる
・-s /sbin/nologin でサービス用アカウントのログインを禁止するのがセキュリティの鉄則
・-L でアカウントをロック、-U でアンロック。退職者アカウントの一時停止に使う
・-d -m でホームディレクトリのパスを変更し、ファイルも新しい場所に移動する
・-e YYYY-MM-DD で有効期限を設定し、期間限定アカウントを自動的に無効化できる

「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

usermodコマンドとは?

usermodは「user modify」の略で、既存ユーザーの設定を変更するコマンドです。

似たコマンドとの違いを整理しておきましょう。

useradd:ユーザーを新規作成する
usermod:既存ユーザーの設定を変更する
userdel:ユーザーを削除する

usermodはroot権限(sudo)が必要です。一般ユーザーでは実行できません。

基本的な使い方

1. プライマリグループを変更する(-g)

ユーザーが所属するプライマリグループ(メイングループ)を変更します。

# miyazakiのプライマリグループをwebに変更 sudo usermod -g web miyazaki # 確認 id miyazaki uid=1001(miyazaki) gid=1002(web) groups=1002(web)

2. サブグループ(補助グループ)に追加する(-aG)

-aG は実務で最もよく使うオプションです。既存のグループ所属を維持したまま、新しいグループにも追加します。

※ -a(append)を忘れると、既存のサブグループがすべて外れるので注意してください。

# wheelグループに追加(sudo権限の付与) sudo usermod -aG wheel miyazaki # dockerグループにも追加 sudo usermod -aG docker miyazaki # 確認 id miyazaki uid=1001(miyazaki) gid=1001(miyazaki) groups=1001(miyazaki),10(wheel),998(docker)

【重要】-aを忘れた場合の危険性

-G だけで -a をつけ忘れると、指定したグループ「だけ」にサブグループが置き換わります。

# 現在のグループ id miyazaki uid=1001(miyazaki) gid=1001(miyazaki) groups=1001(miyazaki),10(wheel),998(docker) # -aなしで-Gだけ指定すると... sudo usermod -G web miyazaki # wheelとdockerグループから外れてしまう! id miyazaki uid=1001(miyazaki) gid=1001(miyazaki) groups=1001(miyazaki),1002(web)

グループを追加するときは、必ず -aG とセットで使ってください。

3. ホームディレクトリを変更する(-d -m)

-dでホームディレクトリのパスを変更し、-mで既存ファイルを新しいディレクトリに移動します。

# ホームディレクトリを/home/newdirに変更し、ファイルも移動 sudo usermod -d /home/newdir -m miyazaki # 確認 grep miyazaki /etc/passwd miyazaki:x:1001:1001::/home/newdir:/bin/bash

-mをつけないと、/etc/passwdのパスだけが変わり、実際のファイルは元の場所に残ります。

4. ログインシェルを変更する(-s)

ユーザーのデフォルトシェルを変更します。

# サービス用アカウントのシェルをnologinに変更(ログイン禁止) sudo usermod -s /sbin/nologin nginx # bashに戻す sudo usermod -s /bin/bash miyazaki

Webサーバー(nginx, apache)やメールサーバー(postfix)などのサービス用アカウントは、セキュリティのためシェルを /sbin/nologin に設定するのが鉄則です。

応用・実務Tips

1. アカウントをロック・アンロックする(-L / -U)

退職者のアカウントを一時的にロックする場合などに使います。

# アカウントをロック(ログイン不可にする) sudo usermod -L miyazaki # /etc/shadowのパスワードフィールドに「!」が付く sudo grep miyazaki /etc/shadow miyazaki:!$6$xxxx...:19435:0:99999:7::: # アカウントをアンロック sudo usermod -U miyazaki

-Lはパスワードの先頭に「!」を付けてログインを無効にします。アカウントの削除ではなく一時的な停止に適しています。

2. アカウントの有効期限を設定する(-e)

外部委託や期間限定アカウントに有効期限を設定します。

# 2026年3月31日に期限切れにする sudo usermod -e 2026-03-31 miyazaki # 確認 sudo chage -l miyazaki Account expires : Mar 31, 2026

3. ユーザー名を変更する(-l)

ユーザー名(ログイン名)そのものを変更します。

# ユーザー名をoldnameからnewnameに変更 sudo usermod -l newname oldname # ホームディレクトリも合わせて変更する場合 sudo usermod -l newname -d /home/newname -m oldname

ユーザー名を変えてもUID(ユーザーID)は変わらないため、既存ファイルの所有者は維持されます。

トラブルシュート・エラー対処

「user is currently used by process」が出た時の対処法

対象ユーザーがログイン中、またはプロセスを実行している場合にこのエラーが出ます。

$ sudo usermod -l newname miyazaki usermod: user miyazaki is currently used by process 1234 # 対象ユーザーのプロセスを確認 ps -u miyazaki # 対象ユーザーをログアウトさせてから再実行する

「Permission denied」「usermod: Permission denied.」が出た時の対処法

root権限なしで実行した場合のエラーです。sudoをつけて実行してください。

$ usermod -aG wheel miyazaki usermod: Permission denied. # sudoをつけて実行 $ sudo usermod -aG wheel miyazaki

本記事のまとめ

やりたいこと コマンド
プライマリグループを変更する sudo usermod -g グループ名 ユーザー名
サブグループに追加する sudo usermod -aG グループ名 ユーザー名
ホームディレクトリを変更する sudo usermod -d /新パス -m ユーザー名
ログインシェルを変更する sudo usermod -s /sbin/nologin ユーザー名
アカウントをロックする sudo usermod -L ユーザー名
アカウントをアンロックする sudo usermod -U ユーザー名
有効期限を設定する sudo usermod -e YYYY-MM-DD ユーザー名
ユーザー名を変更する sudo usermod -l 新名前 旧名前

usermodで設定変更したつもりが反映されていなかった経験はありませんか?

コマンドの使い方を一つひとつ覚えていくのは時間がかかります。
ネットの切れ端の情報をコピペするだけでなく、現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として20年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。