在 Linux / Unix 中创建用户的终极指南

举报
Tiamo_T 发表于 2021/12/17 07:53:59 2021/12/17
【摘要】 在 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
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。