Linux系统用户管理

Linux系统用户管理

  1. 用户管理
  2. Linux用户命令
  3. 用户创建原理
  4. 密码管理
  5. 组管理命令
  6. 切换身份
    7.sudo提权.

Linux用户属于多用户操作系统,在windows中,可以创建多个用户,但是不允许同一时间多个用户进行系统登陆,但是Linux可有同时支持多个用户同时登陆操作系统,登陆后互相之间并不影响。
在这里插入图片描述

Linu系统用户的内部机制,AAA 认证体系
认证,授权,统计

用户和组存在的意义
系统上的每一个进程都需要特定的用户运行
每一个文件都有特定的用户拥有
访问的文件或者目录受到用户的限制
进程能已何种方式访问文件,与进程所关联的用户有关
在这里插入图片描述

查看当前登录的用户信息
[root@hjh ~]# id
uid=0(root) gid=0(root) groups=0(root)
1
2
用户uid的分类
0 超级管理员

1 - 200 系统用户,由系统分配给系统进程使用
201 - 999 系统用户,用户运行服务账号, 不需要登陆系统(动态分配)
1000+ 常规用户
1
2
3
4
5
注意: 在Linux 7 之前的惯例是,UID1-499用于系统用户,而UID 500+则用于普通用户

组类别
基本组:优先使用基本组,用户只能属于一个基本组,用户默认基本组。
附加组:基本组不能满足授权需求,创建附加组,用户可以属于多个附加组。
私有组:私有组, 创建用户时如果没有指定基本组,系统会创建和用户同名的组

1.用户管理
账户信息存放在/etc/passwd ,账目密码信息保存在/etc/shadow ,这个两个文件是Linux系统中最重要的文件之一,如果没有这个两个文件或者这两个文件出问题,会导致无法正常登陆Linux系统。

/etc/passwd 账户文件

[root@hjh ~]# head -1 /etc/passwd
root❌0:0:root:/root:/bin/bash

1
2
3
4
/etc/passwd 由‘ :’ 分割成7个字段, 每个字段的具体含义:

字段名称 注释说明
1.用户名称 // 用户的账户的名称
2.密码占位符 // 存放账目的口令, 暂用x标识,密码保存在/etc/shadow
3.用户UID //用户的标识符
4.用户基本组 //用户所在的基本组
5.用户注释 //用户的在创建时的备注,也可之后用 chfn 添加
6.用户家目录 //root用户的家目录在 /root,普通用户家目录在/home/root,可自定义
7.登陆的shell // 用户登陆的 Linux使用的shell 通过cat命令查看 /etc/shells
1
2
3
4
5
6
7
8
/etc/shadow用户密码文件

[root@hjh ~]# tail -1 /etc/shadow
hjh:!!:18164:0:99999:7:::

双感叹号表示未被赋予,注意密码为空也算有密码,而密码未被赋予就是自能由管理员切换不可登陆。
1
2
3
4
/etc/shadow由‘ : ’分割成9个字段,每个字段的具体含义如下:

字段名称 注释说明
1.用户登陆名 //用户的账号名称
2.加密后的密码 //用户的密码,这是加密后的口令(为设密码时为!!)
3.最后一次密码更改的时间 //从1970年到最近一次更改密码时间之间过了多少天
4.密码最少使用几天 //密码最少使用几天才可以更改密码(0标识无限制)
5.密码最长使用几天 //密码使用期限(默认99999)‘
6.密码到期前警告期限 //密码过期前多少天提醒用户更改密码(默认过期前7天)
7.密码到期后活动的天数 //再次期限内,用户依然可以登陆系统更改密码,指定天数过后,账户不给锁定。
9.账户到期时间 //从1970年起,账户在这个日期前可使用,到期后失败
0.标志 //保留

