容器学习Day05-Ubuntu常用命令(三)

系列文章目录

容器学习Day01-初识容器

容器学习Day02-VMware Workstation安装Ubuntu

容器学习Day03-Ubuntu常用命令(一)

容器学习Day04-Ubuntu常用命令(二)

容器学习Day05-Ubuntu常用命令(三)

容器学习Day06-Ubuntu常用命令(四)

容器学习Day07-Docker基础(一)

容器学习Day08-Docker基础(二)

容器学习Day09-理解容器镜像

容器学习Day10-搭建私有镜像仓库

容器学习Day11-docker commit构建容器镜像

容器学习Day12-使用Dockerfile构建容器镜像

容器学习Day13-Docker容器网络

容器学习Day14-Docker容器存储

容器学习Day15-Docker容器底层实现技术

容器学习Day16-Docker Compose容器编排


文章目录

前言

一、用户管理相关命令

1、groupadd&groupdel&groupmod

2、useradd&userdel&usermod

3、用户管理相关的三个文件

二、文件权限管理相关命令

1、chmod

2、chown

3、setfacl&getfacl

总结

前言

        本次继续熟悉了解Ubuntu操作系统的常用命令。


一、用户管理相关命令

        Linux用户分为管理员用户、系统用户和普通用户。系统默认的管理员用户就是root,他的UID(用户ID)为0,系统用户的UID为1~999,系统安装时预设的一些低权限账户,用于系统服务的运行,普通用户的UID从1000开始,是管理员创建的用于日常工作的用户。

       为了方便管理属于同一组的用户,Linux系统中还引入了用户组的概念。通过使用用户组号码(GID,Group IDentification),可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务。

1、groupadd&groupdel&groupmod

  • groupadd(创建群组)
  • groupdel(删除群组)
  • groupmod(修改群组属性)

用法:groupadd 群组名,创建一个群组。

           groupadd -g GID 群组名,创建一个群组,并指定群组ID。

           groupdel 群组名,删除一个群组。

           groupmod -g GID 群组名,修改一个群组的ID号。

           groupmod -n 新群组名 原群组名,修改群组名字。

           普通用户使用命令需加上sudo。

###不指定GID创建群组group1,前面的一个群组ID为1000,ID默认顺延。
demo@docker:~$ sudo groupadd group1
demo@docker:~$ cat /etc/group | grep group1
group1:x:1001:
###指定GID创建群组group2,GID为1500。
demo@docker:~$ sudo groupadd -g 1500 group2
demo@docker:~$ cat /etc/group | grep group2
group2:x:1500:
###继续不指定GID创建群组group3,group3的GID顺延group2,GID为1501。
demo@docker:~$ sudo groupadd group3
demo@docker:~$ cat /etc/group | grep group3
group3:x:1501:

###删除group2,查看群组返回空,已被删掉。
demo@docker:~$ sudo groupdel group2
demo@docker:~$ cat /etc/group | grep group2
demo@docker:~$ 

###修改group3的GID为1002。
demo@docker:~$ cat /etc/group | grep group3
group3:x:1501:
demo@docker:~$ sudo groupmod -g 1002 group3
[sudo] password for demo: 
demo@docker:~$ cat /etc/group | grep group3
group3:x:1002:

###修改group3群组名为group4。
demo@docker:~$ cat /etc/group | grep group3
group3:x:1002:
demo@docker:~$ sudo groupmod -n group4 group3
demo@docker:~$ cat /etc/group | grep group3
demo@docker:~$ cat /etc/group | grep group4
group4:x:1002:

 2、useradd&userdel&usermod

  • useradd

用法:useradd 用户名,创建用户,默认自动创建与该用户账号同名的群组。RedHat系的操作系统默认会创建用户主目录,Ubuntu默认不会创建。

          useradd -d 目录名 -m 用户名,指定用户主目录位置。如果指定的目录不存在,可以使用-m选项创建主目录。

          useradd -g 群组名 用户名,指定用户所属的群组。

          useradd -G 群组名 用户名,指定用户附加群组。

          useradd -u UID 用户名,指定用户的ID。

          useradd -s shell 用户名,常见的shell:/bin/bash、/bin/sh、/sbin/nologin。

          id 用户名,可以查看用户UID和GID的信息。

          创建用户后,可以通过passwd命令设置用户密码。

          普通用户使用命令需加上sudo。

