Linux操作系统基础--(3)权限管理与进程管理

Linux操作系统基础

实验所用系统为Redhat-rhel8.2。

Linux操作系统基础–linux系统中的权限管理

一、权限的查看和读取

1、权限查看

ls -l file		##查看文件权限
ls -ld dir		##查看目录权限

请添加图片描述

2、权限的读取

文件的属性被叫做文件的元数据(meta data)
一种元数据用1个byte来记录内容

#文件权限信息#
- | rw-r--r-- | . | 1 | root | root | 0 | Apr 12 10:57 | westos
[1]	[2]    [3] [4]  [5]    [6]   [7]      [8]         [9]

#目录权限信息#
d | rw-r--r-- | . | 2 | root | root | 0 | Apr 12 10:57 | westosdir
[1]	[2]    [3] [4]  [5]    [6]   [7]      [8]         [9]

请添加图片描述
[1]

##文件类型
#-	普通文件
#d	目录
#l	软连接(快捷方式)
#b	块设备(u盘)
#c	字符设备(/dev/pts/0)
#s	socket套接字(应用程序之间进行双向通信的端点)
#p	管道 |

[2]

##用户权限(可改)
	rw-	 | r-- 	| r--
	user group 	other
(可读可写)(只读)(只读)

[3]

#系统的selinux开启,安全上下文

[4]

#对于文件:文件内容被系统记录的次数(硬链接个数)
#对于目录:目录中子目录的个数
  • inodetables(节点区域) | dataarea(数据区域)
  • 软链接:多个节点对应一个数据区域,节省磁盘空间 ;

以路径的形式存在,类似快捷方式 ; 可以跨文件系统 ; 可对一个不存在的文件名进行链接;可对目录进行链接

  • 硬链接:一个节点对应多个数据区域 ; 以文件副本的形式存在,不占用实际空间 ; 不允许给目录创建硬链接 ; 只能在同一个文件系统中创建

可以以不同的文件名存在在同一个目录中,或者以相同的文件名存在在不同的目录中

[5] #文件拥有者(可改)

[6] #文件拥有组(可改)
##修改[5][6]

chown	#修改拥有者  	
	chown westos file  (将拥有者改成westos)
	chown westos.(:)lee file  (将file的人和组改成westos和lee)
chgrp	#修改拥有组  	
	chgrp  root westosdir(将westosdir改成root)
chown -R lee westosdor		##修改目录里所有子文件的拥有者为lee
chgrp -R lee westosdor		##修改目录里所有子文件的拥有组为lee
chown -R lee.lee westosdor	##修改目录及目录里所有子文件的拥有者和拥有组为lee
watch -n 1 "ls -lR /mnt"	#监控/mnt/目录及子文件

[7]

#对于文件:文件内容大小(可改)
#对于目录:目录中子文件的元数据大小
mkdir w
ls -ld w/
touch w/w1
ls -ld w/ 	# 此时目录中子文件的元数据 8+2(w1)=10

[8] #文件内容最后一次被修改的时间(可改 touch -t)

[9] #文件名称 (可改,mv)

二、文件用户、用户组管理

只有超级用户才能对权限进行管理

chown username file	##更改文件拥有者
chgrp groupname file	##更改文件拥有组
chown username.(:)groupname file	##同时更改文件的拥有者和拥有组(chgrp没有这个功能)

chown|chgrp -R username dir		##更改目录本身及目录里内容的拥有者 或者 拥有组
chown -R username.(:)groupname dir	##chown可同时修改目录的拥有者和拥有组,chgrp不可以

请添加图片描述
#修改文件拥有者和拥有组
请添加图片描述
#同时修改拥有者和拥有组
请添加图片描述
#在目录里建立一个文件
请添加图片描述
#查看权限
请添加图片描述
#更改目录本身及目录里内容的拥有者,拥有组

请添加图片描述
#更改目录本身及目录里内容的拥有组
请添加图片描述
#chgrp不可同时修改目录的拥有者和拥有组

三、普通权限的类型及作用

1、用户对文件的身份

