linux usermod命令例子

时间:2020-03-05 15:28:45  来源:igfitidea点击:

Linux usermod命令用于修改或者更改现有用户的属性。
用户的属性是主目录,shell,密码到期日,组,uid等。

当命令运行时,相应地更新/etc/passwd(用户帐户信息),/etc/shadow(安全帐户信息)和/etc/group(组信息)文件中的数据。

只有根(超级用户)可以使用此命令。
此命令的基本语法如下。

usermod [-c comment] [-d home_dir [-m]] [-e expire_date] [-f inactive_time]
[-g initial_group] [-G group [,...]] [-l login_name] [-p passwd]
[-s shell] [-u uid [-o]] [-L|-U]login

在本教程中,我们将通过一些示例来学习usermod命令。

1)更改用户的主目录

假设当前的用户'测试'的主目录是/home/test,并且我们希望将其更改为现有目录'/home/testnew'而无需复制'/home/test'的内容,我们可以使用以下命令:

# usermod –d /home/testnew test

如果要移动'/home/test'的内容也(如果新目录不存在,它将创建和移动),则需要使用选项"-m"。

# usermod –d /home/testnew –m test

2)向用户添加组

使用UserAdd命令添加用户而不指定组,则将创建具有与用户相同的组。

这是用户的主要组。
我们可以使用选项-g添加多个组到用户,如下所示。

假设,我们需要将组"Developer"添加到用户"测试",我们可以将其添加如下。

# usermod –G developer test

请注意,如果我们之前将用户添加到任何其他组(除主组以外),则将通过上述命令删除。

因此,如果要保留当前用户的组并添加更多组,则需要使用选项-Ag,如下所示:

# usermod –aG developer test
# id test
uid=501(test) gid=501(test) groups=501(test),506(pros),508(developer)

3)更改用户的主要组

如果要将组添加为用户的主要组,则可以执行以下操作:

# usermod –g developer test
# id test
uid=501(test) gid=508(developer) groups=508(developer), 506(pros)

4)锁定和解锁用户

在某些情况下,我们可能需要临时锁定帐户。
这可以用-l选项完成。
这会给一个'!'在加密密码面前,有效地禁用密码。

# usermod –L test

用户可以解锁,如下所示,将删除加密密码前面的"!"。

# usermod –U test

5)更改帐户的到期数据

我们可以使用以下命令禁用"2012-12-01"上的帐户"测试"。

# usermod -e 2012-12-01 test

6)更改登录和密码

我们可以使用"-L"交换机更改登录名称。

# usermod -l newtest test
# id test
Id: test: No such user
# id newtest
uid=501(newtest) gid=508(developer) groups=508(developer), 506(pros)

我们可以按如下方式更改密码:

# usermod –p newpass newtest

7)更改用户的shell

我们可以使用usermod命令来更改用户的shell。
以下命令将更将用户"newtest"的shell更改为'/bin/bash'。

# usermod -s /bin/bash newtest