1
2
3
4
5
6
7
8
9
10
11
已经被赋予的密码格式:
$6 7 j 5 r w p s 0 7j5rwps0 7j5rwps0Uy6ZMoq.GLKMsmiv8K3KHzMY.PWs.yWjhZPjeunCZao5Den.GRMzXzWBYIO7UFDs2iI1CrxQpQ5eQQp0C0Ywl1:18150:0:99999
`
已$为分隔符

a a ab$c

 a  表示加密算法
 b  salt  随机值 感觉就是调味料的意思
 c   加密后的值		

1
2
3
用户登陆时密码认证的的方式:
首先用户在登陆是输入密码:让密码与/etc/shdow 中的第二个 符 号 后 的 随 机 值 进 行 H A S H , 最 后 得 出 结 果 与 第 三 个 符号后的随机值进行HASH,最后得出结果与第三个 HASH符号后的值进行比对,结果一样即可登陆,否则密码错误。

在这里插入图片描述

在这里插入图片描述

  1. Linux用户命令
    添加用户前需确定:
    确定用户的默认组是否有特殊需求
    确定用户是否允许登陆
    确定用户的密码策略
    确定用户的有效期
    确定用户的uid是否有特殊要求1. 使用useradd命令新增用户,注意:adduser命令软链接指向useradd命令
    1
    2
    3
    4
    5
    6
    useradd命令:

‘-u’ 指定用户的UID,不能和现有的ID冲突
‘-g’ 指定用户的默认基本组
‘-G’ 指定用户的附加组,使用逗号隔开添加多个附加组
‘-d’ 指定用户的家目录
‘-c’ 指定用户的注释信息
‘-M’不建立家目录
‘-s’指定用户默认shell
‘-r’创建系统用户,没有家目录

usermod命令:

‘-u’ 修改用户的UID
‘-g’ 修改用户所属的基本组
‘-G’ 修改用户所属的附加组,使用逗号隔开多个组,覆盖原来的附加组
‘-a’ 追加更多的附加组, 要和‘-G’一起使用,所有’-aG’是追加的意思
‘-md’ 家目录迁移,移动家目录到新位置
‘-d’指定用户家目录的新位置
‘-c’修改用户的注释信息
‘-s’更改用户使用的shell
‘-l’修改用户的登录名
‘-L’锁定用户
‘-U’解锁用户

如果锁住了用户可以查看/etc/shadow的密码前面是否有感叹号

[root@hjh ~]#egrep hjh /etc/shadow
hjh: 6 6 6vgrIHTPX$2mKEv9PknmLEy7edeNw4fCiobdR3aRRvv.Thl5bOuYt0e70VwE7M.G.tCC2ifjMnVpOfdAJiuLmLtXnIh00ta1:18208:0:99999:7:::
[root@hjh ~]#usermod -L hjh
[root@hjh ~]#egrep hjh /etc/shadow
hjh:! 6 6 6vgrIHTPX$2mKEv9PknmLEy7edeNw4fCiobdR3aRRvv.Thl5bOuYt0e70VwE7M.G.tCC2ifjMnVpOfdAJiuLmLtXnIh00ta1:18208:0:99999:7:::
1
2
3
4
5
使用finger命令查询用户信息以及登陆信息
先用yum intall -y finger 安装

[root@hjh ~]# finger zhenqiaolu
Login: zhenqiaolu Name:
Directory: /home/zhenqiaolu Shell: /bin/bash
Last login Thu Oct 30 00:00 2014 (CST) on pts/1 from 10.0.0.1
No mail.
No Plan.

1
2
3
4
5
6
7
使用chfn来修改上述信息

[root@hjh ~]# chfn zhenqiaolu
Changing finger information for zhenqiaolu.
Name []: zhenqiaolu
Office []: .杭州.拱墅区.呐呐呐3东
Office Phone []: 123456
Home Phone []: 12357673454

Finger information changed.
1
2
3
4
5
6
7
8
使用chsh命令来更改登陆的shell

[root@hjh ~]# chsh zhenqiaolu
Changing shell for zhenqiaolu.
New shell [/bin/bash]: /sbin/nologin
Shell changed.
[root@hjh ~]# tail -1 /etc/passwd
zhenqiaolu❌5014:5021:zhenqiaolu,第奏樿北仦­州拱壦±墅区3南楑呐呐3东,123456,12357673454:/home/zhenqiaolu:/sbin/nologin
1
2
3
4
5
6
7
检查用户的登陆情况
[root@hjh ~]# who
root pts/0 2019-11-07 12:31 (10.0.0.1)

[root@hjh ~]# w
13:36:45 up 1:06, 2 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 12:31 5.00s 0.09s 0.00s w
root pts/1 10.0.0.1 13:31 1:33 0.08s 0.01s -bash

删除用户userdel 命令

-r 选项表示连同家目录一起删除,不加-r家目录是不会删除的。(据具体需求删除)

3.用户创建原理
Linux创建用户默认会读取/etc/defaults/useradd的配置文件, 如果当我指定参数时,使用指定参数,如果不指定参数,就会读取/etc/defaults/useradd中的配置,家目录下会产生相应的.bash_*文件,这些文件默认是从/etc/skel目录中复制。如需变更环境拷贝目录站点可修改:/etc/defaults/useradd 的配置文件。
注意:如果执行useradd命令新建用户时,指定了参数,就会覆盖/etc/defalut/useradd默认的配置。

在这里插入图片描述

决定用户创建是的默认值的就是这三个模板
模板一
[root@hjh ~]# egrep -v “#|$” /etc/login.defs
MAIL_DIR /var/spool/mail
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999
GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999
CREATE_HOME yes
UMASK 077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

模板二

[root@hjh ~]# cat /etc/default/useradd

useradd defaults file

GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

模板三

[root@hjh ~]# ls -a /etc/skel
. … .bash_logout .bash_profile .bashrc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
在这里插入图片描述

4.密码管理
刚创建完用户,默认没有密码,自然也无法登陆操作系统,只有用管理员通过passwd命令才能设置密码,为了密码安全,一般都要遵循以下要求:

长度大于10
密码包含大小写字母数字以及特殊字符!,@,$等
不规则性(不要出现与自己身份相关的玩意)
普通用户只能修改自己的密码
管理员可以修改任何人的密码
语法: passwd [username]

//无需用户交互修改密码,将前者的输出结果,成为后者的输入

[root@hjh ~]# echo “123” | passwd --stdin hjh
Changing password for user hjh.
passwd: all authentication tokens updated successfully.

1
2
3
4
5
6
随机密码生成工具:
//1.系统内置变量生成随机密码

[root@hjh ~]# echo $RANDOM|md5sum|cut -c 1-10
56bf51ba9c

专业的软件包
[root@hjh ~]# yum install -y expect

[root@hjh ~]# mkpasswd -l 15 -d 3 -c 5

aphic7Yz1lm4cQ

1
2
3
4
5
6
7
8
9
10
11
在这里插入图片描述

  1. 组管理命令
    组账户信息保存在/etc/group和/etc/gshadow两个文件中
    /etc/group 组账户信息
    [root@hjh ~]# tail -2 /etc/group
    sa❌503:
    hjh❌6002:

组账户信息由 :分割成四个字段,每个字段的具体含义如下:

字段名称                  注释说明
1. 组账户名称            //组的名字
2. 密码占位符            //组的密码(存放/etc/gshadow)
3. 组GID               //组GID信息
4. 组成员              //这里显示的是附加组成员,基本成员不显示

1
2
3
4
5
/etc/gshadow组密码信息
[root@hjh ~]# tail -2 /etc/gshadow
sa:!::
hjh:!::
[root@hjh ~]# head -2 /etc/gshadow
root:::
bin:::
1
2
3
4
5
6
/etc/gshadow由’ :‘ 分割成4个字段,每个字段的具体含义如下:
字段名称 注释说明
1. 组账户名称 //组的名字
2. 密码占位符 //组的密码(存放/etc/gshadow)
3. 组管理员 //表面意思
4. 组成员 //这里显示的是附加组成员,基本成员不显示

1
2
3
4
5
6
7
使用groupadd命令新增组
语法 : group 【-g GID】groupaddname
//不指定默认从1000开始

“-g” 指定gid
“-r” 创建系统组
在这里插入图片描述

使用groupmod命令修改组
//新增一个用户组
[root@hjh ~]# tail -1 /etc/group
a❌6003:

“-g”修改组gid
“-n”修改组名称
在这里插入图片描述

使用 userdel删除组
//该命令没有特殊项, 如果一个用户有基本组和附加组,只能删除附加组,不能删除基本组

//删除用户组

[root@hjh ~]# tail -1 /etc/group
a❌6003:
[root@hjh ~]# groupdel a

//删除附加组`
[root@hjh ~]# egrep hjh /etc/group
hjh❌6002:
b❌6003:hjh
[root@hjh ~]# groupdel b

