网站搜索

Linux 中 15 个有用的 Useradd 命令及示例


我们都知道 Linux 中最流行的命令“useradd”或“adduser”。有时,Linux 系统管理员会被要求在 Linux 上创建具有特定属性、限制或注释的用户帐户。

在 Linux 中,“useradd”命令是一个低级实用程序,用于在 Linux 和其他类 Unix 操作系统中添加或创建用户帐户。 “adduser”命令与“useradd”命令非常相似,因为它只是一个符号链接。

在某些 Linux 发行版中,“useradd”命令的版本可能略有不同。我建议您在使用我们的说明在 Linux 中创建新用户帐户之前阅读您的文档。

当我们在 Linux 终端中运行“useradd”命令时,它会执行以下主要任务:

  • 它编辑 /etc/passwd/etc/shadow/etc/group /etc/gshadow新创建的用户帐户的文件。
  • 为新用户创建并填充主目录。
  • 设置主目录的权限和所有权。

用户添加命令语法

useradd”命令的基本语法是:

useradd [options] username

在本文中,我们将通过 Linux 中的实际示例演示 15 个最常用的“useradd”命令。

1. 如何在Linux中添加新用户

要添加或创建新用户,您必须使用“useradd”或“adduser”命令,后跟“用户名”。 “用户名”是用户用于登录系统的登录名。

只能添加一个用户,并且用户名必须是唯一的,并且系统上不存在该用户名。

例如,要添加名为“howtoing”的新用户,请使用以下命令:

useradd tecmint

当我们在 Linux 中使用“useradd”命令添加新用户时,它会在锁定状态下创建。要解锁该用户帐户,我们需要使用“passwd”命令为该帐户设置密码。

passwd tecmint

Changing password for user tecmint.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

创建新用户后,其条目会自动添加到“/etc/passwd”文件中。这个文件是用来存放用户的信息的,条目应该是。

tecmint:x:1000:1000:tecmint:/home/tecmint:/bin/bash

上面的条目包含一组七个以冒号分隔的字段,每个字段都有自己的含义。

让我们看看这些字段是什么:

  • 用户名 – 用户登录名用于登录系统。它的长度应介于 1 到 32 个字符之间。
  • 密码 – 用户密码(或'x'字符)以加密格式存储在“/etc/shadow”文件中。
  • 用户 ID (UID) – 每个用户都必须有一个用户 ID (UID),它代表用户识别号。默认情况下,UID 0 保留给 root 用户,范围从 1 到 99 的 UID 保留给其他预定义帐户。此外,范围从 100 到 999 的 UID 是为系统帐户和组保留的。
  • 组 ID (GID) – 主组 ID (GID) 代表组标识号,存储在“ /etc/group' 文件。
  • 用户信息 – 此字段是可选的,允许您定义有关用户的额外信息,例如用户的全名。可以使用 Finger 命令填写此信息。
  • 主目录 – 用户主目录的绝对位置。
  • Shell – 用户 shell 的绝对位置,即 /bin/bash

2. 如何创建具有不同主目录的用户

默认情况下,“useradd”命令使用用户名在“/home”目录下创建用户的主目录。例如,如上所示,用户“howtoing”“的默认主目录是“/home/howtoing”。

但是,可以通过使用 '-d' 选项以及新主目录的位置(例如“/data/projects”)来更改此行为。例如,以下命令将创建一个用户“anusha”,其主目录设置为“/data/projects”。

useradd -d /data/projects anusha
passwd anusha

您可以使用以下 cat 命令查看用户的主目录和其他用户相关信息,例如用户 ID、组 ID、shell 和注释。

cat /etc/passwd | grep anusha

anusha:x:1001:1001::/data/projects:/bin/bash

3. 如何创建具有特定用户ID的用户

在Linux中,每个用户都有自己的UID(唯一标识号)。默认情况下,当我们在 Linux 中创建新用户帐户时,它会分配用户 ID 500501502 等。

但是,我们可以使用 '-u' 选项创建具有自定义用户 ID 的用户。例如,以下命令将创建一个用户“navin”,其自定义用户 ID“1002”。

useradd -u 1002 navin

现在,让我们使用以下命令验证使用定义的用户 ID (1002) 创建的用户。

cat /etc/passwd | grep navin

navin:x:1002:1002::/home/navin:/bin/bash

注意:确保用户 ID 的值必须与系统上任何其他已创建的用户不同。

4. 如何创建具有特定组ID的用户

同样,每个用户都有自己的GID组标识符)。我们还可以使用 '-g' 选项创建具有特定组 ID 的用户。

在此示例中,我们将在 的帮助下同时添加具有特定 UIDGID 的用户“tarunika”- u''-g' 选项。

useradd -u 1005 -g tecmint tarunika

现在,检查“/etc/passwd”文件中分配的用户 ID 和组 ID。

cat /etc/passwd | grep tarunika

tarunika:x:1005:1000::/home/tarunika:/bin/bash

要验证用户的 GID,请使用 id 命令:

id -gn tarunika

5. 如何将用户添加到多个组

'-G' 选项用于将用户添加到其他组。每个组名称都用逗号分隔,中间没有空格。

在此示例中,我们将用户“howtoing”添加到多个组,例如“admins”、“webadmin”和“developers”强>。

groupadd admins
groupadd webadmin
groupadd developers
usermod -a -G admins,webadmin,developers tecmint
useradd -G admins,webadmin,developers paddy

接下来,使用 id 命令验证是否已将多个组分配给用户。

id tecmint

uid=1000(tecmint) gid=1000(tecmint)
groups=1000(tecmint),1007(admins),1008(webadmin),1009(developers)
context=root:system_r:unconfined_t:SystemLow-SystemHigh

