(六)RHEL系统之Redhat8用户管理(实现添加用户到同一组)及vim使用

Redhat8用户管理

接上篇:(五)RHEL系统之Redhat8文件查找与打包
任务背景

在这里插入图片描述

任务要求

  1. 给开发部门的同事每人创建一个账号,在跳板机
  2. 加入到coding组里

任务分解

  1. 创建coding组
  2. 创建用户并加入到coding组里
  3. 给每个账号设置密码

理论储备

一、Linux下用户管理

㈠ 用户概念及作用(了解)

用户:指的是Linux操作系统中用于管理系统或者服务的人
一问:管理系统到底在管理什么?
答:Linux下一切皆文件,所以用户管理的是相应的文件
二问:如何管理文件呢?
答: 1. 文件基本管理,比如文件的创建、删除、复制、查找、打包压缩等;文件的权限增加、减少等;
2. 文件高级管理,比如程序文件的安装、卸载、配置等。终极目的是对外提供稳定的服务。

㈡ 用户的分类(了解)

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

特别说明: 1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息
2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等
3. 今天我们讨论的用户指的是普通用户,即由管理员创建的用户

㈢ 用户的基本管理(掌握)

 **1、创建用户(useradd)**
(1) 基本语法和选项
useradd [选项] 用户名 
常用选项: -u 指定用户uid,唯一标识,必须唯一 
-g 指定用户的默认组(主组) 
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个) 
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx) 
-s 指定用户默认shell
查看系统支持的shell(命令解释器)
[root@huislee huislee]# 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@huislee ~]# useradd stu1 
查看用户信息 
[root@huislee ~]# 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@huislee ~]# 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目录

2、用户密码设置(passwd)

passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码

[root@huislee ~]# 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@huislee ~]# 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 密码的宽限期;如果3表示允许密码过期3天,3天内还能登录系统,但是要求修改密码。3天后(密码过期3天后账户被封锁, 需要联系管理员) 
account expiration date 
账户过期的时间,账户过期的用户不能登录;密码过期用户不能用原来的密码登录。以1970年1月1日算起。 
reserved field 
保留

② 更改用户的账号信息(chage)

chage --help
-d 修改用户最后一次更改密码的时间 
-m 修改密码的最小存活期(几天后才能修改密码) 
-M 修改密码的最大存活期(每隔多少天更新一次密码) 
-W 修改密码过期前警告(过期前几天发出警告) 
-I 修改允许密码过期几天 
-E 修改账户过期时间 
-l 列出账户的信息 
举例说明: 
查看用户账号的相关信息命令:chage -l stu1 
[root@huislee ~]# 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@huislee ~]# chage -E '2019-03-10' stu1 
[root@huislee ~]# 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@huislee ~]# chage -E $(date +%F -d '+10days') stu1

3、修改用户信息(usermod)
① 基本语法选项

usermod [选项] 用户名 
常用选项: 
-u 指定用户uid,唯一标识,必须唯一 
-g 指定用户的默认组(主组) 
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个) 
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx) 
-s 指定用户默认shell 
-m 移动用户家目录,和-d一起使用

② 举例说明

1.修改stu3用户的UID为1100 
[root@huislee ~]# usermod -u 1100 stu3
[root@huislee ~]# tail -5 /etc/passwd 
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin stu1:x:1002:1002::/home/stu1:/bin/bash stu2:x:1003:1003::/rhome/stu2:/bin/bash stu3:x:1100:1004::/rhome/stu3:/bin/bash stu4:x:1005:1005::/home/stu4:/sbin/nologin 
2.修改stu4用户的默认shell为可登录系统
[root@huislee ~]# su - stu4 
This account is currently not available. 
[root@huislee ~]# usermod -s /bin/sh stu4 
[root@huislee ~]# tail -5 /etc/passwd 
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin stu1:x:1002:1002::/home/stu1:/bin/bash stu2:x:1003:1003::/rhome/stu2:/bin/bash stu3:x:1100:1004::/rhome/stu3:/bin/bash stu4:x:1005:1005::/home/stu4:/bin/sh 
3.修改stu5用户的家目录 
[root@huislee ~]# useradd -d /rhome/stu5 stu5 
[root@huislee ~]# usermod -md /home/stu5 stu5

