如何在CentOS 7/8中创建一个新的用户帐户

时间:2020-01-09 10:37:51  来源:igfitidea点击:

如何使用命令行选项在CentOS 7/8 Linux服务器上创建新的用户帐户?
如何在CentOS 8 Linux服务器上创建具有sudo访问权限的新用户帐户?
创建CentOS Linux用户帐户是为了在各种应用程序与系统的其他用户之间提供安全屏障。
例如,Apache或Nginx服务器以www-data用户身份运行。
网站管理员可以使用另一个称为ftp的用户上传文件。
通过分离它们,可以提高系统的安全性。
本教程说明如何在CentOS Linux 7/8服务器上创建,修改和删除用户帐户。

在CentOS Linux 7/8中创建一个新的用户帐户

在CentOS Linux上创建新用户帐户的过程如下:

  • 使用" useradd命令"在CentOS 7或8上添加新的用户帐户。
  • 运行" passwd命令"来设置或更改用户密码。
  • 通过在CentOS中执行" userdel命令"来删除用户帐户。
  • 要修改用户帐户,请使用" usermod命令"。
  • 要查看用户帐户信息,请使用" id命令"。

重要的文件

上面的命令修改以下文件以创建或删除用户帐户:

不要使用诸如vim或nano之类的文本编辑器来修改以下文件,以避免配置错误。

  • /etc/passwd密码文件为每个用户帐户包含一行。
  • /etc/shadow用于系统帐户和可选的期限(密码到期日期)信息的加密格式的密码。
  • /etc/group用户组信息。

让我们详细查看所有命令和示例。

显示所有Linux用户帐户的列表

/etc/passwd文件为每个用户帐户包含一行,并用冒号分隔七个字段。
执行cat命令以列出用户:

cat /etc/passwd

如何在Linux中列出用户

是否想查看有关当前登录用户的信息?
输入id命令:

id
id userName
id root
id Hyman

输出示例:

uid=1000(Hyman) gid=1000(Hyman) groups=1000(Hyman),4(adm),24(cdrom),27(sudo)

最后,使用ls命令查看名为/etc/hosts的文件的所有者和组:

ls -l /path/to/file
ls -l /home/Hyman/Documents/resume.pdf
ls -l /etc/hosts

运行ps命令/top命令以查看进程的所有者:

ps
top
htop
top -u Hyman
ps -au
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
gdm       1732  0.0  0.0 163872  6516 tty1     Ssl+ 12:34   0:00 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart
Hyman     5052  0.0  0.0  19752 12936 pts/1    Ss+  12:39   0:06 /usr/bin/ssh -oForwardX11 no -oForwardAgent no -oPermitLocalCommand no -oClearAllForwardings yes -oProtocol 2 -oNoHostAuthenticationForLocalhost y
Hyman    24020  0.0  0.0  11144  5732 pts/4    Ss   21:13   0:00 bash
Hyman    24961  0.0  0.0  14648  6784 pts/4    S+   21:17   0:00 ssh aws-ls.laws-v-zone-a-www-001
Hyman    24995  0.0  0.0  14672  6896 pts/5    S+   21:18   0:00 ssh [email protected]
Hyman    25204  0.0  0.0  11012  5156 pts/2    Ss   21:20   0:00 bash
Hyman    25210  0.0  0.1 414796 40568 pts/2    Sl+  21:20   0:00 gpass

有关更多信息,请参见如何使用ps/htop命令在Linux中显示所有正在运行的进程。

从命令行创建一个新的CentOS用户帐户

语法为:

sudo useradd userName
sudo useradd [options] userName

例子

创建Hyman用户帐户,运行:

sudo adduser Hyman

验证一下:

id Hyman

或使用grep命令,如下所示:

grep -w '^Hyman' /etc/passwd
grep -w '^Hyman' /etc/group

最后,通过执行以下passwd命令来设置或更改Hyman用户的密码:

sudo passwd Hyman

创建了一个新的用户帐户。
接下来,通过使用ssh命令登录来验证它:

ssh Hyman@your-centos-8-server-ip

在CentOS Linux 7/8中删除用户帐户

语法为:

sudo userdel {userName}
sudo userdel -r {UserName}

-r选项删除给定用户帐户的主目录和邮件后台处理程序。
因此,如果需要用户数据,请进行备份。
让我们删除Hyman用户以及所有个人数据:

sudo userdel -r Hyman

验证用户Hyman已成功从CentOS服务器删除:

id Hyman
grep -w '^Hyman' /etc/passwd
grep -w '^Hyman' /etc/group

高级示例

让我们创建一个名为www-files的新帐户,如下所示:

$ sudo useradd -d /home/www-files -m \
-c "Nginx file and sftp user" \
-s /bin/bash www-files
$ sudo passwd www-files
$ id www-files

其中:

  • -d /home/www-files:主目录是新帐户的/home/www-files
  • -m:创建用户的主目录
  • -c "Nginx file and sftp user":设置新帐户的GECOS字段(注释)
  • -s/bin/bash:设置新帐户的登录shell
  • www-files:登录名/用户名

如何修改用户帐号

