如何在Linux中使用UserAdd命令创建用户

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

在Linux和Unix的操作系统中,创建用户的最常用命令是'Useradd'或者'addUser'。
作为系统管理员,它通常需要添加用户,删除用户,创建组和分配用户。

上面提到的两个命令在特征方面没有区别。
adduser命令是友好的,一些debian/ubuntu管理员喜欢使用它。
使用Linux系统编译UserAdd是二进制编译,并作为AddUser的后端工作。

在本教程中,我们了解如何使用useradd命令从终端创建Linux中的用户。

useradd命令和语法

以下行显示了UserAdd命令的语法:

useradd [OPTIONS] username

可以简单地通过为命令提供用户名来添加用户。
我们应该使用root或者sudo用户权限运行useradd命令。

让我们了解有关Useradd命令及其选项的更多信息。

1)如何在Linux中创建新用户

如上所述,要创建新用户,我们使用useradd命令。

以下命令创建一个名为"账单"的新用户,第二个命令将用户('账单')设置为新密码。

$sudo useradd bill
$sudo passwd bill

这将使用主目录作为"/home/bill""和"/etc/skel"目录中的文件从"/etc/skel"目录中的文件中创建给用户的主目录。

$ls -al /home/bill/
total 20
drwx------. 2 bill bill 4096 Mar  9 06:49 .
drwxr-xr-x. 4 root root 4096 Mar  9 06:49 ..
-rw-r--r--. 1 bill bill   18 Nov  8 16:21 .bash_logout
-rw-r--r--. 1 bill bill  141 Nov  8 16:21 .bash_profile
-rw-r--r--. 1 bill bill  312 Nov  8 16:21 .bashrc

此命令将条目添加到/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow文件。

注意:在Ubuntu和Debian相关的分发UserAdd上不会创建默认主目录,除非我们必须使用选项指定。

相反,Debian建议使用addUser命令。

2)创建具有特定主目录的用户

创建具有特定主目录的用户作为用户登录使用的值使用-d选项。
在运行命令之前,请务必使用mkdir命令创建基本主目录。

让我们创建一个名为'devops'的基本主目录:

$sudo mkdir /devops

现在以下命令创建了用户的"账单"并将其主目录设置为"/devops/billhome"。

$sudo useradd -d /devops/billhome bill
Output
$sudo useradd -d /devops/billhome bill
$ls -al /devops/billhome
total 12
drwxr-xr-x  2 bill bill  100 Dec 31 05:13 .
drwxr-xr-x 17 root root 3680 Dec 31 05:13 ..
-rw-r--r--  1 bill bill  220 Apr  4  2016 .bash_logout
-rw-r--r--  1 bill bill 3771 Apr  4  2016 .bashrc
-rw-r--r--  1 bill bill  807 Apr  4  2016 .profile

我们可以使用两种-m(创建主目录(如果不存在的主目录)和-d(设置给定路径为用户的登录目录名称)以创建用户。

$sudo useradd -m -d /home/bobhome bob

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

默认情况下,当我们创建用户时,它会在Login.defs文件中定义的下一个可用UID。
但是使用"-u""选项,我们可以创建具有特定UID的用户。

在以下示例中,使用特定UID(3210)创建用户账单。

$useradd -u 3210 bill 
$grep bill /etc/passwd bill:x:3210:3210::/home/bill:/bin/bash

可以在"/etc/passwd"文件中看到UID,如上所述输出所示。

4)使用特定的登录shell创建用户

有时我们需要创建具有特定登录shell(如KSH,TCSH,ZSH等)的用户或者没有shell登录('/sbin/nologin')。

我们可以指定与用户帐户关联的登录shell,如下图所示:

$useradd -s /bin/tcsh bill

我们可以通过从/etc/passwd文件留下用户名来验证登录shell:

$grep bill /etc/passwd bill:x:504:505::/home/bill:/bin/tcsh

5)创建特定的基础主目录

默认情况下,用户主目录位于"/home"(可变中/etc/default/useradd)目录中。
通过使用"-b""选项,我们可以为新用户提供不同的基本主目录。

以下命令集'/mnt'目录作为基本目录,并为"/mnt/bill"创建用户'账单'的主目录。

$useradd -b /mnt bill 
$grep bill /etc/passwd bill:x:504:505::/mnt/bill:/bin/bash

6)创建具有到期日期的用户

在创建新用户时,我们可以使用-e选项设置用户帐户的到期日。

以下示例设置了用户'账单的到期日(日期的格式为Yyyy-MM-DD)。