###不加参数,默认创建用户及相关内容。
demo@docker:~$ sudo useradd user1
demo@docker:~$ id user1
uid=1001(user1) gid=1003(user1) groups=1003(user1)
demo@docker:~$ ls -l /home/
total 4
drwxr-x--- 5 demo demo 4096 Sep 10 10:50 demo

###加-d参数,指定用户主目录,-m创建用户主目录。
demo@docker:~$ sudo useradd -d  /home/user3 -m user3
demo@docker:~$ ls -l /home/
total 8
drwxr-x--- 5 demo  demo  4096 Sep 10 10:50 demo
drwxr-x--- 2 user3 user3 4096 Sep 11 12:36 user3

###-g和-G参数指定用户的主组和附加组
demo@docker:~$ sudo useradd -g group1 -G group4 user4
demo@docker:~$ id user4
uid=1004(user4) gid=1001(group1) groups=1001(group1),1002(group4)

###创建用户使用-u指定UID,并设置shell为/sbin/nologin。
demo@docker:~$ sudo useradd -u 1050 -s /sbin/nologin user5
demo@docker:~$ id user5
uid=1050(user5) gid=1050(user5) groups=1050(user5)
  • userdel

用法:userdel 用户名,删除用户。

           userdel -r 用户名,删除用户及用户主目录。

           普通用户使用命令需加上sudo。

demo@docker:~$ sudo userdel -r user3
  • usermod

 用法:usermod -l 新用户名 原用户名,修改用户名为新用户名。

           usermod -L 用户名,锁定用户。

           usermod -U 用户名,解锁用户。

           usermod -u UID 用户名,修改用户的用户ID。

           usermod -g 群组名 用户名,修改用户的主群组。

           usermod -G 群组名 用户名,修改用户的附加群组。

           usermod -s shell 用户名,修改用户的登录shell。

           普通用户使用命令需加上sudo。

###修改user1为user6。
demo@docker:~$ sudo usermod -l user6 user1
demo@docker:~$ id user1
id: ‘user1’: no such user
demo@docker:~$ id user6
uid=1001(user6) gid=1003(user1) groups=1003(user1)

###-L锁定与-U解锁,锁定user6,无法切换到user6登录,解锁用户后恢复。
demo@docker:~$ sudo usermod -L user6
demo@docker:~$ su - user6
Password: 
su: Authentication failure
demo@docker:~$ sudo usermod -U user6
demo@docker:~$ 
demo@docker:~$ su - user6
Password: 
su: warning: cannot change directory to /home/user1: No such file or directory
$ whoami       
user6

###修改user6的UID为1005。
demo@docker:~$ id user6
uid=1001(user6) gid=1003(user1) groups=1003(user1)
demo@docker:~$ sudo usermod -u 1005 user6
demo@docker:~$ id user6
uid=1005(user6) gid=1003(user1) groups=1003(user1)

###修改用户的主群组和附加群组。
uid=1005(user6) gid=1003(user1) groups=1003(user1)
demo@docker:~$ sudo usermod -g group1 user6
demo@docker:~$ sudo usermod -G group4 user6
demo@docker:~$ id user6
uid=1005(user6) gid=1001(group1) groups=1001(group1),1002(group4)

###修改user5的登录shell。
demo@docker:~$ cat /etc/passwd |grep user5
user5:x:1050:1050::/home/user5:/sbin/nologin
demo@docker:~$ sudo usermod -s /bin/bash user5
demo@docker:~$ cat /etc/passwd |grep user5
user5:x:1050:1050::/home/user5:/bin/bash

 3、用户管理相关的三个文件

  • /etc/passwd

说明:/etc/passwd,用来存放用户信息,每行一条用户信息,每条信息包含7个字段。

          1.用户名。

          2.密码,x代表用户登录必须使用密码,如果为空,则表示登录无需密码,加密后的密码存放在/etc/shadow文件中。

          3.UID,用户ID。

          4.GID,主群组ID。

          5.用户描述信息、备注。

          6.用户家目录。

          7.登录shell。

demo@docker:~$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:104::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
pollinate:x:105:1::/var/cache/pollinate:/bin/false
sshd:x:106:65534::/run/sshd:/usr/sbin/nologin
usbmux:x:107:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
demo:x:1000:1000:demo:/home/demo:/bin/bash
user2:x:1002:1004::/home/user2:/bin/sh
user5:x:1050:1050::/home/user5:/sbin/nologin
user6:x:1005:1001::/home/user1:/bin/sh
  •  /etc/group

