usermodコマンド : ユーザ情報変更

Linuxコマンド(ユーザ管理)
2023-10-06
ヒーローイメージ

目次
  1. コマンド概要
  2. コマンド書式
  3. コマンド使用例

コマンド概要

  • usermodコマンドはユーザアカウント情報を変更するコマンドです。
    • ホームディレクトリ、パスワード、シェル、ユーザID、所属グループなどを変更することができます。

コマンド書式

コマンド書式
usermod [オプション] ユーザ名
オプション 説明

-c 文字列
--comment 文字列

ユーザのコメント(=文字列)を変更する。

-d 文字列
--home 文字列

ディレクトリパス(=文字列)を指定してホームディレクトリを変更する。-mオプションを併用するとホームディレクトリの中身を変更先に移動する。

-e YYYY-MM-DD
--expiredate YYYY-MM-DD

ユーザアカウントの有効期限日付(=YYYY-MM-DD)をを指定する。

-f 日数
--inactive 日数

ユーザアカウントの有効期限が切れてから利用不能になるまでの日数を指定する(デフォルトは-1が設定されており有効期限は無限になっている)。有効期限が切れると、ユーザは新しいパスワードを設定する必要がある。

-g 文字列
--gid 文字列

ユーザに所属させるメイングループ(Primary Group)を「グループ名もしくはグループID」(=文字列)で変更する。

-G 文字列
--groups 文字列

ユーザに所属させる1つ以上のサブグループ(Secondary Group)を「グループ名もしくはグループID」(=文字列)で変更する。「,」区切りで複数グループ指定が可能。

-l 文字列
--login 文字列

ユーザ名(=文字列)を変更する。

-p 文字列
--password 文字列

ユーザのパスワード(=文字列)を変更する。パスワードのハッシュ値を指定します。「openssl passwd」コマンドなどを利用すればハッシュ値を生成することが可能です。

-s 文字列
--shell 文字列

ログインシェルを絶対パス(=文字列)で指定する。

-u 数値
--uid 数値

ユーザIDを変更する。

-L
--lock

パスワードをロックする。

-U
--unlock

パスワードロックを解除する。

コマンド使用例

動作確認環境
項目 補足
OS Amazon Linux 2
シェル bash 4.2.46
PS1 [\u@\h \W]$ プロンプト表示形式は [ユーザ名@ホスト名 カレントディレクトリ名]ユーザ権限
PS2 > 継続行のプロンプト表示形式

usermod -c : コメント変更

  • -cオプションを使用するとユーザのコメントを変更することができます。

    コマンド例
    // rootユーザ操作
    // ユーザリスト状態(変更前)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:9999:xxxxxxxxxxxxx:/home/username:/bin/bash
    
    // コメント変更
    [root@hostname ~]# usermod -c 'yyyyyyyyyyyyy' username
    
    // ユーザリスト状態(変更後)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:9999:yyyyyyyyyyyyy:/home/username:/bin/bash
    
    

usermod -d : ホームディレクトリ変更

  • -dオプションを使用するとユーザのホームディレクトリを変更することができます。

    コマンド例
    // rootユーザ操作
    // ユーザリスト状態(変更前)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:9999::/home/username:/bin/bash
    
    // ホームディレクトリ変更
    [root@hostname ~]# usermod -d /home/johndoe username
    
    // ユーザリスト状態(変更後)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:9999::/home/johndoe:/bin/bash
    
    // 該当ディレクトリは作成されない
    [root@hostname ~]# ls /home/johndoe/
    ls: cannot access /home/johndoe/: No such file or directory
    
    

usermod -e : ユーザ有効期限変更

  • -eオプションを使用するとユーザアカウントの有効期限日付を指定することができます。

    コマンド例
    // root操作
    // ユーザアカウント有効期限確認(変更前)
    [root@hostname ~]# chage -l username | grep 'Account expires'
    Account expires                                         : never
    
    // ユーザアカウント有効期限変更
    [root@hostname ~]# usermod -e 2023-12-31 username
    
    // ユーザアカウント期限確認(変更後)
    [root@hostname ~]# chage -l username | grep 'Account expires'
    Account expires                                         : Dec 31, 2023
    
    

usermod -f : PW有効期限変更

  • -fオプションを使用するとユーザアカウントのパスワードの有効期限日付を変更することができます。

    コマンド例
    // rootユーザ操作
    // パスワード有効期限確認(変更前)
    [root@hostname ~]# passwd -S username
    username LK 2023-10-16 0 99999 7 -1 (Password locked.)
    
    // パスワード有効期限変更
    [root@hostname ~]# usermod -f 30 username
    
    // パスワード有効期限確認(変更後)
    [root@hostname ~]# passwd -S username
    username LK 2023-10-16 0 99999 7 30 (Password locked.)
    
    

usermod -g : メイングループ変更

  • -gオプションを使用するとユーザに所属させるメイングループを変更することができます。

    コマンド例
    // rootユーザ操作
    // ユーザ情報確認(グループ変更前)
    [root@hostname ~]# id username
    uid=1002(username) gid=1002(username) groups=1002(username)
    
    // メイングループ変更
    [root@hostname ~]# usermod -g groupname username
    
    // ユーザ情報確認(グループ変更後)
    [root@hostname ~]# id username
    uid=1002(username) gid=9999(groupname) groups=9999(groupname)
    
    

