前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中usermod命令15个实际示例

linux中usermod命令15个实际示例

作者头像
入门笔记
发布2022-06-02 15:25:44
1.3K0
发布2022-06-02 15:25:44
举报
文章被收录于专栏:入门小站

创建用户帐户后,在一些需要更改现有用户属性的场景中,例如更改用户的主目录、登录名、登录 shell、密码到期日期等,在这种情况下使用 usermod 命令。

当我们在终端中执行 usermod 命令时,会使用和影响以下文件。

  1. /etc/passwd– 用户帐户信息。
  2. /etc/shadow– 帐户密码信息。
  3. /etc/group– 组帐户信息。
  4. /etc/gshadow– 组密码信息。
  5. /etc/login.defs– 是设置用户帐号限制的文件。该文件里的配置对root用户无效。

命令的基本语法是

代码语言:javascript
复制
usermod [options] username
要求
  1. 我们必须有现有的用户帐户才能执行 usermod 命令。
  2. 只允许超级用户(root)执行 usermod 命令。
  3. usermod 命令可以在任何 Linux 发行版上执行。
  4. 必须具有带选项的 usermod 命令的基本知识
Usermod 的选项

usermod 命令使用起来很简单,有很多选项可以对现有用户进行更改。让我们通过以下选项的帮助,通过修改 Linux box 中的一些现有用户来看看如何使用 usermod 命令。

  1. -c= 我们可以为用户帐户添加评论字段。
  2. -d= 修改任何现有用户帐户的目录。
  3. -e= 使用此选项,我们可以使帐户在特定时期到期。
  4. -g= 更改用户的主要组。
  5. -G= 添加补充组。
  6. -a= 将组中的任何人添加到辅助组。
  7. -l= 将登录名从 rumenz 更改为 rumenz_admin。
  8. -L= 锁定用户帐户。这将锁定密码,因此我们无法使用该帐户。
  9. -m= 将主目录的内容从现有主目录移动到新目录。
  10. -p= 使用未加密的密码作为新密码。(不安全)。
  11. -s= 为新帐户创建一个指定的 shell。
  12. -u= 用于为 0 到 999 之间的用户帐户分配 UID。
  13. -U= 解锁用户帐户。这将删除密码锁并允许我们使用用户帐户。

1. 向用户账户添加信息

-c 选项用于设置关于用户帐户的简短备注。例如添加有关的信息rumenz 用户,使用以下命令。

代码语言:javascript
复制
# usermod -c "This is rumenz" rumenz

添加用户信息后,相同的评论可以在/etc/passwd文件。

代码语言:javascript
复制
# grep -E --color 'rumenz' /etc/passwd
    
rumenz:x:500:500:This is rumenz:/home/rumenz:/bin/sh

2. 更改用户主目录

在上面的步骤中,我们可以看到我们的主目录在/home/rumenz/下,如果我们需要将其更改为其他目录,我们可以使用-d选项和 usermod 命令来更改它。

例如,我想将我们的主目录更改为/var/www/,但在更改之前,让我们使用以下命令检查用户的当前主目录。

代码语言:javascript
复制
# grep -E --color '/home/rumenz' /etc/passwd
rumenz:x:500:500:This is rumenz:/home/rumenz:/bin/sh

现在,将主目录从/home/rumenz/var/www/并在更改后确认主控制器。

代码语言:javascript
复制
# usermod -d /var/www/ rumenz
# grep -E --color '/var/www/' /etc/passwd
rumenz:x:500:500:This is rumenz:/var/www:/bin/sh

3. 设置用户账户到期日

选项 -e 用于在具有日期格式的用户帐户上设置到期日期YYYY-MM-DD.在为用户设置到期日期之前,让我们首先使用检查当前帐户的到期状态chage(更改用户密码到期信息)命令。

代码语言:javascript
复制
# chage -l rumenz
    
Last password change     : Nov 02, 2014
Password expires     : never
Password inactive     : never
Account expires      : Dec 01, 2014
Minimum number of days between password change  : 0
Maximum number of days between password change  : 99999
Number of days of warning before password expires : 7

