如何在Linux中使用UserAdd命令创建用户
在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