Linux用户管理,详细步骤用useradd命令创建用户

在本指南中,详细记录了如何使用useradd命令在Linux中创建用户。

useradd-command-on-Linux-Thumbnail.jpg

Linux是一个支持和使用多用户的操作系统。作为一个多用户系统,意味着在任何时候都可以有一个以上的人与操作系统进行交互。当你管理一个Linux系统时,你需要学习如何添加和删除用户,以及创建组并为他们分配用户。用户也是Linux权限系统中至关重要的一部分,每一个文件和目录都需要由用户拥有。

在本指南中,你将学习如何使用useradd命令在Linux系统上创建新用户。该命令功能相当强大,在创建新用户时可以执行一些不同的操作。

useradd命令的语法

useradd命令的语法比较简单。它只需要两个参数。一个是必须的。另一个是可选的。

第一个参数是完全可选的。这个参数可以指定控制命令行为的选项的地方。

第二个参数是必须的,在这里可以指定要创建的用户的用户名。

useradd [OPTIONS] USERNAME

要使用这个命令向这个Linux系统添加一个新用户,你需要成为一个root用户或拥有超级用户权限。

当创建一个新用户时,该命令会考虑到一些事情:

  • 首先,是你在调用该命令时指定的选项。
  • 其次,它将读取位于/etc/default/useradd的文件内容,并将其作为默认值使用。这个文件中定义的变量会根据Linux发行版的不同而有所不同。
  • 最后,useradd命令还会读取/etc/login.defs文件的内容。它利用这个文件来设置许多东西,包括密码过期政策和用户ID范围。

在Linux中添加一个新用户

在本节开始时,展示useradd命令在Linux系统上创建用户的最基本用法。

最基本的用法是使用useradd,然后是要创建的用户名称。

useradd USERNAME

当运行该命令时,它会在四个不同的文件中创建一个条目,这些文件是/etc/password,/etc/group,/etc/shadow和/etc/gshadow。系统会用这些文件来设置和处理我们的用户,看看如何对用户进行认证。

例如,如果我想创建一个名为labno3的用户,可以运行以下命令

useradd labno3

由于我没有指定任何选项,用户将在没有密码的情况下被创建,这意味着无法登录它。

为了解决这个问题,可以利用超级用户的权限,通过下面的命令为用户设置密码。

passwd labno3

passwd 命令会提示你为用户指定密码。

为新用户创建主目录

当你在某些Linux操作系统上运行useradd命令时,你会发现它不会自动创建一个主目录。

可以使用一个选项来规避这种行为,这个选项叫做create-home选项。这个选项的符号是小写的m(-m或–create-home)。

useradd -m USERNAME

该选项将使用与用户名相同的名称创建主目录。

例如,对于名为labno3的用户,该命令将在/home/labno3创建一个目录。当创建这个新目录时,useradd命令会将/etc/skel文件夹中的文件和目录复制到该目录中。你可以使用这个文件夹来设置你要为每个新用户的主目录创建的文件和目录。

可以利用list files命令观察新用户主目录的布局。例如,如果我要观察我新创建的labno3用户。

$ ls -l /home/labno3
-rw-r--r-- 1 labno3 labno3 3771 Jul  1  2020 .bashrc
-rw-r--r-- 1 labno3 labno3  807 Jul  1  2020 .profile

由此,可以看到,我的新用户是文件的所有者和组,并且获得了读写权限。

创建一个没有主目录的用户

在某些情况下,你会想在不创建主目录的情况下添加一个新用户。

虽然有些Linux系统在使用useradd命令时默认不创建主目录,但有些系统会。

要禁止自动创建主目录,我们可以使用no create home选项(-M或–no-create-home)。

useradd -M USERNAME

如你所见,禁用主目录的创建是相当直接的,只需要增加一个选项即可。

使用自定义主目录添加新用户

现在已经了解了如何在添加新用户时创建主目录,现在我们可以学习如何设置自定义目录。

为了能够指定目录,可以使用home dir选项(-d或-home-dir)。

使用这个选项,能够选择任何目录作为你的用户的家。这个目录甚至可以存在于/home/之外。

useradd -d DIRECTORY USERNAME

当使用这个选项时,请确保你指定的目录已经存在。

该命令不会尝试自己创建这个文件夹,也不会使用/etc/skel/文件夹中的任何文件和目录。它也不会使用/etc/skel/文件夹中的任何文件和目录。

