在 Linux / Unix 中创建用户的终极指南
在 Linux 或 Unix 系统中创建用户是系统管理员的日常任务。
有时您可能会使用默认配置创建单个用户,或者使用自定义配置创建单个用户,或者使用一些批量用户创建方法同时创建多个用户。
在本文中,让我们通过实例来了解如何使用 useradd、adduser 和 newusers 命令以4 种不同的方法创建 Linux 用户。
方法一:Linux useradd 命令——使用默认配置创建用户
这是用于创建用户的基本低级工具。要使用默认配置创建用户,请使用useradd,如下所示。
Syntax: # useradd LOGIN-NAME
如上所述创建用户时,将采用除组 ID 之外的所有默认选项。要查看默认选项,请提供以下带有选项 -D 的命令。
$ useradd -D
GROUP=1001
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
- GROUP:这是唯一不会被视为默认的选项。因为如果您不指定 -n 选项,将创建与用户同名的组,并将用户添加到该组。为了避免这种情况并使用户成为默认组的成员,您需要提供选项 -n。
- HOME:这是主目录的默认路径前缀。现在主目录将创建为 /home/USERNAME。
- INACTIVE: -1 默认禁用用户密码过期后禁用帐户的功能。要更改此行为,您需要提供一个正数,这意味着如果密码在给定天数后过期,则用户帐户将被禁用。
- EXPIRE:用户帐户将被禁用的日期。
- SHELL:用户登录shell。
- SKEL: skel 目录的内容将被复制到用户主目录。
- CREATE_MAIL_SPOOL:根据值创建或不创建邮件池。
示例 1:使用所有默认选项和他自己的组创建用户。
以下示例使用 ramesh 组创建用户 ramesh。用户创建后立即使用Linux passwd 命令修改用户密码。
# useradd ramesh
# passwd ramesh
Changing password for user ramesh.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
# grep ramesh /etc/passwd
ramesh:x:500:500::/home/ramesh:/bin/bash
# grep ramesh /etc/group
ramesh:x:500:
[Note: default useradd command created ramesh as username and group]
示例 2:创建具有所有默认选项和默认组的用户。
# useradd -n sathiya
# grep sathiya /etc/passwd
sathiya:x:511:100::/home/sathiya:/bin/bash
# grep sathiya /etc/group
[Note: No rows returned, as group sathiya was not created]
# grep 100 /etc/group
users:x:100:
[Note: useradd -n command created user sathiya with default group id 100]
# passwd sathiya
Changing password for user sathiya.
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[Note: Always set the password immediately after user creation]
示例 3:编辑 useradd 使用的默认选项。
以下示例显示如何在用户创建期间将默认 shell 从 /bin/bash 更改为 /bin/ksh。
Syntax: # useradd -D --shell=<SHELLNAME>
# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
[Note: The default shell is /bin/bash]
# useradd -D -s /bin/ksh
# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/ksh
SKEL=/etc/skel
[Note: Now the default shell changed to /bin/ksh]
# adduser priya
# grep priya /etc/passwd
priya:x:512:512::/home/priya:/bin/ksh
[Note: New users are getting created with /bin/ksh]
# useradd -D -s /bin/bash
[Note: Set it back to /bin/bash, as the above is only for testing purpose]
方法 2:Linux useradd 命令——使用自定义配置创建用户
您可以在命令行中将自定义值指定为 useradd 命令的参数,而不是接受由 useradd 命令给出的默认值(例如,组、shell 等),如上述方法所示。
Syntax: # useradd -s <SHELL> -m -d <HomeDir> -g <Group> UserName
- -s SHELL:用户的登录 shell。
- -m:如果用户的主目录不存在,则创建它。
- -d HomeDir:用户的主目录。
- -g Group:用户的组名或编号。
- 用户名:用户的登录 ID。
示例 4:使用 useradd 命令创建具有自定义配置的 Linux 用户
以下示例创建一个帐户 (lebron),主目录为 /home/king,默认 shell 为 /bin/csh,注释为“LeBron James”。
# useradd -s /bin/csh -m -d /home/king -c "LeBron James" -g root lebron
# grep lebron /etc/passwd
lebron:x:513:0:LeBron James:/home/king:/bin/csh
注意:您可以使用 -p 选项提供密码,该密码应该是加密密码。或者您可以使用 passwd 命令来更改用户的密码。
方法三:Linux adduser 命令——交互创建用户
这些是对低级用户添加更友好的工具。默认情况下,它为 UID 和 GID 选择 Debian 策略格式。在命令行中交互创建用户的一种非常简单的方法是使用 adduser 命令。
Syntax: # adduser USERNAME
示例 5:使用 adduser 命令以交互方式创建用户
# adduser spidey
Adding user `spidey' ...
Adding new group `spidey' (1007) ...
Adding new user `spidey' (1007) with group `spidey' ...
Creating home directory `/home/spidey' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for spidey
Enter the new value, or press ENTER for the default
Full Name []: Peter Parker
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [y/N] y
方法四:Linux newusers 命令——创建批量用户
有时您可能希望同时创建多个用户。使用上述 3 种方法中的任何一种来批量创建用户都非常繁琐且耗时。幸运的是,Linux 提供了一种使用 newusers 命令上传用户的方法。这也可以在批处理模式下执行,因为它不能要求任何输入。
# newusers FILENAME
此文件格式与密码文件相同。
loginname:password:uid:gid:comment:home_dir:shell
示例 6:使用 newusers 命令创建大量用户
如果辛普森一家决定加入您的组织并需要访问您的 Linux 服务器,您可以使用 newusers 命令为他们所有人一起创建帐户,如下所示。
# cat homer-family.txt
homer:HcZ600a9:1008:1000:Homer Simpson:/home/homer:/bin/bash
marge:1enz733N:1009:1000:Marge Simpson:/home/marge:/bin/csh
bart:1y5eJr8K:1010:1000:Bart Simpson:/home/bart:/bin/ksh
lisa:VGz638i9:1011:1000:Lisa Simpson:/home/lisa:/bin/sh
maggie:5lj3YGQo:1012:1000:Maggie Simpson:/home/maggie:/bin/bash
现在使用 newusers 命令为辛普森一家一起创建帐户,如下所示。
# newusers homer-family.txt
- 点赞
- 收藏
- 关注作者
评论(0)