如何在 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 '命令的基本语法是:
useradd [options] username
在本文中,我们将通过 Linux 中的实际示例演示 15 个最常用的“ useradd ”命令。
1.如何在 Linux 中添加新用户
要添加或创建新用户,您必须使用“ useradd ”或“ adduser ”命令,后跟“ username ”。 “ username ”是用户用于登录系统的登录名。
只能添加一个用户,并且用户名必须是唯一的,且不能在系统中存在。
例如,要添加名为“ example ”的新用户,请使用以下命令:
useradd example
当我们使用“ useradd ”命令在 Linux 中添加新用户时,该用户将处于锁定状态。要解锁该用户帐户,我们需要使用“ passwd ”命令为该帐户设置密码。
passwd example Changing password for user example. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully.
一旦创建新用户,其条目将自动添加到“ /etc/passwd ”文件中。此文件用于存储用户的信息,并且条目应该是。
example:x:1000:1000:example:/home/example:/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 ”目录下用用户名创建用户主目录。例如,如上所示,用户“ example ”的默认主目录是“ /home/example ”。
'-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 500、501、502等。
但是,我们可以使用该'-u'
选项创建具有自定义用户 ID 的用户。例如,以下命令将创建一个具有自定义用户 ID ' 1002 ' 的用户 ' navin ' 。
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 的用户。
在此示例中,我们将借助和选项同时添加具有特定UID和GID的用户“ tarunika ” 。'-u'
'-g'
useradd -u 1005 -g example 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'
选项用于将用户添加到其他组。每个组名以逗号分隔,中间没有空格。
在此示例中,我们将用户“ example ”添加到多个组,例如admins、webadmin和developers。
groupadd admins groupadd webadmin groupadd developers usermod -a -G admins,webadmin,developers example useradd -G admins,webadmin,developers paddy
接下来,使用id命令验证是否将多个组分配给用户。
id example uid=1000(example) gid=1000(example) groups=1000(example),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
,这意味着它永不过期。
在此示例中,我们将使用和选项为用户“ mansi ”设置帐户密码到期日期,即45天。'-e'
'-f'
useradd -e 2014-04-27 -f 45 mansi
9. 如何在 Linux 中添加带有评论的用户
该选项允许您向“ /etc/passwd'-c'
”文件添加自定义注释,例如用户的全名、电话号码等。注释可以作为一行添加,不带任何空格。
例如,以下命令将添加用户“ 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 即 ' /sbin/nologin ' shell的用户“ example ”。
useradd -s /sbin/nologin example
您可以在“ /etc/passwd ”文件中检查为用户分配的 shell 。
tail -1 /etc/passwd example:x:1011:1014::/home/example:/sbin/nologin
11. 如何创建具有指定主目录、Shell 和注释的用户
以下命令将创建一个用户“ ravi ”,其主目录为“ /var/www/example ”,默认 shell 为/bin/bash,以及有关该用户的其他信息。
useradd -m -d /var/www/ravi -s /bin/bash -c "Example Owner" -U ravi
在上面的命令中,选项'-m'
和'-d'
创建具有指定主目录的用户,'-s'
选项将用户的默认 shell 设置为/bin/bash。'-c'
选项添加有关用户的额外信息,参数'-U'
创建/添加与用户同名的组。
12. 如何创建具有定义的主目录、Shell、注释、UID/GID 的用户
该命令与上面的命令非常相似,但这里我们将 shell 定义为“ /bin/zsh ”,并为用户“tarunika”设置自定义UID和GID'-u'
。选项定义新用户的 UID(即100),'-g'
选项定义 GID(即1000)。
useradd -m -d /var/www/tarunika -s /bin/zsh -c "Example Technical Writer" -u 1000 -g 100 tarunika
13. 如何创建具有 Home、无 Shell、注释和 UID 的用户
以下命令与上述两个命令非常相似。唯一的区别是,在这里,我们禁用了名为“ avishek ”且具有自定义用户 ID(即1019)的用户的登录 shell。
该'-s'
选项将默认 shell 设置为/bin/bash,但在本例中,我们将登录 shell 设置为“ /usr/sbin/nologin ”。这意味着用户“ avishek ”将无法登录系统。
useradd -m -d /var/www/avishek -s /usr/sbin/nologin -c "Example Sr. Technical Writer" -u 1019 avishek
14. 如何创建具有指定 Home、Shell、Skeleton 和 UID 的用户
此命令中唯一的变化是我们使用选项'-k'
将自定义骨架目录设置为/etc/custom.skell,而不是默认的/etc/skel。我们还使用该选项为用户“ navin'-s'
”定义不同的 shell /bin/tcsh。
useradd -m -d /var/www/navin -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of Example" -u 1027 navin
15. 如何创建没有主目录、Shell 或组的用户并附带注释
以下命令与上面解释的其他命令有很大不同。在这里,我们使用选项'-M'
来创建没有用户主目录的用户,'-N'
选项用于指示系统仅创建用户名(没有组)。选项'-r'
用于创建系统用户。
useradd -M -N -r -s /bin/false -c "Disabled Example Member" clayton
有关“ useradd ”的更多信息和选项,请在终端中运行“ useradd ”命令以查看可用选项
useradd
如果要修改用户账户属性,比如修改用户名、用户ID(UID)、主目录、shell等等,请使用usermod命令。