4、删除用户(userdel)
① 基本语法选项

userdel [选项] 用户名 
常用选项: 
-r 删除用户并且移除其家目录和邮箱 
-f 强制删除正在登录的用户

② 举例说明

说明: 
创建完用户后,家目录默认在/home/用户名下;用户的邮箱在/var/spool/mail/用户名 
1. 删除stu4用户以及家目录 
[root@huislee ~]# userdel -r stu4 
[root@huislee ~]# id stu4 
id: stu4: No such user 
2.强制删除一个正在登录的用户 
[root@huislee ~]# userdel -r stu5 
userdel: user stu5 is currently used by process 7998 
[root@huislee ~]# id stu5 
uid=1101(stu5) gid=1101(stu5)=1101(stu5) 
[root@huislee ~]# userdel -rf stu5 
userdel: user stu5 is currently used by process 7998 
[root@huislee ~]# id stu5 
id: “stu5”:无此用户 
2. 只删除用户user02,不删除其家目录
[root@huislee ~]# userdel stu1

㈣ 总结

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. 用户要操作一些文件,文件是由用户创建,不同用户创建的文件的属性信息也就不一样
  2. 文件的属性都有啥呢?比如,文件的创建者,文件属于哪个组,文件大小,文件时间等
  3. 其中,不同用户所创建的文件的属组就是该用户的主组(默认组)
  4. A用户附加组也有可能是其他用户的主组,道理同上(权限章节再细细体会组的作用)

㈡ 组的管理(掌握)
1、创建组(groupadd)
① 基本语法

groupadd [选项] 组名 
常用选项: -g 指定组的GID(编号),默认唯一

② 举例说明

1.创建一个组admin 
[root@huislee ~]# groupadd admin 
2.查看组信息 [
root@huislee ~]# tail -1 /etc/group 
admin:x:1005: 
说明:关于/etc/group配置文件说明,可以man 5 group找帮助 
3.创建一个组sysadmin,指定组的GID为1111 
[root@huislee ~]# groupadd -g 1001 sysadmin 
[root@huislee ~]# tail -1 /etc/group 
admin:x:1005: sysadmin:x:1111

2、删除组(groupdel)
① 基本语法

groupdel 组名

② 举例说明

[root@huislee ~]# groupdel admin 
[root@huislee ~]# groupdel stu2 
groupdel: cannot remove the primary group of user 'stu2' 
注意:以上信息说明不能删除属于其他用户的主组

3、组成员管理(gpasswd)
① 基本语法

gpasswd [选项] 组名 
常见选项: 
-a 添加用户到组 
-d 从组中删除成员 
-A 指定管理员 
-M 指定组成员,可以批量添加用户到组中 
-r 删除密码 
gpasswd 组名 给组设置密码

② 举例说明
添加用户到组里

1. 创建3个用户user01~user03 
2. 将user01添加到sysadmin组里 
方法:1:指定user01用户的附加组为sysadmin(站在用户角度) 
# usermod -G sysadmin user01 
方法2:使用gpasswd命令添加用户到组里 
# gpasswd -a user01 sysadmin 
-a选项:表示往组里追加用户 
# gpasswd -M user02,user03 sysadmin 
设置sysadmin组成员为user02,user03 
-M选项:表示覆盖设置组成员(会覆盖原来的成员列表)

删除组成员

将user03用户从组sysadmin里移除 
# gpasswd -d user03 sysadmin
[root@huislee home]# gpasswd -a stu2 admin
正在将用户“stu2”加入到“admin”组中
[root@huislee home]# tail -5 /etc/group
huislee:x:1000:
admin:x:1001:stu2
systemadmin:x:1002:
stu1:x:1003:
stu2:x:1004:
[root@huislee home]# gpasswd -M stu1,stu2 systemadmin
[root@huislee home]# tail -5 /etc/group
huislee:x:1000:
admin:x:1001:stu2
systemadmin:x:1002:stu1,stu2
stu1:x:1003:
stu2:x:1004:
[root@huislee home]#

㈣ 总结