您需要使用usermod,如下所示:

usermod [options] {username}

请注意,该用户帐户必须存在才能使用usermod。
让我们看一些常见的例子。

设置GECOS字段的新值(注释

sudo usermod -c "Hyman Gite" Hyman
## verification ##
grep -w 'Hyman' /etc/passwd

更新用户帐户的主目录位置

将/home/Hyman更改为/home/ftpHyman,运行:

sudo usermod -d /home/ftpHyman -m Hyman

锁定用户帐号

sudo usermod -L Hyman

解锁用户帐号

sudo usermod -U Hyman

在CentOS上创建一个Sudo用户

wheel组的所有成员都具有sudo访问权限。
因此,您要做的就是将用户帐户追加到车轮组,如下所示:

sudo usermod -aG wheel {username}
##
## add Hyman user to wheel group for sudo access ##
##
sudo usermod -aG wheel Hyman
id Hyman

接下来,以Hyman用户身份登录并测试sudo访问权限:

{Hyman@my-centos8-box:~ }$ sudo ls /root/
{Hyman@my-centos8-box:~ }$ sudo -s
{root@my-centos8-box:~ }#

有关更多信息,请参见Linux将用户添加到组。

Linux更改或重命名用户名和UID(用户ID)

sudo usermod -l login-name old-name
# rename 'Hymang' user to 'Hyman' #
sudo usermod -l Hyman Hymang

有关更多信息,请参见如何在Linux上为所有拥有的文件更改USER和GROUP ID。

获得帮助

使用man命令或通过传递--help,如下所示:

usermod命令

执行:

man 8 usermod
usermod --help
选项描述
-c--comment注释GECOS字段的新值
-d--homeHOME_DIR用户帐户的新主目录
-e--expiredateEXPIRE_DATE将帐户的到期日期设置为EXPIRE_DATE
-f--inactiveINACTIVE将密码过期后设置为INACTIVE
-g--gid组将GROUP用作新的主组
-G--groups
-a--append将用户添加到-G选项提到的补充GROUPS上,而不会从其他组中删除用户
-h--help显示此帮助消息并退出
-l--loginNEW_LOGIN登录名的新值
-L--lock锁定用户帐户
-m--move-home将主目录的内容移动到新位置(仅与-d一起使用)
-o--non-unique允许使用重复的(非唯一)UID
-p--password密码使用加密的密码作为新密码
-R--rootCHROOT_DIR目录chroot进入
-P--prefixPREFIX_DIR前缀目录,位于/etc/*文件
-s--shell为用户帐户设置新的登录shell
-u--uidUID用户帐户的新UID
-U--unlock解锁用户帐户
-v--add-subuidsFIRST-LAST添加下级uids的范围
-V--del-subuidsFIRST-LAST删除下级uid的范围
-w--add-subgidsFIRST-LAST添加下级对象的范围
-W--del-subgidsFIRST-LAST删除下级对象的范围
-Z--selinux-userSEUSER用户帐户的新SELinux用户映射

passwd命令

执行:

man 8 passwd
passwd --help
选项描述
-k--keep-tokens保留未过期的身份验证令牌
-d--delete删除命名帐户的密码(仅root用户);还删除密码锁定(如果有)
-l--lock锁定命名帐户的密码(仅root用户)
-u--unlock解锁指定帐户的密码(仅root用户)
-e--expire到期指定帐户的密码(仅root用户)
-f--force强制操作
-x--maximum = DAYS最大密码有效期(仅root)
-n--minimum = DAYS最小密码生存期(仅root)
-w--warning = DAYS密码到期前警告用户收到的天数(仅root)
-i--inactive = DAYS禁用帐户后密码过期后的天数(仅root用户)
-S--status报告指定帐户的密码状态(仅root用户)
--stdinread来自stdin的新令牌(仅根)

useradd命令

执行:

man 8 useradd
useradd --help
选项描述
-b--base-dirBASE_DIR新帐户主目录的基本目录
-c--comment新帐户的注释GECOS字段
-d--home-dirHOME_DIR新帐户的主目录
-D--defaults打印或更改默认的useradd配置
-e--expiredateEXPIRE_DATE新帐户的到期日期
-f--inactive新帐户的无效密码无效期
-g--gid新帐户主要组的组名称或ID
-G--groups
-h--help显示此帮助消息并退出
-k--skelSKEL_DIR使用此备用骨架目录
-K--keyKEY = VALUE覆盖/etc/login.defs默认值
-l--no-log-init不将用户添加到lastlog和faillog数据库
-m--create-home创建用户的主目录
-M--no-create-home不创建用户的主目录
-N--no-user-group不创建与用户同名的组
-o--non-unique允许创建具有重复(非唯一)UID的用户
-p--password新帐户的密码加密密码
-r--system创建系统帐户
-R--rootCHROOT_DIR目录chroot进入
-P--prefixPREFIX_DIR前缀目录,位于/etc/*文件
-s--shellSHELL新帐户的登录shell
-u--uid新帐户的UID用户ID
-U--user-group创建与用户同名的组
-Z--selinux-userSEUSER对SELinux用户映射使用特定的SEUSER