u:	user	文件的拥有者	ls -l	看到的第五列信息
g:	group	文件拥有组	ls -l	看到的第六列信息
o:	other	既不是拥有者也不是拥有组成员的其他用户的通称

2、权限位

-表示权力关闭

	rw- | r-- | r--
	user group other
(可读可写)(只读) (只读)

3、用户身份匹配

user>group>other

4、权限类型

-	权限未开启

r	可读
	对于文件:可以读取文件内容
	对于目录:可以ls列出目录中的文件

w	可写
	对于文件:可以更改文件内容
	对于目录:可以在目录中新建或者删除文件

x	可执行
	对于文件:可以用文件名称调用文件内记录的程序
	对于目录:可以进入到目录中


##权限最底层的安全是物理安全
[注意]	对文件,不可读的情况下依旧可写

四、设定普通权限的方法

  • chmod ##设定文件权限

1、chmod 复制权限

chmod --reference=/tmp	/mnt/westosdir		##复制/tmp目录的权限到/mnt/westosdir上

chmod -R --reference=/tmp	/mnt/westosdir	##复制/tmp目录的权限到/mnt/westosdir及目录中的子文件上	
-R表示递归操作

请添加图片描述

2、chmod 字符方式设定权限

chmod <a|u|g|o><+|-|=><r|w|x|-> file		##用字符方式设定权限

a表示all
=表示直接赋予权限

例:
chmod u+x file
chmod g-r file
chmod o+wx file
chmod a-rwx file
chmod u=rw,g=rx,o=r file
chmod -R u=rw,g-rx /mnt/dir/

请添加图片描述请添加图片描述

3、chmod 数字方式设定权限

权限波尔值表示方式

rwx = 111		
--- = 000

三位二进制可以表示的最大范围为8进制数

rwx = 111 = 7
rw- = 110 = 6
r-x = 101 = 5
r-- = 100 = 4 = r
-wx = 011 = 3
-w- = 010 = 2 = w
--x = 001 = 1 = x
--- = 000 = 0
例:
chmod	600	/mnt/westosfile1
      rw-------

请添加图片描述

五、系统默认权限的设定

  • 系统本身存在的意义–共享资源
  • 从安全角度讲系统共享的资源越少,开放的权力越小,系统安全性越高
  • 既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留

1、保留权力

umask 表示系统保留权力

umask		##查看保留权力
umask 权限值	##临时设定系统预留权力
文件默认权限 = 777-umask-111 = 644
目录默认权限 = 777-umask = 755

umask默认值为022,系统为目录默认保留的权力
111是在保留目录权力后增加的文档权力,去掉了执行权力,防止木马和病毒等

umask值越大系统安全性越高
umask在哪设定,就只会在当前shell保存

2、umask临时更改

umask 077(根据需要取值)

请添加图片描述

3、永久更改

vim /etc/bashrc			##shell系统配置文件

请添加图片描述
#将shell系统配置文件中umask值改为077

vim /etc/profile		##系统环境配置文件

请添加图片描述
#将系统环境配置文件中umask值改为077

source /etc/bashrc		##source作用是使更改的内容立即被系统识别
source /etc/profile

请添加图片描述

[注意] 两个文件内容里的值必须保持一致

六、特殊权限

1、stickyid 粘制位

#针对目录:如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除

chmod	1原始权限	dir
chmod	o+t		dir

实验:

  1. 创建一个权限为777的公共文件夹
  2. 切到westos用户,在公共文件夹建一个文件,退出
  3. 切到lee用户,在公共文件夹建一个文件,lee用户可以删掉自己的文件,但是也可以删掉用户westos的文件
chmod 1777 /pub
chmod o+t  /pub
以上两条命令都可以开启pub目录的t权限
su - westos ----> touch /pub/westosfile
exit
su - lee -------> touch /pub/leefile
rm -rf /pub/leefile			#可以删除
rm -rf /pub/westosfile		#不属于自己的文件也可以删除

解决问题:

  1. 创建一个权限为777的公共文件夹
  2. 切换到westos用户,在公共文件夹建一个文件,退出
  3. 切到lee用户,在公共文件夹建一个文件,lee用户可以删掉自己的文件,不可以删掉用户westos的文件