6. 如何添加没有主目录的用户

在某些情况下,出于安全原因,我们不想为用户分配主目录,当用户登录到刚刚重新启动的系统时,他们的主目录将是root。当此类用户使用“su”命令时,他们的登录目录将是前一个用户的主目录。

要创建没有主目录的用户,请使用'-M' 选项。例如,以下命令将创建一个没有主目录的用户“shilpi”。

useradd -M shilpi

现在,我们使用 ls 命令验证用户是否是在没有主目录的情况下创建的。

ls -l /home/shilpi

ls: cannot access /home/shilpi: No such file or directory

7. 如何在 Linux 中创建具有到期日期的用户

默认情况下,当我们使用“useradd”命令添加用户时,用户帐户永远不会过期,这意味着它们的过期日期设置为0(这意味着永远不会过期)。

但是,我们可以使用'-e'选项设置到期日期,该选项应采用YYYY-MM-DD格式。这对于创建特定时间段的临时帐户很有帮助。

在此示例中,我们创建一个用户“aparna”,其帐户到期日期为 2021 年 8 月 27 日,格式为 YYYY-MM-DD > 格式。

useradd -e 2021-08-27 aparna

接下来,在设置帐户到期日期后,使用用户“aparna”的“chage”命令验证帐户和密码的有效期信息。

chage -l aparna

Last password change					: Jun 25, 2021
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 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

8. 如何创建具有密码到期日期的用户

'-f' 参数用于定义密码过期后的天数。密码过期后,值 0 会立即停用用户帐户。默认情况下,密码过期值设置为 -1,这意味着它永不过期。

在此示例中,我们将使用 '-e'mansi”设置帐户密码到期日期,即 45 天> 和 '-f' 选项。

useradd -e 2014-04-27 -f 45 mansi

9. 如何在 Linux 中添加带注释的用户

'-c' 选项允许您向“/etc/passwd”文件添加自定义注释,例如用户的全名、电话号码等。注释可以作为单行添加,不带任何空格。

例如,以下命令将添加用户“mansi”,并将该用户的全名 Manis Khurana 插入评论字段。

useradd -c "Manis Khurana" mansi

您可以使用 tail 命令在注释部分查看“/etc/passwd”文件中插入的注释。

tail -1 /etc/passwd

mansi:x:1010:1013:Manis Khurana:/home/mansi:/bin/sh

10. 如何在 Linux 中创建用户登录 Shell

有时,我们添加与登录 shell 无关的用户,或者有时需要为用户分配不同的 shell。我们可以使用“-s”选项为每个用户分配不同的登录 shell。

在此示例中,将添加一个没有登录 shell 的用户“howtoing”,即“/sbin/nologin”shell。

useradd -s /sbin/nologin tecmint

您可以在“/etc/passwd”文件中检查分配给用户的 shell。

tail -1 /etc/passwd

tecmint:x:1011:1014::/home/tecmint:/sbin/nologin

11. 如何创建具有指定主页、Shell 和评论的用户

以下命令将创建一个用户“ravi”,其主目录为“/var/www/howtoing”,默认 shell 为 /bin/bash

useradd -m -d /var/www/ravi -s /bin/bash -c "TecMint Owner" -U ravi

在上面的命令中,选项'-m''-d'创建一个具有指定主目录的用户,'-s' 选项将用户的默认 shell 设置为 /bin/bash'-c' 选项添加有关用户的额外信息,'-U' 参数创建/添加与用户同名的组。

12. 如何创建具有定义的主页、Shell、评论、UID/GID 的用户

该命令与上面的命令非常相似,但这里我们将 shell 定义为“/bin/zsh”并设置自定义 UIDGID对于用户“tarunika”。 '-u' 选项定义新用户的 UID(即 100),'-g' 选项定义 GID(即 100)。 ,1000)。

useradd -m -d /var/www/tarunika -s /bin/zsh -c "TecMint Technical Writer" -u 1000 -g 100 tarunika

13. 如何创建具有 Home、No Shell、Comment 和 UID 的用户

以下命令与上面两个命令非常相似。唯一的区别是,我们在这里为具有自定义用户 ID(即 1019)的名为“avishek”的用户禁用了登录 shell。

'-s' 选项将默认 shell 设置为 /bin/bash,但在本例中,我们将登录 shell 设置为“/usr/sbin/”没有登录'。这意味着用户“avishek”将无法登录系统。

useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "TecMint Sr. Technical Writer" -u 1019 avishek

14. 如何创建具有指定 Home、Shell、Skeleton 和 UID 的用户

此命令中唯一的变化是我们使用 '-k' 选项将自定义骨架目录设置为 /etc/custom.skell 而不是默认目录,/etc/skel。我们还使用 '-s' 选项为用户“navin”定义不同的 shell,/bin/tcsh

useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of TecMint" -u 1027 navin

15. 如何创建一个没有 Home、Shell 或 Group 的用户,并带有注释

以下命令与上面解释的其他命令有很大不同。这里,我们使用'-M'选项创建一个没有用户主目录的用户,而'-N'选项用于指示系统只创建用户名(没有组)。 '-r' 选项用于创建系统用户。

useradd -M -N -r -s /bin/false -c "Disabled TecMint Member" clayton

有关“useradd”的更多信息和选项,请在终端中运行“useradd”命令以查看可用选项

useradd

如果要修改用户帐户属性,例如修改用户名、用户 ID (UID)、主目录、shell 等,请使用 usermod 命令。


版权所有。 © Linux-Console.net • 2019-2024