到期状态rumenz 用户是2021 年 12 月 1 日,将其更改为2021 年 11 月 1 日 usermod -e选项并用确认到期日期chage 命令。

代码语言:javascript
复制
# usermod -e 2014-11-01 rumenz
# chage -l rumenz
    
Last password change     : Nov 02, 2021
Password expires     : never
Password inactive     : never
Account expires      : Nov 01, 2021
Minimum number of days between password change  : 0
Maximum number of days between password change  : 99999
Number of days of warning before password expires : 7

4. 更改用户主要组

要设置或更改用户主要组,我们使用选项 -g 使用 usermod 命令。在更改用户主要组之前,首先确保检查用户rumenz_test的当前组。

代码语言:javascript
复制
# id rumenz_test
uid=501(rumenz_test) gid=502(rumenz_test) groups=502(rumenz_test)

现在,将babin组设置为用户rumenz_test的主要组并确认更改。

代码语言:javascript
复制
# usermod -g babin rumenz_test
# id rumenz_test
    
uid=501(rumenz_test) gid=502(babin) groups=502(rumenz_test)

5. 向现有用户添加组

如果您想添加一个名为rumenz_test0的新组到rumenz用户,您可以使用选项-G 使用 usermod 命令,如下所示。

代码语言:javascript
复制
# usermod -G rumenz_test0 rumenz
# id rumenz

将组添加到用户

Note: 在向现有用户添加新组时使用 -G单独选项,将删除用户所属的所有现有组。所以,总是添加 -a(附加)与-G 添加或追加新组的选项。

6. 为用户添加补充组和主组

如果您需要将用户添加到任何一个补充组,您可以使用选项 -a-G。例如,这里我们要添加一个用户帐户rumenz_test0wheel用户。

代码语言:javascript
复制
# usermod -a -G wheel rumenz_test0
# id rumenz_test0

因此,用户rumenz_test0保留在其主要组和次要组中(wheel)。这将使我的普通用户帐户在 Linux 框中执行任何 root 特权命令。

代码语言:javascript
复制
eg : sudo service httpd restart

7. 更改用户登录名

要更改任何现有的用户登录名,我们可以使用 -l(帐号名称)选项。在下面的示例中,我们更改登录名rumenzrumenz_admin.所以用户名rumenz已使用新名称重命名rumenz_admin.

代码语言:javascript
复制
# usermod -l rumenz_admin rumenz

现在检查rumenz用户,它将不存在,因为我们已将其更改为rumenz_admin.

代码语言:javascript
复制
# id rumenz

检查rumenz_admin帐户它将以相同的方式存在UID以及我们之前添加的现有组。

代码语言:javascript
复制
# id rumenz_admin

8. 锁定用户账户

要锁定任何系统用户帐户,我们可以使用 -L(锁定)选项,帐户被锁定后我们无法使用密码登录,你将看到一个``在加密密码之前添加/etc/shadow文件,表示禁用密码。

代码语言:javascript
复制
# usermod -L babin

检查锁定的帐户。

代码语言:javascript
复制
# grep -E --color 'babin' cat /etc/shadow

9. 解锁用户账户

-U 选项用于解锁任何锁定的用户,这将删除!在加密密码之前。

代码语言:javascript
复制
# grep -E --color 'babin' /etc/shadow
# usermod -U babin

解锁后验证用户。

代码语言:javascript
复制
# grep -E --color 'babin' /etc/shadow

解锁用户帐户

10. 将用户主目录移动到新位置

可以使用选项 -d-m 将现有用户文件从当前主目录移动到新的主目录。

检查帐户及其当前主目录。

代码语言:javascript
复制
# grep -E --color 'pinky' /etc/passwd

然后列出用户拥有的文件。

代码语言:javascript
复制
# ls -l /home/pinky/

现在我们必须将主目录从/home/pinky/var/pinky.

代码语言:javascript
复制
# usermod -d /var/pinky/ -m pinky

接下来,验证目录更改。

代码语言:javascript
复制
# grep -E --color 'pinky' /etc/passwd