chmod 1777 /pub
chmod o+t  /pub
#以上两条命令都可以开启pub目录的t权限
su - westos ----> touch /pub/westosfile
exit
su - lee -------> touch /pub/leefile
rm -rf /pub/leefile	#可以删除
rm -rf /pub/westosfile	#不属于自己的文件不能删除
#rm:cannot remove 'westosfile':Operation not permitted

请添加图片描述

2、sgid 强制位

针对目录:目录中新建的文件自动归属到目录的所属组中,不影响已经存在的文件

chmod	2原始权限	dir
chmod	g+s		dir

实验:

  1. 创建一个权限为777的公共文件夹
  2. 切换到westos用户,在公共文件夹建一个文件,文件所属组为westos,退出
  3. 设定权限,目录中新建的文件自动归属到目录的所属组
  4. 切换到westos用户,在公共文件夹建一个文件,文件所属组为root,退出
mkdir /mnt/public
chmod 777 /mnt/public

westos ---> touch /mnt/public/file	##是谁建立的文件组就是谁的

chmod g+s /mnt/westosdir
westos ---> touch /mnt/public/file1	##file1自动复制了/mnt/public目录组的所属组

请添加图片描述

还可针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有组身份运行,和执行用户无关

实验:

  1. 切换到westos用户,执行cat命令
  2. 在westos用户,监控cat进程的拥有者,拥有组,命令,拥有组为westos退出
  3. 在root用户,设置文件用文件拥有组身份运行
  4. 切换到westos用户,执行cat命令
  5. 在westos用户,监控cat进程的拥有者,拥有组,命令,拥有组为root
su - westos
/bin/cat
#另外打开一个shell
watch -n 1 “ps ax -o user,group,comm | grep cat##ps ax 显示系统中所有进程
	##ps ax -o user 显示系统中某些进程(指定参数进程)
	##grep cat 将有cat关键字的进程显示
westos	westos	cat
exit

在root用户下
chmod g+s /bin/cat

su - westos
/bin/cat

ps ax -o user,group,comm | grep cat
westos	root	cat

请添加图片描述
请添加图片描述

3、suid 冒险位

只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关

chmod	4原属性	file
chmod	u+s	file

实验:

  1. 切换到westos用户,执行cat命令
  2. 切换到westos用户,监控cat进程的拥有者,拥有组,命令,拥有者为westos,退出
  3. 在root用户,设置文件用文件拥有者身份运行
  4. 切换到westos用户,执行cat命令
  5. 在westos用户,监控cat进程的拥有者,拥有组,命令,拥有者为root
实验:
su - westos
/bin/cat

ps ax -o user,group,comm | grep cat
westos	westos	cat
exit

用root用户身份
chmod u+s /bin/watch

su - westos
/bin/cat

ps ax -o user,group,comm | grep cat
root	westos	cat

请添加图片描述请添加图片描述

七、权限列表

1、Aiccess Control Lists

Aiccess	Control Lists		#访问控制列表

功能:在列表中可以设定特殊用户对特殊文件有特殊权限

acl列表开启标识

-rw-rw---- 1 root caiwu 0 Apr 18 09:03 westosfile
          ^
	没有“+”代表acl列表未开启

-rw-rw----+ 1 root caiwu 0 Apr 18 09:03 westosfile
          ^
	acl列表功能开启

2、acl列表权限读取

getfacl  westosfile

显示信息:

file: westosfile	#文件名称
owner: root			#文件拥有者
group: root			#文件拥有组
user::rw-			#文件拥有者权限
user:lee;rw-		#特殊指定用户权限
group::r--			#文件拥有组权限
group:westos:---	#特殊指定的用户组的权限
mask::rw-			#能够赋予特殊用户和特殊用户组的最大权限阀值
other::r--			#其他人的权限

请添加图片描述

[注意] 当文件权限列表开启,不要用ls -l 的方式来读取文件的权限,不准确

3、acl列表的控制