说明:/etc/group文件中是所有的组,每行表示一个组,每行有4段信息,中间以冒号分割。

          1.群组名。

          2.组密码,加密后的密码存放在/etc/gshadow文件中。

          3.GID,群组ID号。

          4.组中的用户,如果群组是该用户的主组,则该用户不会记录在里面。

demo@docker:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:demo
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:demo
floppy:x:25:
tape:x:26:
sudo:x:27:demo
audio:x:29:
dip:x:30:demo
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:demo
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-network:x:102:
systemd-resolve:x:103:
messagebus:x:104:
systemd-timesync:x:105:
input:x:106:
sgx:x:107:
kvm:x:108:
render:x:109:
lxd:x:110:demo
_ssh:x:111:
demo:x:1000:
ssl-cert:x:112:
group1:x:1001:
group4:x:1002:user6
user1:x:1003:
user2:x:1004:
user5:x:1050:
  • /etc/shadow

说明:/etc/shadow 文件,用于存放Linux系统中用户的密码信息,使用冒号分隔,每行用户信息被划分为 9 个字段。

          1.用户名。

          2.加密的密码字串信息,*或!表示用户不能登录到系统,若为空,则用户不需要密码即可登录。

          3.上次修改密码时间,表示从1970年1月1日算起到最近一次修改密码时间隔的天数。

          4.密码最短有效天数,本次修改后间隔多长时间可以修改密码,默认是0,不做限制。

          5.密码有效期,默认为99999(天)。

          6.密码警告天数,提前多久发出密码即将过期的警告,默认是7天。

          7.密码过期宽限期,在密码过期之后多少天禁用此用户,默认空表示不做此配置。

          8.账户失效时间,1970 年1月1日以来的总天数作为账户的失效时间,默认空,表示永不失效。

          9.保留字段,暂无用处。

demo@docker:~$ sudo cat /etc/shadow
root:$y$j9T$OMJS.U3UPIboZOe6cW/7y/$78UcPpabK8d9SYo1dzasMDM4Q2.sNaBvxlp6JU1W3W7:19236:0:99999:7:::
daemon:*:19213:0:99999:7:::
bin:*:19213:0:99999:7:::
........

二、文件权限管理相关命令

        Linux系统中每个文件都有归属的所有者和所属组,并且规定了文件的所有者(u)、群组用户(g)以及其他用户(o)对文件所拥有的可读(r)、可写(w)、可执行(x)等权限。

       可读(r):对于文件,允许查看文件内容;对于目录,允许读取目录内的文件列表。

       可写(w):对于文件,允许编辑文件内容;对于目录,允许在目录内创建、改、删文件。

       可执(x):对于文件,允许运行程序或者脚本;对于目录,允许切换到目录内。

       执行ls -l,可以显示文件的详细信息,其中包含文件的权限信息。

demo@docker:~$ ls -l
total 0
-rw-rw-r-- 1 demo demo 0 Sep 12 03:40 1.txt

       命令列出的内容从左到右:

       第1个字符代表的是文件类型,“-”代表一般文件,具体文件类型分类如下:

       b:块设备,是一些提供系统存取数据的接口设备,例如硬盘设备。

       c:字符设备,是一些串行端口的接口设备,如键盘。

       d:目录。

        l:链接。

       s:套接字,用于进程间通信。

       p:命名管道FIFO,用于进程间通信。

       -:一般文件,可分为分文本文件和二进制文件。

       第2到4个字符“rw-”,表示文件的所有者对文件的权限,可读和可写,不可执行。

       第5到7个字符“rw-”,表示文件属组内的用户对文件的权限,可读和可写,不可执行。

       第8到10个字符“r--”,表示其他用户对文件的权限,可读,不可写,不可执行。

       1表示文件链接数为1.

       demo demo,分别代表文件的属主和属组。

       0表示文件的大小,因为是空文件显示0。

       “Sep 12 03:40”表示文件的最后修改时间。

       “1.txt”是文件名字。

        文件权限的字符与数字表示:

权限项执行执行执行
字符提示rwxrwxrwx
数字表示421421421
权限分配文件所有者文件所属组其他用户

