(一) 用户概念及作用(了解)
用户:指的是Linux操作系统中用于管理系统或者服务的人
管理系统到底在管理什么?
答:Linux下一切皆文件,所以用户管理的是相应的文件
如何管理文件呢?
文件基本管理和程序文件管理:
1.文件基本管理,比如文件的创建、删除、复制、查找、打包压缩等;文件的权限增加、减少等;
2.文件高级管理,比如程序文件的安装、卸载、配置等,终极目的是对外提供特定的服务。
用户的分类(了解):
1.超级用户
• 超级用户,也叫管理员、root,该用户(root)具有所有权限,UID=0并且绝对只能是0。
2.系统用户
• 系统用户,也叫程序用户,一般都是由程序创建,用于程序或者服务运行时的身份。默认不允许登录系统。<UID<499。比如后面要学习的web服务的普通用户apache,文件共享ftp服务的管理用户ftp等。注意:Centos7/RHEL8中,系统用户UID范围:1<=UID<=999。
3.普通用户
• 普通用户,一般是由管理员创建,用于对系统进行有限的管理维护操作。默认可以登录系统。500<=UID<=60000。注意:Centos7/RHEL8中,普通用户UID范围:1000<=UID<=60000。
特别说明:
1.用户的描述是操作系统、获取系统服务的人,是人,故有相关的属性信息。
2.用户信息包括但不限于用户名、家目录、唯一身份标识识别(UID)、所属组(GID)等。
3.今天讲的是普通用户和管理员用户,即由管理员创建的用户。
用户的基本管理(掌握):
1.创建用户(useradd)
(1)基本语法和选项
useradd [选项] 用户名。常用选项: -u 指定用户id,唯一标识,必须唯一; -g 指定用户属于组(一个用户可以加入多个组,但是默认组只有一个); -d 指定用户的家目录(每个用户都有一个自己的家,并且默认在/home/xxx); -s 指定用户默认shell。
查看系统支持的shell(命令解释器):
[root@heima ~]# cat /etc/shells
/bin/sh 交互式解释器
/bin/bash 系统默认的解释器
/usr/bin/sh 系统默认解释器
/usr/bin/bash 系统默认解释器
其它 shell1: /sbin/nologin 需要权限登录系统,也叫非交互式shell
设置默认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.默认值的文件复制用户的家里 . . . .bash_logout .bash_profile .bashrc .gnome2 .mozilla
[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 用户名 表示给指定用户修改密码
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@heim ~] # echo 123|passwd --stdin stu2
更改用户stu2的密码。
passwd:所有的身份验证令牌已经成功更新。
说明:使用这种方法不用交互可以直接设置成功,一般用于脚本中。
保存用户信息的文件
1.用户信息保存文件/etc/passwd
了解相关配置文件内容,可以通过man文档解读,即man 5 passwd
以冒号":"分割为7列,如下:
account --> stu1 用户名称
password --> x 密码,密码单独保存放在另外一个文件中
UID --> 501 用户ID
GID --> 501 组ID
GECOS --> 用户信息字段,描述说明
directory -->/home/stu1 用户的家目录
shell -->/bin/bash用户默认shell,其中/sbin/nologin表示不让交互,不能登录系统
2.用户密码信息保存文件/etc/shadow
了解相关配置文件内容,可以通过man文档解读,即man 5 shadow
以冒号":"分割为9列,如下:
login name 登录名称
encrypted password 加密后的密码;!表示没有设置密码
date of last password change 最后一次更改密码的天数(距离1970年的1月1日到现在的天数)
minimum password age 密码的最小生存周期;0表示可以立刻修改密码;如果是3,则表示3天后才能更改密码
maximum password age 密码的最大生存周期;如果30表示密码30天需要更新一次密码
password warning period 密码过期的提前几天发出警告;7表示过期前7天开始警告
password inactivity period 密码的宽限期;如果密码过期时间是7天,3天内还能够登录系统,但是要关修改密码。3天后,密码过期3天后账号被封锁,不能登录系统
account expiration date 账号过期的时间。账号过期的用户不能登录;密码过期用户不能使用原有密码登录。以1970年1月1日算起
reserved field 保留
2.更改用户的账户信息(chage)
命令:chage --help
描述:
-d 修改用户最后一次改密码的时间
-m 修改密码的最小天数间隔(几天后才能修改密码)
-M 修改密码的最大存活时间(每隔多少天更新一次密码)
-W 修改密码到期时的警告(进到期几天发出警告)
-I 修改允许空闲过期几天
-E 修改账户过期时间
-l 列出账户的信息
示例说明:查看用户账户的信息命令: chage -l stu1
命令:[root@heima ~]# chage -l stu1
输出:
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
修改用户账户的过期时间: 2019-03-10过期
命令:[root@heima ~]# chage -E '2019-03-10' stu1
命令:[root@heima ~]# chage -l stu1
输出:
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : Mar 10, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
修改用户账户的过期时间为10天以后:
命令:[root@heima ~]# chage -E $(date +%F -d '+10days') stu1
3.修改用户信息(usermod)
基本语法选项:usermod [选项] 用户名
常用选项:
-u 指定用户uid, 唯一标识, 必须唯一
-g 指定用户的默认组(必须已存在)
-G 指定用户附加组(-G 一个用户可以加入多个组, 但是默认组只有一个)
-d 指定用户家目录(每个用户都有自己的家, 并且默认在/home/xxx)
-s 指定用户默认shell
-m 移动用户家目录, 和-d一起使用
示例说明:修改stu3用户的UID为1100
命令:[root@heima ~]# usermod -u 1100 stu3
四、总结
1.创建用户 (useradd)
1.useradd 用户名——>家目录/home/用户名,邮箱, UID, 默认组 (GID) [用户主组]
2.useradd [选项] 用户名——>常用选项: -d/-s/-u/-g/-G
2.设置用户密码 (passwd)
1.passwd 用户名——>给指定的用户(管理员可以给任何人设置任何密码)
2.echo 密码 | passwd --stdin 用户名——>非交互式(用于脚本中)
3.用户基本信息和用户密码信息保存文件——>/etc/passwd和/etc/shadow
4.扩展chage命令——>用来修改用户密码的信息(账号过期时间,密码最小生存周期等)
3.修改用户信息 (usermod)
1.usermod [选项] 用户名——>usermod -md 新家 用户名
4.删除用户 (userdel)
1.userdel 用户名——>只删除用户,不删除用户家目录、邮箱等信息
2.userdel -r 用户名——>删除用户以及用户其他信息
3.userdel -f 用户名——>强制删除用户(删除正在登录的用户)
二、Linux下组管理
(一) 组和用户的关系 (理解)
1.创建组 (groupadd)
基本语法:
- groupadd [选项] 组名
常用选项:-g 指定组的GID(编号), 默认唯一
举例说明:
- 创建一个组admin
- 命令:[root@heima ~]# groupadd admin
- 查看组信息
- 命令:[root@heima ~]# tail -1 /etc/group
- 结果:admin:x:1005:
- 说明:关于/etc/group配置文件说明,可以man 5 group找help
- 创建一个组sysadmin, 指定组的GID为1111
- 命令:[root@heima ~]# groupadd -g 1001 sysadmin
- 命令:[root@heima ~]# tail -1 /etc/group
- 结果:admin:x:1005: sysadmin:x:1111:
2.删除组 (groupdel)
基本语法:
- groupdel 组名
举例说明:
- 删除组admin
- 命令:[root@heima ~]# groupdel admin
- 删除组stu2
- 命令:[root@heima ~]# groupdel stu2
- 结果:groupdel: cannot remove the primary group of user 'stu2'
- 说明:以上信息说明不能删除属于其他用户的主组
3.组成员管理 (gpasswd)
基本语法:
- gpasswd [选项] 组名
常用选项: - -a 添加用户到组
- -d 从组中删除成员
- -A 指定管理员
- -M 指定组成员,可以批量添加用户到组中
- -r 删除密码
举例说明:
添加用户到组里
三、编辑户设置密码
命令:
passwd lidaman
echo 123|passwd --stdin wangergou
扩展补充
一、文件编辑工具(vim)
Linux平台下的文本编辑器: emacs, nano, gedit, vi, vim
vi (visual editor) 编辑器通常被高阶办公人员,与基Linux和Unix系统上最基本的文本编辑器, 类似于Windows 系统下的记事本。学会它后,我们将在Linux 的世界里游刃有余。
为什么要学习vim?
所有的Unix like系统都会内置vi文本编辑器, 其他的文本编辑器则不一定会存在
很多软件的编辑设口都会去劫持vi
vim具有超强编辑能力, 可以上动状况横纵驾驭语言的正确性, 方便程序设计
有深浅难, 是由浅径深
vim是vi的开放版
(二) vim编辑器三种模式
1.命令行模式
命令行可以干什么?
可以进行一些基本的复制、删除、粘贴、搜索、移动等操作
O(open for Read-only): 打开但只读文件。
E(edit): 通常为对打开要编辑的文件,并不会载入新存文件内容,这很容易出现视用户书由相互交叉对方的文件问题。
R(recover): 加载备份文件的内容。
D(delete): 如果你确定这个新存文件是没有用的,则可以删除。
Q(quit): 不进行任何编辑作,你即可离开。
A(abort): 忽略这个编辑行为,和类似。
需要注意的是:这个暂存文件不会因为你结束vim后台删除,必须要手动删除,否则每次打开放对的文件时都会出现这样的提示。
可视化模式理解:
说明:按键: ctrl+v(可视块) 或(i 可视行),然后按下↑↓←→方向键来选中需要复制的文本, 按 Ty 继续行复制 (不要按下yy),最后按下p 键粘贴。
退出可视模式:退出可视模式按下Esc。