作用:usermod 命令用来修改已有用户的信息,即更改用户的相关属性,如用户的UID、GID、家目录、用户标准组、登录shell等。
用法:
1 用法:usermod [选项] 登录 2 3 选项: 4 -c, --comment 注释 GECOS 字段的新值 5 -d, --home HOME_DIR 用户的新主目录 6 -e, --expiredate EXPIRE_DATE 设定帐户过期的日期为 EXPIRE_DATE 7 -f, --inactive INACTIVE 过期 INACTIVE 天数后,设定密码为失效状态 8 -g, --gid GROUP 强制使用 GROUP 为新主组 9 -G, --groups GROUPS 新的附加组列表 GROUPS 10 -a, --append GROUP 将用户追加至上边 -G 中提到的附加组中, 11 并不从其它组中删除此用户 12 -h, --help 显示此帮助信息并推出 13 -l, --login LOGIN 新的登录名称 14 -L, --lock 锁定用户帐号 15 -m, --move-home 将家目录内容移至新位置 (仅于 -d 一起使用) 16 -o, --non-unique 允许使用重复的(非唯一的) UID 17 -p, --password PASSWORD 将加密过的密码 (PASSWORD) 设为新密码 18 -R, --root CHROOT_DIR chroot 到的目录 19 -P, --prefix PREFIX_DIR prefix directory where are located the /etc/* files 20 -s, --shell SHELL 该用户帐号的新登录 shell 21 -u, --uid UID 用户帐号的新 UID 22 -U, --unlock 解锁用户帐号 23 -v, --add-subuids FIRST-LAST add range of subordinate uids 24 -V, --del-subuids FIRST-LAST remove range of subordinate uids 25 -w, --add-subgids FIRST-LAST add range of subordinate gids 26 -W, --del-subgids FIRST-LAST remove range of subordinate gids 27 -Z, --selinux-user SEUSER 用户账户的新 SELinux 用户映射
应用实例
创建了一个用户user02,但某些属性并不是我们想要的。可以用户usermod修其属性,如下usermod命令修改用户的登录shell为bash,主目录修改为/user/user02,用户组修改为root组。执行完成后/etc/passwd中相应字段会自动修改。
# useradd -s /bin/csh -g users -G adm,root user02 # usermod -s /bin/bash -d /user/user02 -g root user02 # grep user02 /etc/passwd user02:x:1001:0::/user/user02:/bin/bash
在使用usermod命令修改用户的UID和GID时,系统将自动修改其家目录和其他特定目录下文件的属主属组信息,但并不会全盘扫描以修改该用户所有文件的属性,所以会导致该用户的某些文件属主属组信息异常,如下面示例中/tmp 下和/opt 下user01用户的文件属性在修改为了用户UID、GID后没有自动修改,导致文件的属主为数字,属组还是保存为原来的组。这一点需要注意,以免修改用户ID和组ID时导致权限问题。
[user01@192 ~]$ touch testfile [user01@192 ~]$ mkdir testdir [user01@192 ~]$ ls -la 总用量 12 drwx------. 6 user01 user01 138 4月 19 00:32 . drwxr-xr-x. 5 root root 43 4月 19 00:32 .. -rw-r--r--. 1 user01 user01 18 8月 21 2019 .bash_logout -rw-r--r--. 1 user01 user01 193 8月 21 2019 .bash_profile -rw-r--r--. 1 user01 user01 231 8月 21 2019 .bashrc drwxrwxr-x. 3 user01 user01 18 4月 19 00:32 .cache drwxrwxr-x. 3 user01 user01 18 4月 19 00:32 .config drwxr-xr-x. 4 user01 user01 39 3月 16 00:42 .mozilla drwxrwxr-x. 2 user01 user01 6 4月 19 00:32 testdir -rw-rw-r--. 1 user01 user01 0 4月 19 00:32 testfile [user01@192 ~]$ cd /tmp/ [user01@192 tmp]$ touch testfile [user01@192 tmp]$ mkdir testdir [user01@192 tmp]$ ls -ld testfile testdir drwxrwxr-x. 2 user01 user01 6 4月 19 00:33 testdir -rw-rw-r--. 1 user01 user01 0 4月 19 00:33 testfile [root@192 ~]# id user01 uid=1002(user01) gid=1002(user01) 组=1002(user01) [root@192 ~]# usermod -u 1003 -g 1000 user01 [root@192 ~]# [root@192 ~]# ls -ld /home/user01 drwx------. 6 user01 G 159 4月 19 00:32 /home/user01 [root@192 ~]# ls -al /home/user01 总用量 16 drwx------. 6 user01 G 159 4月 19 00:32 . drwxr-xr-x. 5 root root 43 4月 19 00:32 .. -rw-------. 1 user01 G 128 4月 19 00:34 .bash_history -rw-r--r--. 1 user01 G 18 8月 21 2019 .bash_logout -rw-r--r--. 1 user01 G 193 8月 21 2019 .bash_profile -rw-r--r--. 1 user01 G 231 8月 21 2019 .bashrc drwxrwxr-x. 3 user01 G 18 4月 19 00:32 .cache drwxrwxr-x. 3 user01 G 18 4月 19 00:32 .config drwxr-xr-x. 4 user01 G 39 3月 16 00:42 .mozilla drwxrwxr-x. 2 user01 G 6 4月 19 00:32 testdir -rw-rw-r--. 1 user01 G 0 4月 19 00:32 testfile [root@192 ~]# ls -ld /tmp/testfile /tmp/testdir drwxrwxr-x. 2 1002 user01 6 4月 19 00:33 /tmp/testdir -rw-rw-r--. 1 1002 user01 0 4月 19 00:33 /tmp/testfile
[root@192 ~]# cd /var/spool/mail/
[root@192 mail]# ll
总用量 0
-rw-rw----. 1 G mail 0 3月 16 00:50 G
-rw-rw----. 1 rpc mail 0 3月 16 00:42 rpc
-rw-rw----. 1 user01 mail 0 4月 19 00:32 user01
-rw-rw----. 1 user02 mail 0 4月 19 00:22 user02
[root@192 mail]# cd /opt/
[root@192 opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月 18 2018 rh
[root@192 opt]# mkdir user01
[root@192 opt]# chown user01:1000 user01
[root@192 opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月 18 2018 rh
drwxr-xr-x. 2 user01 G 6 4月 19 00:44 user01
[root@192 opt]# usermod -u 1002 -g 100 user01
[root@192 opt]# ll
总用量 0
drwxr-xr-x. 2 root root 6 6月 18 2018 rh
drwxr-xr-x. 2 1003 G 6 4月 19 00:44 user01