检查下的文件/home/pinky。在这里,我们使用了移动文件-m选项,所以不会有文件。小指用户文件现在位于/var/pinky.

代码语言:javascript
复制
# ls -l /home/pinky/
# ls -l /var/pinky/

移动用户主目录

11. 为用户创建未加密的密码

要创建未加密的密码,我们使用选项 -p (密码)。出于演示目的,我正在设置一个新密码,例如 redhat 对用户pinky.

代码语言:javascript
复制
# usermod -p redhat pinky

设置密码后,现在检查影子文件,看看它是加密格式还是未加密格式。

代码语言:javascript
复制
# grep -E --color 'pinky' /etc/shadow

12. 更改用户shell

用户登录shell可以在用户创建期间更改或定义useradd命令或更改为 usermod命令使用选项-s (shell)。例如,用户 babin/bin/bashshell 默认情况下,现在我想将其更改为/bin/sh.

代码语言:javascript
复制
# grep -E --color 'babin' /etc/passwd
# usermod -s /bin/sh babin

更改用户shell后,使用以下命令验证用户shell。

代码语言:javascript
复制
# grep -E --color 'babin' /etc/passwd

更改用户登录shell

13. 更改用户 ID (UID)

在下面的示例中,您可以看到我的用户帐户 babin 持有的 UID502,现在我想把它改成888作为我的 UID。我们可以在之间分配 UID0999.

代码语言:javascript
复制
# grep -E --color 'babin' /etc/passwd
OR
# id babin

现在,让我们更改用户的 UIDbabin使用 -u (uid) 选项并验证更改。

代码语言:javascript
复制
# usermod -u 888 babin
# id babin

更改用户 UID

14. 使用多个选项修改用户帐户

这里我们有一个用户rumenz,现在我想使用一个带有我们上面讨论的所有选项的单个命令一次修改他的主目录、shell、到期日期、标签、UID 和组。

用户rumenz的默认主目录为/home/rumenz,现在我想将其更改为/var/www/html并将其 shell 指定为bash,将到期日期设置为 2021 年 12 月 10 日,添加新标签为This is rumenz,更改 UID 到 555,改到deploy组。

现在让我们看看如何使用多个选项修改 rumenz 帐户。

代码语言:javascript
复制
# usermod -d /var/www/html/ -s /bin/bash -e 2021-12-10 -c "This is rumenz" -u 555 -aG deploy rumenz

然后检查 UID 和主目录更改。

代码语言:javascript
复制
# grep -E --color 'rumenz' /etc/passwd

帐户过期检查。

代码语言:javascript
复制
# chage -l rumenz

检查所有 rumenz 都加入的组。

代码语言:javascript
复制
# grep -E --color 'rumenz' /etc/group

对 usermod 使用多个选项

15. 更改用户的 UID 和 GID

我们可以更改当前用户的 UID 和 GID。要更改为新 GID,我们需要一个现有组。这里已经有一个名为orange的帐户,其 GID 为777

现在,我的 rumenz 用户帐户要分配给666 的UID和 Orange (777) 的GID。

在修改之前检查当前的 UID 和 GID。

代码语言:javascript
复制
# id rumenz

修改 UID 和 GID。

代码语言:javascript
复制
# usermod -u 666 -g 777 rumenz

检查更改。

代码语言:javascript
复制
# id rumenz

相关文章

linux中useradd命令15个实际示例

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 要求
  • Usermod 的选项
  • 1. 向用户账户添加信息
  • 2. 更改用户主目录
  • 3. 设置用户账户到期日
  • 4. 更改用户主要组
  • 5. 向现有用户添加组
  • 6. 为用户添加补充组和主组
  • 7. 更改用户登录名
  • 8. 锁定用户账户
  • 9. 解锁用户账户
  • 10. 将用户主目录移动到新位置
  • 11. 为用户创建未加密的密码
  • 12. 更改用户shell
  • 13. 更改用户 ID (UID)
  • 14. 使用多个选项修改用户帐户
  • 15. 更改用户的 UID 和 GID
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档