//无法删除基本组
[root@hjh ~]# groupdel hjh
groupdel: cannot remove the primary group of user ‘hjh’
//只有删除用户或者变更用户的基本组才能删除

`
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
使用gpasswd设置组密码
[root@hjh ~]# groupadd a
[root@hjh ~]# gpasswd a
Changing the password for group a
New Password:
Re-enter new password:
[root@hjh ~]# tail -1 /etc/gshadow
a:$6 6 N R 9 k 9 s K c B l R D g J j 6NR9k9sKcBlRDgJj 6NR9k9sKcBlRDgJjd0j85YhERimxjVaQmZpiqMWxQOYhHV.54S.vuFPB/8VvDfQCxTdpDU1rJ50q//TjSJOxgKIyHKznGaVvFLR/o/::
1
2
3
4
5
6
7
使用newgrp命令切换基本组身份
在这里插入图片描述

在这里插入图片描述

  1. 切换身份
    在Linux中普通用户因为受权限限制,无法操作一些东西,所有需要用到i临时切换到root的权限来做一些事情,先了解用户的工作环境,

Shell 分类

交互式shell 等待用户输入执行提交的脚本(终端命令),exit 退出
非交互式shell 执行Shell脚本,脚本执行结束Shell自动退出

注意:做shell脚本时应遵循下面的规则

  1. 把交互命令换成同等非交互命令
  2. 提前做好应答文件

登陆shell 需要输入用户名和密码才能进入shell, su - hjh
非登陆shell 不需要输入用户名和密码就能进入,比如执行,sh,bash

1
2
3
4
5
6
7
8
9
10
11
12
//查看登陆shell
[hjh@hjh ~]$ pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
├─VGAuthService
├─agetty
├─auditd───{auditd}
├─chronyd
├─crond
├─dbus-daemon
├─lvmetad
├─master─┬─pickup
│ └─qmgr
├─polkitd───5*[{polkitd}]
├─rsyslogd───2*[{rsyslogd}]
├─sshd───sshd───bash───su───bash───pstree
├─systemd-journal
├─systemd-logind
├─systemd-udevd
├─tuned───4*[{tuned}]
└─vmtoolsd───{vmtoolsd}

重点
临时变量设置

[root@hjh ~]# echo $PS1
[\u@\h \W]$
[root@hjh ~]# export PS1=’[1232312]#’
[1232312]33
[1232312]33
[1232312]33export PS1=’[1232312]#’
[1232312]#
1
2
3
4
5
6
7
永久设置需要修改配置文件
Bash的配置文件保存用户的工作环境

个人配置文件: ~/.bash_profile ~/.bashrc
全局配置文件: /etc/profile /etc/profile.d/*.sh /etc/bashrc

profile类的文件,设定环境变量,登陆前运行的脚本和命令
bashrc 类文件, 设定本地变脸,定义命令别名

全局配置和个人配置设置冲突,以个人配置为主

shell配置文件应用顺序
//登陆式shell配置文件执行顺序
/etc/profile -> /etc/profile.d/*.sh -> ~/.bash_profile -> ~/.bashrc -> /etc/bashrc

//非登录式shell文件执行顺序
~/.bashrc -> /etc/bashrc ->/etc/profile.d/*.sh

注意:最好是只用~/.bashrc -> /etc/bashrc ->/etc/profile.d/*.sh 这三个文件。

//验证方式
在这里插入图片描述
验证的时候要注意验证语句要最好是放在第二行开始,因为这些配置文件是有关联的,每执行一个完一个文件在末尾的代码会引渡到另一个文件中 比如:
在这里插入图片描述
如上述执行完./bashrc 就会去去去读取/etc/bashrc文件 ,如果你要执行的命令放在最后,就会先去读取/etc/bashrc,这样结果机会乱的一批,很难受了。

Linux文件里专门放当前系统的语言环境的文件 (centos 7 )
若想永久的更改当前的语言环境,只需要更改下面的配置文件

[root@hjh ~]#cat /etc/locale.conf
LANG="en_US.UT
1
2
若只是临时生效,更改内存中的环境变量即可:

[root@hjh ~]#echo $LANG
en_US.UTF-8
[root@hjh ~]#LANG=zh_CN.UTF-8
[root@hjh ~]#echo $LANG
zh_CN.UTF-8
[root@hjh ~]#cat /etc/locale.conf
LANG=“en_US.UTF-8”

1
2
3
4
5
6
7
8
切换用户
su [-] username
su username 不会切换当前的环境(意思就是当前于做了提权操作,当前的环境并没有改变,也就是说根本不会读取那些配置文件)
su - username 真是完全切换.

[root@hjh ~]# su - hjh
Last login: Fri Nov 8 21:12:38 CST 2019 from 10.0.0.1 on pts/1
Last failed login: Fri Nov 8 21:13:37 CST 2019 from 10.0.0.1 on ssh:notty
There were 2 failed login attempts since the last successful login.
hello profile
[hjh@hjh ~]$ exit
logout
[root@hjh ~]# su hjh
[hjh@hjh root]$
1
2
3
4
5
6
7
8
9
root 用户切换到普通用户是不需要密码的,
su - 不加username 默认切换到root用户

可以用某个用户的身份去执行某个进程, su - username -c ‘命令’
[root@hjh tmp]# su - hjh -c ‘touch /tmp/hjh’
hello profile
[root@hjh tmp]# touch hjh1
[root@hjh tmp]# ll
total 12
-rw-rw-r-- 1 hjh hjh 0 Nov 10 13:37 hjh
-rw-r–r-- 1 root root 0 Nov 10 13:37 hjh1
1
2
3
4
5
6
7
7.sudo提权
su 切换是要管理员密码的,很不安全,所以才有了sudo提权,sudo执行了一个管理员才能执行的命令,输入的密码是自己的密码。
默认只有root才能使用sudo命令,普通用户需要管理员预先设置,使用visudo命令去编辑相关的配置文件/etc/sudoers

授权用户具有管理员的所有权限。
[root@hjh tmp]# usermod -G wheel hjh //直接将用户加入到wheel组中
[root@hjh tmp]# grep wheel /etc/group
wheel❌10:hjh
1
2
3
查看一下wheel 在sudo中的权限

[root@hjh tmp]# grep wheel /etc/sudoers

Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

%wheel ALL=(ALL) NOPASSWD: ALL

1
2
3
4
在这里插入图片描述

解释一下%wheel那一行的意思 (%代表组)
%wheel(wheel组) ALL(在任何主机)=(ALL(用任何人的身份)) ALL(使用任何命令)

可使用sudo -l 命令来查看当前用户被授予的权限
[hjh@hjh ~]$ sudo -l

We trust you have received the usual lecture from the local System //这是小提示,权力太大不可滥用。
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for hjh: //这里提示你要输入当前用户的密码,下面的我也看不懂,哈哈。
Matching Defaults entries for hjh on hjh:
!visiblepw, always_set_home, match_group_by_gid, env_reset, env_keep=“COLORS DISPLAY HOSTNAME
HISTSIZE KDEDIR LS_COLORS”, env_keep+=“MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”,
env_keep+=“LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES”, env_keep+=“LC_MONETARY
LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”, env_keep+=“LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET
XAUTHORITY”, secure_path=/sbin:/bin:/usr/sbin:/usr/bin

User hjh may run the following commands on hjh:
(ALL) ALL //主要就是这句 ,意思就是 用户hjh可以在hjh主机下以任何人的身份使用任何命令。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
sudo -u 可以指定以那个用户的身份去做执行那些命令 ,类似 su - u。

我们来使用visudo命令来给用户hjh 增加可以修改任何用户属性以及密码,但是不能包括root。

93 hjh ALL=(ALL) /usr/sbin/user*,/usr/bin/passwd,!/sbin/usermod * root,!/bin/passwd * ro
ot,!/bin/passwd root
1
2
然后用visudo -c 来验证语法格式是否有问题
[root@hjh ~]# visudo -c
/etc/sudoers: parsed OK //表示语法正确

案例:

如何sudo免密执行权限(意思在提权是不用输入自己的密码)
[root@hjh ~]# grep wheel /etc/sudoers

Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

%wheel ALL=(ALL) NOPASSWD: ALL

1
2
3
4
5
只需要在权限权前面加个NOPASSWD:(不过不建议这样做,防人之心不可无)

还可以配置(命令和用户)别名 在 /etc/sudoers中 让操作更加简便,比如上面的案例

User_Alias USER = hjh
94 Cmnd_Alias CMD = /usr/sbin/user*,/usr/bin/passwd,!/sbin/usermod * root,!/bin/passwd * ro
95 ot,!/bin/passwd roor
96 USER ALL=(ALL) CMD

1
2
3
4
5
这样就极大方便了我们做大量用户和组的操作,舒服。

sudo 日志审计 ✳ ✳ ✳✳ ✳
通过sudo和syslog配合实现对所有用户进行权限的日志审计并将记录日志集中管理。
sudo日志审计,专门针对sudo命令的系统用户记录其执行命令相关信息,所谓sudo命令日志审计,并不记录普通用户的操作,而是记录sudo命令用户的操作。

安装 sudo、rsysylog
[root@hjh ~]# yum install -y sudo rsyslog

//检查是否安装成功
[root@hjh ~]# rpm -qa rsyslog sudo
sudo-1.8.23-4.el7_7.1.x86_64
rsyslog-8.24.0-41.el7_7.2.x86_64

配置/etc/sudoers记录日志路径
echo “Defaults logfile=/var/log/sudo.log” >>/etc/sudoers

//查看追加的信息
[root@hjh ~]# tail -1 /etc/sudoers
Defaults logfile=/var/log/sudo.log

用hjh用户sudo删除A用户
[hjh@hjh ~]$ sudo userdel -r a
[sudo] password for hjh:
Sorry, try again.
[sudo] password for hjh:

//再次查看配置文件
[root@hjh ~]# tail -f /var/log/sudo.log
Nov 10 19:03:55 : hjh : TTY=pts/0 ; PWD=/home/hjh ; USER=root ;
COMMAND=/sbin/userdel -r oldboy

了解:
``/var/log/message 公共日志

[root@hjh ~]# tail /var/log/messages
//时间 //主机 //进程 //做了什么事情
Nov 10 18:43:12 hjh systemd: Started Session 9 of user root.
Nov 10 18:43:12 hjh systemd-logind: New session 9 of user root.
Nov 10 18:43:12 hjh systemd: Starting Session 9 of user root.

1
2
3
4
5
6
7
/var/log/secure 安全日志
Nov 10 18:43:12 hjh sshd[1689]: Accepted password for root from 10.0.0.1 port 54576 ssh2
Nov 10 18:43:12 hjh sshd[1689]: pam_unix(sshd:session): session opened for user root by (uid=0)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值