1、chmod

  • chmod(授权命令)

用法:chmod 授权对象+权限 文件名,给属主、属组用户、其他用户增加权限。

           chmod 授权对象-权限 文件名,移除属主、属组用户、其他用户的权限。

           chmod 授权对象=权限 文件名,给属主、属组用户、其他用户授予权限。

           授权对象的为u(属主),g(属组用户),o(其他用户),a(所有用户)。

           权限为r(可读),w(可写),x(可执行)。

           也可以根据上表计算出相应数字进行授权,如:

           chmod 755 文件名,第一位数字代表属主的权限,7对应的是rwx;第二位数字代表

属组用户权限,5对应的是r-x;第三位数字代表其他用户的权限。

           使用-R参数递归授权,如:

           chmod -R 644 目录名, 对一个目录及其子目录所有文件添加644的权限。

###查看1.txt权限
demo@docker:~$ ls -l
total 4
-rw-rw-r-- 1 demo demo 74 Sep  7 17:47 1.txt

###给所有者增加执行权限。
demo@docker:~$ sudo chmod u+x 1.txt 
[sudo] password for demo: 
demo@docker:~$ ls -l
total 4
-rwxrw-r-- 1 demo demo 74 Sep  7 17:47 1.txt

###移除属组组内用户的可写权限。
demo@docker:~$ sudo chmod g-w 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr--r-- 1 demo demo 74 Sep  7 17:47 1.txt

###设置其他用户权限为可读、可写,rw。
demo@docker:~$ sudo chmod o=rw 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr--rw- 1 demo demo 74 Sep  7 17:47 1.txt

###所有者移除可执行权限,群组用户增加可写权限,其他用户移除可写权限,中间逗号隔开。
demo@docker:~$ sudo chmod u-x,g+w,o-w 1.txt 
demo@docker:~$ ls -l
total 4
-rw-rw-r-- 1 demo demo 74 Sep  7 17:47 1.txt

###授予所有者可读可写可执行权限,群组用户可读权限,其他用户可读权限。
demo@docker:~$ sudo chmod u=rwx,g=r,o=r 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr--r-- 1 demo demo 74 Sep  7 17:47 1.txt

###授权文件755权限。
demo@docker:~$ sudo chmod 755 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr-xr-x 1 demo demo 74 Sep  7 17:47 1.txt

2、chown

  • chown(修改属主和属组)

用法:chown 用户:群组 文件名,修改文件的所有者和群组。

           chown 用户 文件名,修改文件的所有者。

           chown :群组 文件名,只修改文件的群组。

           chown -R 用户:群组 目录名,加-R参数可递归修改目录下所有文件。

###创建一个用户user7用于授权测试。
demo@docker:~$ sudo useradd user7

###修改1.txt的属主和属组为user7。
demo@docker:~$ ls -l
total 4
-rwxr-xr-x 1 demo demo 74 Sep  7 17:47 1.txt
demo@docker:~$ sudo chown user7:user7 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr-xr-x 1 user7 user7 74 Sep  7 17:47 1.txt

###修改1.txt的所有者为demo。
demo@docker:~$ sudo chown demo 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr-xr-x 1 demo user7 74 Sep  7 17:47 1.txt

###修改1.txt的群组为demo。
demo@docker:~$ sudo chown :demo 1.txt 
demo@docker:~$ ls -l
total 4
-rwxr-xr-x 1 demo demo 74 Sep  7 17:47 1.txt

3、setfacl&getfacl

       setfacl命令用于管理文件的ACL权限规则,使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读、写、执行权限的控制,是在所有者、所属组、其他用户的读、写、执行权限之外的特殊权限控制。

  • setfacl(设置文件访问控制列表)

用法:setfacl  (-R) -m u:用户名:权限 文件名,将文件的读写执行权限授予某用户,-R参数对目录递归授权。

           setfacl (-R)-m g:群组:权限 文件名,将文件的读写执行权限授予某组用户,-R参数对目录递归授权。

           setfacl (-R)-x  u:用户名 文件名,删除某用户的ACL权限。

           setfacl (-R)-x  g:群组 文件名,删除某群组的ACL权限。

           setfacl -b 文件名,移除所有的ACL权限。