usermod -G : サブグループ変更

  • -Gオプションを使用するとユーザに所属させる1つ以上のサブグループを変更することができます。

    コマンド例
    // rootユーザ操作
    // グループリスト確認(変更前)
    [root@hostname ~]# cat /etc/group | grep -E 'wheel|groupname'
    wheel:x:10:
    groupname:x:9999:
    
    // 所属グループ確認(変更前)
    [root@hostname ~]# id username
    uid=1002(username) gid=1002(username) groups=1002(username)
    
    // 所属グループ変更
    [root@hostname ~]# usermod -G groupname,wheel username
    
    // 所属グループ確認(変更後)
    [root@hostname ~]# id username
    uid=1002(username) gid=1002(username) groups=1002(username),10(wheel),9999(groupname)
    
    // グループリスト確認(変更後)
    [root@hostname ~]# cat /etc/group | grep -E 'wheel|groupname'
    wheel:x:10:username
    groupname:x:9999:username
    
    

usermod -l : ユーザ名変更

  • -lオプションを使用するとユーザ名を変更することができます。
コマンド例
// rootユーザ操作
// ユーザリスト状態(変更前)
[root@hostname ~]# cat /etc/passwd | grep username
username:x:1002:1002::/home/username:/bin/bash

// ユーザ名変更
[root@hostname ~]# sudo usermod -l username2 username

// ユーザリスト状態(変更後)
[root@hostname ~]# cat /etc/passwd | grep username
username2:x:1002:1002::/home/username:/bin/bash

usermod -p : パスワード変更

  • -pオプションを使用するとユーザのパスワードを変更することができます。

    コマンド例
    // rootユーザ操作
    // ユーザパスワード状態(パスワード変更前)
    [root@hostname ~]# cat /etc/shadow | grep username
    username:QScgQP7SKI1zA:19648:0:99999:7:::
    
    // パスワード変更
    [root@hostname ~]# usermod -p 1KWjLGKqOgoFU username
    
    // ユーザパスワード状態(パスワード変更後)
    [root@hostname ~]# cat /etc/shadow | grep username
    username:1KWjLGKqOgoFU:19648:0:99999:7:::
    
    

usermod -s : ログインシェル変更

  • -sオプションを使用するとユーザのログインシェルを変更することができます。

    コマンド例
    // rootユーザ操作
    // 利用可能なシェル一覧
    [root@hostname ~]# cat /etc/shells
    /bin/sh
    /bin/bash
    /usr/bin/sh
    /usr/bin/bash
    /bin/tcsh
    /bin/csh
    
    // ユーザリスト状態(変更前)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:1002::/home/username:/bin/bash
    
    // ログインシェル変更
    [root@hostname ~]# usermod -s /bin/csh username
    
    // ユーザリスト状態(変更後)
    [root@hostname ~]# cat /etc/passwd | grep username
    username:x:1002:1002::/home/username:/bin/csh
    
    

usermod -u : ユーザID変更

  • -uオプションを使用するとユーザのログインシェルを変更することができます。

    コマンド例
    // rootユーザ操作
    // ユーザ情報表示(ユーザID変更前)
    [root@hostname ~]# id username
    uid=1002(username) gid=9999(groupname) groups=9999(groupname),1002(username)
    
    // ユーザID変更
    [root@hostname ~]# usermod -u 8888 username
    
    // ユーザ情報表示(ユーザID変更後)
    [root@hostname ~]# id username
    uid=8888(username) gid=9999(groupname) groups=9999(groupname),1002(username)
    
    

usermod -L : パスワードロック

  • -Lオプションを使用するとユーザへパスワードロックすることができます。

    コマンド例
    // rootユーザ操作
    // パスワードロック状態確認(パスワードロック前)
    [root@hostname ~]# passwd -S username
    username PS 2023-12-31 0 99999 7 -1 (Alternate authentication scheme in use.)
    
    // パスワードロック
    [root@hostname ~]# usermod -L username
    
    // パスワードロック状態確認(パスワードロック後)
    [root@hostname ~]# passwd -S username
    username LK 2023-12-31 0 99999 7 -1 (Password locked.)
    
    

usermod -U : パスワードロック解除

  • -Uオプションを使用するとユーザへのパスワードロックを解除することができます。

    コマンド例
    // rootユーザ操作
    // パスワードロック状態確認(パスワードロック前)
    [root@hostname ~]# passwd -S username
    username LK 2023-12-31 0 99999 7 -1 (Password locked.)
    
    // パスワードロック
    [root@hostname ~]# usermod -L username
    
    // パスワードロック状態確認(パスワードロック後)
    [root@hostname ~]# passwd -S username
    username PS 2023-12-31 0 99999 7 -1 (Alternate authentication scheme in use.)
    
    

コメント


Palette Codeなるべく丁寧にプログラミング関連技術を解説するサイト