setfacl -m u:lee:rw	westosfile		#设定
setfacl -m g:westos:rw	westosfile
setfacl -m u::rwx	westosfile
setfacl -m g::0		westosfile
setfacl -x u:lee	westosfile		#删除列表中的lee
setfacl -b westosfile				#关闭

请添加图片描述
#设定权限
请添加图片描述
#删除列表中的lee
请添加图片描述
#关闭权限

4、acl 权限优先级

拥有者>特殊指定用户>权限多的组>权限少的组>其他
				 (同一组成员取权限多的)

5、acl mask 控制

  • mask是能够赋予指定用户权限的最大阀值,不针对拥有者(拥有者拥有对文件的绝对权力)。
  • mask的权力值,如果小于新设置的组或者用户的权力值,则会默认调整至最大值,即mask未生效。
  • 当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力(此时权限列表的group权限不变,更改的是mask的权力值,用ls -l查看),mask会根据设置组权力的变化发生相同变化
setfacl -m m::权限	文件

6、acl 列表的默认权限

setfacl -m u:lee:rwx /mnt/westosdir		##只对于/mnt/westosdir目录本身生效
setfacl -Rm u:lee:rwx /mnt/westosdir	##对于/mnt/westosdir目录和目录中已经存在的内容生效

以上的命令只针对于存在的文件生效,新建文件是不会被设定的

请添加图片描述请添加图片描述

setfacl -m d:u:lee:rwx /mnt/westosdir/	##只针对于设定默认权力后/mnt/westosdir目录中新建文件生效

对目录本身不生效,对已经存在的文件不生效

请添加图片描述

八、attr权限

attr权限限制所有用户(包括超级用户,root用户才能进行设置)

i	#不能作任何的更改	(删除未成功建立的文件时,不能-rf强制删除,否则不报错文件不存在)
a	#能添加不能删除
lsattr dir|file					##查看attr权限
lsattr -d dir					##查看目录本身的权限
chattr +i|+a|-i|-a dir|file		##设定attr权限

请添加图片描述
请添加图片描述

Linux操作系统基础–linux系统中进程管理

一、进程定义

1、进程的定义

  • 程序是静态的代码文件
  • 进程是指程序运行时的形态
  • 进程是程序的一个副本(即cpu在内存里打开文件的副本,退出时将内存的数据同步到硬盘里的文件)
  • 进程是有生命周期的(准备期,运行期,终止期)

2、进程和线程

  • 进程是资源调用的最小单位
  • 线程是进程的最小单位
  • 多线程针对多核心的处理器
  • 进程执行流是从上到下贯穿运行的
  • 当线程是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程。
  • 线程资源是共享的。

3、进程状态

#R(TAKS_RUNNING)			##可执行态(running,ready)
#S(TASK_INTRRUPTABLE)		##可唤醒休眠
#D(TASK_UNINTRRUPTABLE)		##不可唤醒休眠
#T(TASK_STOP)				##暂停状态
#Z(EXIT_ZOMBIE)				##僵死态

二、进程查看命令

gnome-system-monitor		##图形进程查看工具

请添加图片描述

1、ps

ps		##进程查看
		ps	##命令的三种执行风格(unix,bsd,GNU)
unix(加-),bsd(不加-),GNU

##bsd
		a	##与终端相关的进程(当用户登录系统后产生的进程都是带终端的)
		x	##与终端无相关的进程
		u	##用户信息归类的查看方式
		f	##进程层次关系
		o	##显示指定参数  pid comm nice pri pcpu ppid,stat,user,group ps axo pid,comm,nice  注意,加“,”)
		
#unix	
		-e	##显示所有进程
		-f	##显示信息的完整格式
		-H	##显示进程的层次结构
		-o	##显示指定参数
(pid comm等等也可加-使用)
		--sort=		##对进程显示进行排序
		--sort=-	##反向排序
例:ps -eo %cpu --sort=%cpu	##对cpu用量占比从小到大排序ps ax | less		#分页显示,q退出)cat &				#将进程cat在后台运行)

