收集云服务器优惠信息
记录云服务器使用心得

Linux系统中15个useradd命令详解(创建用户+指定目录)

有时候,Linux系统管理员会被要求在Linux上创建具有特定属性、限制或注释的用户帐户,那么可能会使用到“ useradd ”或“ adduser ”,它是Linux系统中最流行的命令。

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

在某些Linux发行版中,“ useradd ”命令的版本可能略有不同。所以,建议首先阅读相关手册文档,然后再阅读下面的内容。

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

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

Useradd命令语法

‘ useradd ’命令的基本语法是:

useradd [options] username

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

1、在Linux系统中添加新用户

要添加或创建新用户,必须使用“ useradd ”或“ adduser ”命令,后跟“ username ”。“username”是用户用于登录系统的登录名。注意,只能添加一个用户,并且用户名必须是唯一的,并且系统上不存在该用户名。

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

useradd ecscoupon

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

passwd ecscoupon

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

创建新用户后,其条目会自动添加到“ /etc/passwd ”文件中。这个文件是用来存放用户的信息的,属于以下命令查看:

cat /etc/passwd | grep ecscoupon

条目应该是:

ecscoupon:x:1000:1000:ecscoupon:/home/ecscoupon:/bin/bash

上面的条目包含一组七个以冒号分隔的字段,每个字段都有自己的含义,下面看看这些字段是什么:

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

2、创建具有不同主目录的用户

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

但是,可以通过使用'-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

在Linux中创建具有主目录的用户

3、创建具有特定用户ID的用户

在Linux中,每个用户都有自己的UID(唯一标识号)。默认情况下,当我们在Linux中创建新用户帐户时,它会分配用户ID 500、501、502等。但是,我们可以使用'-u'选项创建具有自定义用户ID的用户。例如,以下命令将创建一个用户“ navin ”,其自定义用户ID为“ 1002 ”:

useradd -u 1002 navin

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

cat /etc/passwd | grep navin

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

在Linux中使用用户ID创建用户

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

4、创建具有特定组ID的用户

同样,每个用户都有自己的GID(组标识符)。我们还可以使用'-g'选项创建具有特定组ID的用户。在此示例中,我们将借助'-u''-g'选项同时添加具有特定UID和GID的用户“ tarunika ”,具体命令如下:

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

在Linux中创建具有组ID的用户

5、将用户添加到多个组

'-G'选项用于将用户添加到其它组。每个组名称都用逗号分隔,中间没有空格。在此示例中,将用户“ tecmint”添加到多个组,例如admins、webadmin和developments。

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)

在Linux中将用户添加到组

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 ”,其帐户到期日期为2024年8月27日,格式为YYYY-MM-DD:

useradd -e 2024-08-27 aparna

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

chage -l aparna

Last password change					: Jun 25, 2023
Password expires					: never
Password inactive					: never
Account expires						: Aug 27, 2024
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''-f'选项为用户“ mansi ”设置帐户密码到期日期,即45天。

useradd -e 2024-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的用户“ tecmint ”,即“ /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/tecmint ”,默认shell为/bin/bash,以及有关该用户的其它信息:

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

创建具有主目录和登录Shell的用户

在上面的命令中,选项'-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 "TecMint Technical Writer" -u 1000 -g 100 tarunika

13、创建具有主目录、无Shell、注释和UID的用户

以下命令与上面两个命令非常相似。唯一的区别是,在这里,我们为具有自定义用户ID(即1019 )的名为“ avishek ”的用户禁用了登录shell 。'-s'选项将默认shell设置为/bin/bash,但在本例中,我们将登录shell设置为“ /usr/sbin/nologin ”。这意味着用户“ avishek ”将无法登录系统:

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

14、创建具有指定目录、Shell、Skeleton和UID的用户

此命令中唯一的变化是我们使用'-k'选项将自定义Skeleton目录设置为/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命令。

赞(0)
网站声明:本文内容由趣云笔记原创,部分资源收集于网络,如有侵权请联系企鹅:2472781824删除。
文章名称:《Linux系统中15个useradd命令详解(创建用户+指定目录)》
文章链接:https://www.ecscoupon.com/2897.html
本站资源仅供个人学习交流,未经允许不得转载,更不允许用于商业用途。如需转载,请注明来源,感谢理解!