###系统最小化安装不包含acl的包,需要先进行安装。
demo@docker:~$ sudo apt search setfacl
Sorting... Done
Full Text Search... Done
acl/jammy 2.3.1-1 amd64
  access control list - utilities

liblinux-acl-perl/jammy 0.05-1build4 amd64
  Perl extension for reading and setting Access Control Lists for files

demo@docker:~$ sudo apt install -y acl/jammy
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Selected version '2.3.1-1' (Ubuntu:22.04/jammy [amd64]) for 'acl'
The following packages were automatically installed and are no longer required:
  logrotate ssl-cert
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
  acl
0 upgraded, 1 newly installed, 0 to remove and 5 not upgraded.
Need to get 38.5 kB of archives.
After this operation, 205 kB of additional disk space will be used.
Get:1 https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/main amd64 acl amd64 2.3.1-1 [38.5 kB]
Fetched 38.5 kB in 0s (91.3 kB/s)
debconf: delaying package configuration, since apt-utils is not installed
Selecting previously unselected package acl.
(Reading database ... 100670 files and directories currently installed.)
Preparing to unpack .../archives/acl_2.3.1-1_amd64.deb ...
Unpacking acl (2.3.1-1) ...
Setting up acl (2.3.1-1) ...
debconf: unable to initialize frontend: Dialog
debconf: (No usable dialog-like program is installed, so the dialog based frontend cannot be used. at /usr/share/perl5/Debconf/FrontEnd/Dialog.pm line 78.)
debconf: falling back to frontend: Readline
Scanning processes...                                                                                                                                                                       
Scanning linux images...                                                                                                                                                                    
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.


###新建user8,进行相关测试。
demo@docker:~$ sudo useradd user8

###创建一个文件2.txt,属主和属组修改为user8,权限设置为700。
demo@docker:~$ touch 2.txt
demo@docker:~$ ls -l
total 4
-rw-rw-r-- 1 demo demo 4 Sep 12 04:04 1.txt
-rw-rw-r-- 1 demo demo 0 Sep 13 02:57 2.txt
demo@docker:~$ sudo chown user8:user8 2.txt
demo@docker:~$ ls -l
total 4
-rw-rw-r-- 1 demo  demo  4 Sep 12 04:04 1.txt
-rw-rw-r-- 1 user8 user8 0 Sep 13 02:57 2.txt
demo@docker:~$ sudo chmod 700 2.txt
demo@docker:~$ ls -l
total 4
-rw-rw-r-- 1 demo  demo  4 Sep 12 04:04 1.txt
-rwx------ 1 user8 user8 0 Sep 13 02:57 2.txt

###使用setfacl对2.txt授权,使demo用户拥有此文件的读写权限。
demo@docker:~$ echo "abc" > 2.txt
-bash: 2.txt: Permission denied
demo@docker:~$ sudo setfacl -m u:demo:rw- 2.txt 
demo@docker:~$ echo "abc" > 2.txt
demo@docker:~$ cat 2.txt 
abc

###移除demo用户的ACL权限,对demo组进行授权,使demo组的用户拥有对文件的读写执行权限。
demo@docker:~$ sudo setfacl -x u:demo 2.txt 
demo@docker:~$ echo "abcd" >> 2.txt
-bash: 2.txt: Permission denied
demo@docker:~$ sudo setfacl -m g:demo:rwx 2.txt 
demo@docker:~$ echo "abcd" >> 2.txt
demo@docker:~$ cat 2.txt 
abc
abcd

###移除所有的ACL权限。
demo@docker:~$ sudo setfacl -b 2.txt 
demo@docker:~$ echo "abcde" >> 2.txt
-bash: 2.txt: Permission denied
  •  getfacl(查看文件的ACL权限)

用法:getfacl 文件名,查看文件的ACL权限。

###给2.txt设置ACL权限并查看。
demo@docker:~$ sudo getfacl 2.txt 
# file: 2.txt
# owner: user8
# group: user8
user::rwx
group::---
other::---

##可以看到demo组有了文件的rwx权限。
demo@docker:~$ sudo setfacl -m g:demo:rwx 2.txt 
demo@docker:~$ sudo getfacl 2.txt 
# file: 2.txt
# owner: user8
# group: user8
user::rwx
group::---
group:demo:rwx
mask::rwx
other::---

总结

       以上就是今天学习了解的内容,下一节主要看一下vi编辑器的使用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AtobeKegio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值