请添加图片描述
#进程查看–bsd风格
请添加图片描述
#进程查看
请添加图片描述
#查看进程的指定参数

请添加图片描述
#进程查看–unix风格
请添加图片描述
#进程查看
请添加图片描述
#ps -f 显示信息的完整格式
ps -H 显示进程的层次结构
ps -o 显示指定参数

ps ax	显示信息如下:
		##PID		进程id
		##TTY		进程用到的终端
		##STAT		进程状态
		##TIME		进程占用cpu时长
		##COMMAND  	进程名称

请添加图片描述

ps aux	显示信息如下:
		##USER		进程所有人
		##PID		进程id
		##%CPU		进程使用cpu的用量占比
		##%MEM		进程所用道德内存用量
		##VSZ		进程使用的虚拟内存大小
		##RSS		进程常驻内存中的数据大小
		##TTY		进程用到的终端
		##STAT		进程状态
		##START		进程运行时长
		##TIME		进程占用cpu时长
		##COMMAND  	进程名称

请添加图片描述

2、pgrep

pgrep		##进程过滤
		-u	uid		##显示指定用户进程
		-U	user	##显示指定用户进程
		-t	tty		##显示指定终端进程
		-l			##显示进程名称
		-a			##显示进程的完整名称
		-P			##显示当前进程的子进程(和-lu不能同时使用)

3、pidof

pidof	vim	##查看vim的pid

请添加图片描述
#进程过滤

4、top

top		##进程动态查看(q退出)
	top中的内容显示信息
		09:48:52	#系统时间
		up 18:54	#开启,运行时长
		2 users		#系统中有两个用户登录
		load average:0.75, 0.53, 0.41
			     # 1min  5min  15min
		     #cpu负载-在xmin等待时长(时长越长,负载越高)

		Tasks:
		331 total		#任务总量
		3 running		#有三个正在运行
		329 sleeping	#休眠任务数量
		0 stopped		#被暂停任务数量
		0 zombie		#僵死任务数量

		%cpu(s)
		1.5 us		#用户空间占用cpu时长
		1.9 sy		#内核空间
		0.0 ni		#nice值调整时间
		58.9 id		#空闲时间
		0.0 wa		#等待io时间
		2.1 hi		#处理硬件中断时间
		0.2 si		#处理软件中断时间
		0.0 st		#被偷走的时间(虚拟节vm使用时间)

		MiB Mem:内存
		7664.4 total		#总量
		5832.4 free			#空闲
		1322.2 used			#占用
		894.2 buff/cache	#缓存
			#buff	从硬盘中读取
			#cache	运行结束将要从内存保存到硬盘

		MiB Swap:	交换分区用量

请添加图片描述

#top命令显示的参数

  • top命令的参数
		-d		指定刷新频率
		-b		以批次方式显示
		-n		指定显示的批次数量
例:
top -d num	#以1s一次的频率刷新
top -b		#以批次方式显示,单独使用时不能加数字,并且一直刷新
top -n 3	#以批次的方式显示并且显示三次
top -bn	3	#以批次的方式显示并且显示三次,没有表头
  • top内部命令
		p	#cpu排序
		M	#内存排序
		T	#累计占用cpu时间排序
		l	#关闭/开启uptime信息(top表的第一行)
		t	#关闭/开启cpu&task
		s	#指定刷新频率
		k	#操作进程(新建shell,ps查看进程id,在top表里输入k,shellid,9,则kill了新建的shell)
		u	#查看指定用户进程
top内部显示信息
		#PID		进程id
		#USER		进程所有者的用户名
		#PR			优先级
		#NI			nice值--负值表示高优先级,正值表示低优先级
		#VIRT		进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
		#RES		进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
		#SHR		共享内存大小,单位kb
		#S			进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
		#%CPU		上次更新到现在的cpu时间占用百分比
		#%MEM		进程使用的物理内存占比
		#TIME+		进程使用的CPU时间总计,单位1/100秒
		#COMMAND  	命令名/命令行

请添加图片描述

三、进程优先级

  • 系统是多任务多用户的操作模式
  • 任务的重要性是有区分的

