CentOS 7创建用户两种方式

Posted chirou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 7创建用户两种方式相关的知识,希望对你有一定的参考价值。

什么是用户

登录进系统的用户对硬件资源的操作都需要通过操作系统,操作系统的开发者们都专门开发了安全机制,要使用操作系统必须事先输入正确的用户名和密码。

为何要有用户

系统上的每一个进程,都需要一个特定的用户运行,一个用户拥有特定的权限,该用户运行的进程与用户权限一致。

通常在生产环境是使用普通用户管理服务器,因为root权限过大,容易出问题。

查看用户信息的命令

  • id:查看用户信息
[chirou@duorou ~]$ id
uid=1001(chirou) gid=1001(chirou) 组=1001(chirou) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
  • whoami:查看当前用户是谁
  • who:查看当前登录的所有用户登录时间及终端信息
[chirou@duorou ~]$ who
root     tty1         2020-10-28 08:50
chirou   pts/0        2020-10-28 08:52 (192.168.12.102)
test     pts/1        2020-10-28 15:07 (192.168.12.102)
  • w:查看当前登录的所有用户详细信息
[chirou@duorou ~]$ w
 19:19:16 up 10:32,  3 users,  load average: 0.00, 0.03, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      08:50   30:20   0.11s  0.11s -bash
chirou   pts/0    192.168.12.102   08:52    1:40   0.68s  0.19s sshd: chir
test     pts/1    192.168.12.102   15:07    4.00s  0.31s  0.21s sshd: test

Linux系统中对用户的划分

Linux系统中对用户主要分为管理员root与其他用户,管理员拥有最高权限,其他用户根据管理员的分配拥有不同的权限。

在Linux系统中是通过UID和GID来区分不同用户和组的,用户的名称是给人类看的,系统仅仅能够识别ID这样的数字。

  • UID:用户ID,唯一标识一个用户的数字。
    • 在CentOS 系统中UID为0的用户为管理员root用户,CentOS 7之前UID1-499为系统用户,为了满足文件或服务启动的需要,一般不能登录,UID500之后为普通用户。CentOS 7中UID1-200为运行系统自带进程的系统用户,201-999为安装程序的系统用户。1000+为普通用户。
  • GID:组ID,唯一标识一个组的数字。

每个用户可以属于多个组,用户必须有一个主组,其他为用户的附加组。每个组里可以包含多个用户。

用户相关文件

文件 作用
/etc/passwd 记录用户账号信息
/etc/shadow 记录用户密码信息
/etc/group 记录组信息
/etc/gshadow 记录组密码信息
/home/USER_NAME 用户家目录
/etc/skel 用户家目录的模板目录
/var/spool/mail/USER_NAME 邮箱文件
  • /etc/passwd以冒号:分隔,分为七个字段

    • 第一字段:用户名
    • 第二字段:密码占位符,
    • 第三字段:UID
    • 第四字段:GID
    • 第五字段:用户注释信息
    • 第六字段:用户家目录
    • 第七字段:用户的登录SHELL
    [chirou@duorou ~]$ head /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    
  • /etc/shadow以冒号:分隔,分为九个字段

    • 第一字段:用户名
    • 第二字段:加密后的密码,!!表示没有密码
    • 第三字段:最近一次更改密码的时间,记录的是当前时间距离Unix元年的天数
    • 第四字段:密码最少使用天数,0表示无限制
    • 第五字段:密码最长使用天数,99999表示无限制。
    • 第六字段:密码距离过期天数的预警时间。
    • 第七字段:密码过期后的宽恕时间,在此时间内用户可以更改密码,过了此时间后系统会禁用此用户,不能再登录。
    • 第八字段:账号过期时间,如果值为空则表示永久可用。
    • 第九字段:保留字段,未使用。
    [root@duorou /home]# head -1 /etc/shadow
    root:$6$.zQAsXpp$3cwrj/2R1rtf.NuMd.PdJX3Wvh8.uRl3z9BvSVzSjiID9jPFIV/ItSX48oaiaknZ1qKhTybiq8vp7DQixET9F0:18554:0:99999:7:::
    
  • /etc/group:组信息文件,分成四个字段

    • 第一字段:组名称。
    • 第二字段:组密码占位符。
    • 第三字段:GID。
    • 第四字段:显示该组作为哪个用户的附加组,多个用逗号分隔。
    [root@duorou /home]# head -1 /etc/group
    root:x:0:
    
  • /etc/gshadow:组密码文件,分为四段

    • 第一段:组名称。
    • 第二段:组密码,如果是空或者!表示没有密码。
    • 第三段:用户组管理者,空表示没有管理者,如果有多个用逗号分隔。
    • 第四段:显示该用户组作为哪个用户的附加组,若有多个用逗号分隔。
    [root@duorou /home]# head -1 /etc/gshadow
    root:::
    
  • /etc/skel:存放用户家目录模板文件,新用户家目录内的初识内容从该目录内复制。