1、创建组(groupadd)
组的信息保存文件——>/etc/group和/etc/gshadow 
2、删除组(groupdel)
什么样的组不能删除?——>不能删除属于其他用户的主组
3、管理组成员(gpasswd) 
1)添加用户到组里——>gpasswd -a user1 组名 或 gpasswd -M user1,user2,... 组名
2)从组里移除用户——>gpasswd -d user1 组名

任务实施
一、创建coding组

# groupadd coding

二、创建用户

# useradd -G coding lidamao 
# useradd -G coding wangergou

三、给用户设置密码

# passwd lidamao 
# echo 123|passwd --stdin wangergou
[root@huislee home]# ls
huislee
[root@huislee home]# useradd -G coding hui
[root@huislee home]# useradd -G coding lee
[root@huislee home]# ls
hui  huislee  lee
[root@huislee home]# passwd hui
更改用户 hui 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@huislee home]# echo lee|passwd --stdin lee
更改用户 lee 的密码 。
passwd:所有的身份验证令牌已经成功更新。
[root@huislee home]# tail -5 /etc/passwd
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
huislee:x:1000:1000:huislee:/home/huislee:/bin/bash
hui:x:1001:1001::/home/hui:/bin/bash
lee:x:1002:1002::/home/lee:/bin/bash
[root@huislee home]# tail -5 /etc/group
tcpdump:x:72:
huislee:x:1000:
coding:x:1005:hui,lee
hui:x:1001:
lee:x:1002:
[root@huislee home]#

扩展补充
文件编辑工具(vim)

㈠ vim编辑器三种模式

1、命令行模式
问:命令行可以干什么?
答:可以进行一些基本的复制、删除、跳转、撤销、移动等操作

这里是引用用法1: vim +数字 文件名 打开指定的文件,并且将光标移动到指定行
[root@localhost ~]# vim +5 /tmp/passwd
用法2: vim +/关键字 文件名 打开指定的文件,并且高亮显示关键词
[root@localhost ~]# vim +/shutdown /tmp/passwd

2、编辑模式
功能:编辑文件内容。

这里是引用3、底行模式
① 如何进入底行模式?
命令模式进入底行模式:按冒号 :
编辑模式进入底行模式:先按 Esc键 退出到命令模式,然后再按冒号 :
② 底行模式能做什么?
1. 保存和退出
保存文件,命令 :w ;另存为到其他文件,命令 :w 文件名
保存退出,命令 :wq ;强制保存退出 :wq!
退出不保存,命令 :q ;
强制退出 :q!
命令 :x 在文件没有修改的情况下,表示直接退出(等价于:q),在文件修改的情况下表
示保存并退出(:wq)
2. 搜索替换
在这里插入图片描述3. 其他功能
在这里插入图片描述

㈢ 多窗口编辑问题

当两个终端同时打开或者意外结束文件时,会产生一个.swap文件 (交换文件) 举例说明:
你在两个终端同时打开/tmp/passwd文件,会产生/tmp/.passwd.swp。这时,有六个按钮可以使用:
在这里插入图片描述
㈣ 可视化模式(了解
按键:ctrl + v(可视块)或V(可视行),然后按下↑ ↓ ← →方向键来选中需要
复制的区块,按下y 键进行复制(不要按下yy),最后按下p 键粘贴
退出可视模式按下Esc

"vi编辑器的配置"
cd /etc/vim
cp vimrc ~/.vimrc
cd ~
gedit .vimrc
在.vimrc中加入如下内容:

"关闭兼容功能
set nocompatible 
"显示行号
set number
"编辑时 backspace 键设置为2个空格
set backspace=2
"编辑时 tab 键设置为4个空格
set tabstop=4
"设置自动对齐为4个空格
set shiftwidth=4
"搜索时不区分大小写
set ignorecase
"搜索时高亮显示
set hlsearch
vi中快捷键
插入: i,a,o
h()、j()、k()、l()
ngg光标移至第n行的行首(n为数字)
nyy复制当前行及其后的n-1行(n是数字)
使用P键来粘贴(p:paste)
ndd 删除当前行及其后的n-1行(n是数字)
按u键来撤销上一步操作
x删除光标所在位置的字符
/pattern 从光标开始处向文件尾搜索pattern,后按下n(向下查找)或N(向上查找)
:n1,n2s/p1/p2/gc   将n1至n2行中所有的p1均用p2替换,需要确认
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值