范围:0-139
内核自控优先级范围:0-99
用户可控优先级范围:100-139

nice值:-20~19

renice -n -5 32443	#更改优先级
(此时进程已经存在)
nice -n -5 cat &	#指定优先级打开进程
(新建的进程)
ps ax -o pid,nice,comm | grep cat	#查看cat进程的pid等

ps ----> pri — 39-0
nice 20-19
priority 0-139(100-139)
普通用户只能将自身优先级调低,优先级越低,nice值越高,pri越大

S	#sleeping
<	#优先级高
s	#顶级进程
T	#stop
N	#优先级低
R	#running
+	#运行在前台

请添加图片描述

#更改已经存在的进程的优先级
请添加图片描述
#z指定优先级打开进程

四、进程前后台调用

<ctrl>+<z>	##把占用shell的进程打入后台挂起(stopped)
				#+即将被处理运行的进程
				#-稍后被处理运行的进程
<ctrl>+<c>	##结束进程
bg			##把后台挂起的进程运行起来
	bg 1		#将编号为1的进程从后台运行
fg			##把后台进程调回前台
	fg 1		#将编号为1的进程调回前台
&			##运行进程在后台
jobs		##查看当前shell中在后台的所有工作

请添加图片描述
#ctrl+z 将进程打入后台,&表示在后台运行

请添加图片描述
#结束进程,后台挂起,调回前台,查看后台进程

五、进程信息号

  • 进程信号(可控)
1	#重新读取加载系统配置文件(source)
2	#清空内存中的进程数据(ctrl+c)
		ps(查看进程)并记住的当前shell的pid-> 打开另一个shell->kill -2 pid->进程被清空
3	#清空内存中的鼠标的数据(ctrl+\)动一下就恢复
9	#强行结束进程(不能被阻塞)
15	#正常关闭进程(会被阻塞)如果有正在运行的子进程,则不能正常关闭,即被阻塞
18	#运行被暂停的进程
19	#暂停进程(不会被阻塞)运行后会显示阻塞期间的输入
20	#暂停进程(会被阻塞)阻塞的是命令,即命令未成功运行
  • 进程信号控制工具
kill	进程信号	pid
killall	进程信号	进程名字(关闭所有同名进程)
pkill	进程信号	进程条件(常用用户身份)(pkill -U westos)

[注意] 如果没有加控制信号,默认加15

请添加图片描述

六、systemd守护进程

pstree	#树形结构查看进程

请添加图片描述

  • 守护进程,替内核分担程序空管的程序,通常pid为1,服务为systemd,控制命令为systemctl
  • systemctl命令的用法
	start	sshd		##开启
	stop				##关闭
	status				##查看状态
	reload				##重新加载
	restart				##重新启动服务
	enable				##设定服务开机启动
	enable --now		##设定服务开机启动并当前开启服务
	disable				##设定服务开机不启动
	list-units			##查看系统所有服务当前状态
	list-unit-files		##查看服务开机状态
	list-dependencies	##列出服务依赖性
	mask				##冻结服务
	unmask				##解锁
	set-default			##设定系统运行模式
			#multi-user.target	##非图形界面
			#graghical.target	##图形界面
	get-default		##查看系统运行模式(输出就是multi或者graghical)
			#系统运行模式
			0-6
			0	#POWEROFF  关机
			1	#single  单用户
			2	#noG+NETWORK 没有图形的网络模式,同3,4
			3
			4
			5	#G+NETWORL  图形模式
			6	#REBOOT	重启

请添加图片描述
#开启服务,查看状态
请添加图片描述
#关闭服务,查看状态
请添加图片描述
#重启服务
请添加图片描述
#设置开机自启与查看系统所有服务当前状态
请添加图片描述
#查看服务开机状态

请添加图片描述
#查看系统运行模式,为图形界面

七、系统中的登陆审计

w	##显示正在登陆系统的账号
	-i	##显示登陆来源
	/var/run/utmp
last	##登陆成功现在已经退出的用户
	/var/log/wtmp
lastb	##试图登陆但为成功
	/var/log/btmp

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值