[panghu@duorou ~]$ ll -a /etc/skel
总用量 24
drwxr-xr-x.   3 root root   78 10月  6 10:14 .
drwxr-xr-x. 146 root root 8192 10月 28 20:31 ..
-rw-r--r--.   1 root root   18 4月   1 2020 .bash_logout
-rw-r--r--.   1 root root  193 4月   1 2020 .bash_profile
-rw-r--r--.   1 root root  231 4月   1 2020 .bashrc
drwxr-xr-x.   4 root root   39 10月  6 10:14 .mozilla
  • /var/spool/mail/:用户邮箱文件所在目录
[panghu@duorou ~]$ ll /var/spool/mail
总用量 0
-rw-rw----. 1 chirou mail 0 10月 27 19:45 chirou
-rw-------. 1 root   mail 0 10月 20 21:02 root
-rw-rw----. 1 rpc    mail 0 10月  6 10:14 rpc
-rw-rw----. 1 test   mail 0 9月  26 10:46 test

用户管理命令

创建用户:useradd

  • -u:指定UID
  • -g:指定主组
  • -G:指定附加组,会直接覆盖掉之前添加的附加组,要添加附加组需要加上-a选项。
  • -d:指定家目录
  • -c:指定备注信息
  • -s:指定shell
  • -e:修改过期时间
  • -M:不创建家目录
  • -r:创建系统账号,UID处于系统用户范围内,默认没有家目录
[test@duorou ~]$ useradd chirou
# 默认会创建一个与用户名同名的组,组员为该用户,会在/home目录下创建一个与用户同名的目录,shell为/bin/bash,UID为1000+,永不过期,/var/spool/mail目录下会创建一个与用户名相同的邮箱文件。家目录中会存在.bash_*环境变量相关的文件,这些文件默认从/etc/skel目录中拷贝。这个默认拷贝环境变量位置是由/etc/default/useradd和/etc/login.defs两个配置文件定义的。

# 当普通用户在家目录下执行了rm -rf *命令,下次登录系统时会出现-bash-4.1$这样的提示符,解决方法就是在/etc/skel目录中拷贝需要的环境变量文件,然后重新登录即可。
cp -a /etc/skel/.bash* ./

设置密码:passwd

普通用户只能修改自己的密码,root用户可以修改所有用户密码。

passwd chirou
# 执行完后即成功创建了一个普通用户,可以正常登录使用。

echo “密码” | passwd --stdin 用户名
# 非交互式设置密码,常用于批量添加用户。

# 可用系统内置变量生成随机字符来充当密码
echo $RANDOM | md5sum | cut -c 1-10

手动创建用户

useradd和passwd命令创建用户本质上也是在修改账户相关文件,那么我们也可以通过直接编辑这些文件来创建一个新用户。下述操作都需要root权限才能进行。

  • 1、首先编辑/etc/passwd文件,添加新的一行,指定用户名、UID、GID、家目录和shell。

技术图片

  • 2、编辑/etc/shadow文件,在最下面添加新的一行,指定与上面相同的用户名,添加秘文密码。在shadow文件中密码都是以秘文形式存放,可以通过openssl passwd命令生成加密的密码,然后粘贴到密码字段即可。/etc/shadow的权限是000,修改后需要在末行模式下执行:wq!来强制保存。

技术图片

  • 3、编辑/etc/group文件,添加一行。

技术图片

  • 4、编辑/etc/gshadow文件。

技术图片

  • 5、在/home目录中创建与用户名同名的目录。

技术图片

  • 6、将/etc/skel中的文件复制至该目录中,并修改属性。

技术图片

  • 7、创建邮箱文件并修改属性。

技术图片

此时新用户创建完成,可以正常登录系统。

技术图片

以上是关于CentOS 7创建用户两种方式的主要内容,如果未能解决你的问题,请参考以下文章

centos给普通用户提权的两种方式

CentOS 7 中httpd服务的用户限制详解

CentOS 7 单用户模式+救援模式

CentOS 7 单用户模式+救援模式

CentOS 7 创建桌面快捷方式

CentOS 7 两种方式实现图形界面与命令行界面的自由切换