$sudo useradd -e 2013-06-23 bill

这可以通过检查"/etc/shadow"文件的最后一个字段来验证。
最后一个字段(15879)显示了自1970年1月1日自1970年1月1日的天数禁用的到期日期。

$sudo grep bill /etc/shadow bill:!!:15813:0:99999:7::15879:

验证用户到期日期的更简单方法使用Chage命令,如下所示:

$sudo chage -l bill
Last password change                                    : Nov 10, 2013
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : Jun 23, 2013
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

"-f"选项"在密码到期后提供了密码后的天数,直到帐户被永久禁用。
"0"的值一旦密码过期,就会禁用该帐户。

$sudo useradd -f 20 bill

如阴影文件所示,天数为20(在第二列中)。

$sudo grep bill /etc/shadow bill:!!:15813:0:99999:7:20::

7)创建用户并添加到多个组

Linux中的每个用户都应该保持在一个主要组和零个或者多个辅助组(补充组)。

可以使用-g选项设置他所属的用户的主组。
此选项提供的组必须存在。

$sudo useradd -g xero bill
$sudo id bill uid=504(bill) gid=505(xero) groups=505(xero) context=root:system_r:unconfined_t:SystemLow-SystemHigh

可以使用ID命令检查该组。

-g选项用于将用户添加到其他组。

$sudo useradd -G g1,g2,g3 bill
$sudo id bill uid=504(bill) gid=509(bill) groups=509(bill),506(g1),507(g2),508(g3) context=root:system_r:unconfined_t:SystemLow-SystemHigh

让我们检查如何创建用户并分配给多个组。
该命令将创建一个名为"账单"的新用户,其中包含主要组"团队"和辅助组"管理员"和"Apache"。

$sudo useradd -g teams -G admin,apache bill

8)创建重复的用户ID

"-o"选项"允许使用重复的用户(非唯一)ID创建用户帐户。
我们必须使用"-u""选项提供UID号码。

检查以下示例:

$sudo useradd -o -u 503 bill

其中我们可以看到存在具有503个ID的两个帐户。

$sudo grep 503 /etc/passwd 
jenny:x:503:503::/home/jenny:/bin/bash 
bill:x:503:505::/home/bill:/bin/bash

9)创建用户作为系统帐户

通常,UID直到500或者1000为系统帐户保留,并且未分配给普通用户。
使用"-r"选项",给出了系统用户范围内的ID帐户。

$sudo useradd -r bill 
$sudo grep bill /etc/passwd bill:x:101:102::/home/bill:/bin/bash

其中未创建用户的主目录。
它必须手动创建或者提供"-m""选项。

10)在没有主目录的情况下创建用户

如果我们希望不自行创建主目录,则可以给出-m选项。

$sudo useradd -M bill 
$sudo grep bill /etc/passwd 
bill:x:504:505::/home/bill:/bin/bash
$ls /home/bill 
ls: /home/bill: No such file or directory

在LS命令的输出中,可以看出,票据用户的主目录不存在。

11)使用密码创建用户

默认情况下禁用用户的密码。
我们可以使用passwd命令手动设置密码。

但如果我们想在用户创建时提供密码,则可以使用"-p""选项。

但这里提供的密码必须加密,如Crypt(3)返回。

$sudo useradd -p '$ZsQB81$RCCVDuI5VR6q905nUPz4a/' bill

12)更改默认选项

当用户在系统上添加用户时,将默认为默认值,例如shell,基本目录等。
基本目录是用户主目录所在的目录。
在大多数Linux系统上,用户的主目录位于/主目录中。

例如,默认情况下,用户Tom的主目录将是"/home/tom"。
所以/家将是他的基本目录。
这些默认选项在'/etc/defaults/useradd'文件中定义。
可以使用"-d""选项查看这些默认值,以useradd命令:

$sudo useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/sh SKEL=/etc/skel CREATE_MAIL_SPOOL=no

上述命令也可以由普通用户(非root用户)运行。
"-d"选项"选项不仅用于查看默认值,而且用于更改默认值。

13)创建具有自定义注释的用户

我们可以在创建用户时提供关于用户(注释)的全名或者简短描述。
我们必须使用-c选项来添加自定义注释。

让我告诉你一个例子:

$sudo useradd -c "Bill Drape" bill

在"/etc/passwd"文件中,可以在用户的条目中看到此注释。

$sudo grep bill /etc/passwd bill:x:504:505:Bill Drape:/home/bill:/bin/bash