例如,如果我有一个名为/data/website的目录,我们希望我们的新用户labno3的home存在,可以运行以下命令。

useradd -d /data/website labno3

创建一个具有特定用户ID的用户

在Linux中,用户由两个不同的标识符来识别,第一个是唯一的ID(简称UID),另一个是用户名。

用户标识符(UID)是Linux操作系统分配给每个用户的唯一正数。

UID构成了Linux权限系统的一部分,用来确定用户可以访问哪些文件以及可以进行哪些操作。

当使用useradd命令创建一个用户时,会被自动分配到下一个可用的UID。可用的用户ID的范围在login.defs文件中定义。

可以通过使用-u(或–uid)选项来覆盖自动选择的用户ID。通过这个选项,可以指定想给新用户的ID。

useradd -u USERID USERNAME

例如,如果我要创建一个名为labno3的用户,并希望将其分配给UID 1800,我们可以使用以下命令。

useradd -u 1800 labno3

可以通过使用id命令来验证我的新用户是否获得了正确的ID。

$ id -u labno3
1800

当使用此选项时,请确保试图分配的ID尚未被使用。这些ID必须是唯一的。

为新用户设置特定的组ID

就像我可以为用户指定一个特定的ID一样,也可以选择我希望新用户所属的组。

在Linux中,群组被用来作为一种组织用户的方式。使用Linux权限系统,你可以给整个组以读取、写入或执行某些文件和目录的权利。这意味着如果你想让多个用户修改或使用一组特定的文件和目录,你应该在同一个组内添加他们。

默认情况下,当你使用useradd命令在Linux系统上创建一个新用户时,它会自动创建一个与你的用户名相同的组,并使用与你的用户相同的ID。你可以使用组ID选项(-g或–gid)来覆盖这个行为。

useradd -g GROUPNAME/GID USERNAME

此选项允许您指定要分配给新用户的组。这个组可以通过使用组名或其唯一标识符(GID)来定义。您指定的组必须已经存在于您的系统中。

例如,如果我想创建一个名为labno3的新用户,它属于我们已有的pi组,我可以使用下面的命令。

useradd -g pi labno3

和验证UID一样,也可以通过id命令和组名选项(-gn)来查看我们的用户现在属于哪个组。

$ id -gn labno3
pi

创建一个拥有多个组的用户

也可以使用useradd命令来创建一个属于多个组的用户。

要指定多个组,我们需要使用-G选项。

useradd -G GROUP1,GROUP2,... USERNAME

每个组名之间应使用逗号(,)来分隔。确保在任何组名之间不使用空格。如果有空格,useradd 命令会认为你是在指定要使用的用户名。

例如,如果我们要创建一个名为pimylifeup的用户,并希望将其添加到多个组中,如admins、www-data和git。

useradd -G admins,www-data,git labno3

可以通过使用id命令检查用户是否已经在这些组中创建。为了使id命令打印所有组的名称,使用-Gn选项。

$ id -Gn pimylifeup
pimylifeup3 www-data admins git

在Linux中添加一个过期的用户

默认情况下,useradd命令创建的账户被设置为永不失效(失效日期设置为0)。

然而,在某些情况下,你可能会想要创建一个临时账户。

创建一个有过期日期的账户,意味着该日期一过,账户将停止运作。过期的用户将不再发挥作用。

要指定一个到期日期,需要使用expire选项(-e或–expiredate)。

useradd -e YYYY-MM-DD USERNAME

过期日期必须设置为YYYY-MM-DD格式。例如,当使用这种格式时,2020年7月1日的日期将成为2020-07-01。

如果我想创建一个名为labno3expires的用户,该用户将在2020年7月底到期,使用以下命令。

useradd -e 2020-07-31 labno3expires

可以使用chage命令来验证用户的年龄,并检查新用户的账户何时到期。和创建用户一样,要检查用户的年龄,你需要有超级用户的权限或者是root用户。

$ chage -l pimylifeupexpires
Last password change                                    : Jul 01, 2020
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jul 31, 2020
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

也可以使用这个命令来修改用户的到期日,但我将在另一个指南中解释。希望在这个阶段,你现在已经明白如何在Linux系统上使用useradd命令。它是一个强大的命令,可以用来为你的新用户配置许多设置。请务必查看我们的其他命令指南,了解如何更轻松地管理Linux。如果你觉得我们遗漏了什么或描述错误,那么请在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » Linux用户管理,详细步骤用useradd命令创建用户

赞 (2)

评论

1+8=