用户:指的是Linux操作系统中用于管理系统或者服务的人
一问:管理系统到底在管理什么?
答:Linux下一切皆文件,所以用户管理的是相应的文件
二问:如何管理文件呢?
答:
1、超级用户
超级用户,也叫管理员,root。该用户(root)具有所有权限,UID=0并且绝对只能是0。
2、系统用户
系统用户,也叫程序用户。一般都是由程序创建,用于程序或者服务运行时候的身份。
默认不允许登录系统。1<=UID<=499
比如后面要学的web服务的管理用户apache,文件共享ftp服务的管理用户ftp等
注意:Centos7/RHEL8中,系统用户UID范围:1<=UID<=999
3、普通用户
普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。
默认可以登录系统。500<=UID<=60000
注意:Centos7/RHEL8中,普通用户UID范围:1000<=UID<=60000
特别说明:
useradd [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
查看系统支持的shell(命令解释器)
[root@heima ~]# cat /etc/shells
/bin/sh 软连接文件
/bin/bash 系统默认的解释器
/usr/bin/sh 软连接文件
/usr/bin/bash 系统默认的解释器
其他shell:
/sbin/nologin 不能登录操作系统,也叫非交互式shell
/bin/dash
/bin/tcsh
/bin/csh
① 创建默认用户
创建一个用户stu1
[root@heima ~]# useradd stu1
查看用户信息
[root@heima ~]# id stu1
uid=501(stu1) gid=501(stu1) groups=501(stu1)
注意:当创建一个默认用户时,系统会给该用户以下东西,以stu1为例说明
1)用户的UID(唯一标识) 501(系统自动分配)
2)用户的默认组(主组) stu1组,默认跟该用户的用户名一致;组ID(501),默认和用户UID一致
3)用户的家目录 /home/stu1
4)拷贝相应的文件到用户的家里
[root@heima ~]# su - stu1
[stu1@localhost ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla
② 根据需求创建用户
1. 创建用户stu2,但是不能登录操作系统
注意:-s 指定用户的默认shell,/sbin/nologin表示不能登录系统,也叫非交互
[root@heima ~]# useradd -s /sbin/nologin stu2
验证:
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
切换用户失败,说明该用户不能登录系统
[root@heima ~]# su - stu2
This account is currently not available.
2. 创建用户stu2,同时指定该用户的家目录为/rhome/stu2
注意:-d 指定用户的家目录,前提该用户家目录的上一级目录/rhome必须存在
[root@heima ~]# mkdir /rhome
[root@heima ~]# useradd -d /rhome/stu2 stu2
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
说明:指定stu2家目录/rhome/stu2时,只需要/rhome存在即可,系统会默认在/rhome下创建stu2目录
passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码
[root@heima ~]# passwd stu1
Changing password for user stu1.
New password: 密码不显示
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 密码不显示
passwd: all authentication tokens updated successfully.
说明:
1.管理员root可以给任何用户修改密码
2.普通用户可以自己给自己修改密码,但是密码复杂度要符合规范
[root@heima ~]# echo 123|passwd --stdin stu2
更改用户 stu2 的密码 。
passwd:所有的身份验证令牌已经成功更新。
说明:使用这种方法不用交互可以直接设置成功,一般用于脚本中
① 保存用户信息的文件
1. 用户信息保存文件/et