• RHCSA 05 - 管理Selinux


    环境准备

    建一个网站,

    1. [root@799b431e9d3b ~]# dnf install -y httpd setroubleshoot-server
    2. Rocky Linux 8 - AppStream 21 kB/s | 4.8 kB 00:00
    3. Rocky Linux 8 - AppStream 21 MB/s | 8.8 MB 00:00
    4. Rocky Linux 8 - BaseOS 19 kB/s | 4.3 kB 00:00
    5. Rocky Linux 8 - BaseOS 11 MB/s | 3.6 MB 00:00
    6. Rocky Linux 8 - Extras 15 kB/s | 3.5 kB 00:00
    7. Rocky Linux 8 - Extras 38 kB/s | 11 kB 00:00
    8. Last metadata expiration check: 0:00:01 ago on Sat 02 Jul 2022 03:33:56 AM CEST.
    9. Dependencies resolved.
    10. ====================================================================================================================
    11. Package Arch Version Repository Size
    12. ====================================================================================================================
    13. Installing:
    14. httpd x86_64 2.4.37-47.module+el8.6.0+985+b8ff6398.2 appstream 1.4 M
    15. setroubleshoot-server x86_64 3.3.26-3.el8 appstream 388 k
    16. Upgrading:
    17. audit x86_64 3.0.7-2.el8.2 baseos 262 k
    18. audit-libs x86_64 3.0.7-2.el8.2 baseos 122 k
    19. libsemanage x86_64 2.9-8.el8 baseos 167 k
    20. libxml2 x86_64 2.9.7-13.el8_6.1 baseos 695 k
    21. policycoreutils x86_64 2.9-19.el8 baseos 373 k
    22. Installing dependencies:
    23. apr x86_64 1.6.3-12.el8 appstream 128 k
    24. apr-util x86_64 1.6.1-6.el8.1 appstream 104 k
    25. cairo x86_64 1.15.12-6.el8 appstream 718 k
    26. cairo-gobject x86_64 1.15.12-6.el8 appstream 32 k
    27. checkpolicy x86_64 2.9-1.el8 baseos 345 k
    28. dejavu-fonts-common noarch 2.35-7.el8 baseos 73 k
    29. dejavu-sans-fonts noarch 2.35-7.el8 baseos 1.5 M
    30. fontconfig x86_64 2.13.1-4.el8 baseos 273 k
    31. fontpackages-filesystem noarch 1.44-22.el8 baseos 15 k
    32. httpd-filesystem noarch 2.4.37-47.module+el8.6.0+985+b8ff6398.2 appstream 40 k
    33. httpd-tools x86_64 2.4.37-47.module+el8.6.0+985+b8ff6398.2 appstream 107 k
    34. libX11 x86_64 1.6.8-5.el8 appstream 610 k
    35. libX11-common noarch 1.6.8-5.el8 appstream 157 k
    36. libXau x86_64 1.0.9-3.el8 appstream 36 k
    37. libXext x86_64 1.3.4-1.el8 appstream 44 k
    38. libXrender x86_64 0.9.10-7.el8 appstream 32 k
    39. libxcb x86_64 1.13.1-1.el8 appstream 228 k
    40. mailcap noarch 2.1.48-3.el8 baseos 38 k
    41. mod_http2 x86_64 1.15.7-5.module+el8.6.0+823+f143cee1 appstream 153 k
    42. pixman x86_64 0.38.4-2.el8 appstream 256 k
    43. policycoreutils-python-utils noarch 2.9-19.el8 baseos 252 k
    44. python3-audit x86_64 3.0.7-2.el8.2 baseos 86 k
    45. python3-cairo x86_64 1.16.3-6.el8 appstream 89 k
    46. python3-gobject x86_64 3.28.3-2.el8 appstream 25 k
    47. python3-libsemanage x86_64 2.9-8.el8 baseos 127 k
    48. python3-libxml2 x86_64 2.9.7-13.el8_6.1 baseos 236 k
    49. python3-policycoreutils noarch 2.9-19.el8 baseos 2.2 M
    50. python3-pydbus noarch 0.6.0-5.el8 appstream 52 k
    51. python3-setools x86_64 4.3.0-3.el8 baseos 623 k
    52. python3-systemd x86_64 234-8.el8 baseos 80 k
    53. rocky-logos-httpd noarch 85.0-4.el8 baseos 22 k
    54. setroubleshoot-plugins noarch 3.3.14-1.el8 appstream 357 k
    55. Installing weak dependencies:
    56. apr-util-bdb x86_64 1.6.1-6.el8.1 appstream 23 k
    57. apr-util-openssl x86_64 1.6.1-6.el8.1 appstream 26 k
    58. Enabling module streams:
    59. httpd 2.4
    60. Transaction Summary
    61. ====================================================================================================================
    62. Install 36 Packages
    63. Upgrade 5 Packages
    64. Total download size: 12 M
    65. Downloading Packages:
    66. Rocky Linux 8 - AppStream 104% [=======================================-] 11 kB/s | 3.7 kB --:-- ET(1/41): apr-1.6.3-12.el8.x86_64.rpm 2.8 MB/s | 128 kB 00:00
    67. (2/41): apr-util-1.6.1-6.el8.1.x86_64.rpm 1.8 MB/s | 104 kB 00:00
    68. (3/41): apr-util-bdb-1.6.1-6.el8.1.x86_64.rpm 405 kB/s | 23 kB 00:00
    69. (4/41): apr-util-openssl-1.6.1-6.el8.1.x86_64.rpm 4.6 MB/s | 26 kB 00:00
    70. (5/41): cairo-gobject-1.15.12-6.el8.x86_64.rpm 4.4 MB/s | 32 kB 00:00
    71. (6/41): httpd-filesystem-2.4.37-47.module+el8.6.0+985+b8ff6398.2.noarch.rpm 8.0 MB/s | 40 kB 00:00
    72. (7/41): httpd-tools-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64.rpm 12 MB/s | 107 kB 00:00
    73. (8/41): cairo-1.15.12-6.el8.x86_64.rpm 19 MB/s | 718 kB 00:00
    74. (9/41): libX11-common-1.6.8-5.el8.noarch.rpm 21 MB/s | 157 kB 00:00
    75. (10/41): libXau-1.0.9-3.el8.x86_64.rpm 10 MB/s | 36 kB 00:00
    76. (11/41): libXext-1.3.4-1.el8.x86_64.rpm 10 MB/s | 44 kB 00:00
    77. (12/41): libX11-1.6.8-5.el8.x86_64.rpm 18 MB/s | 610 kB 00:00
    78. (13/41): libXrender-0.9.10-7.el8.x86_64.rpm 4.9 MB/s | 32 kB 00:00
    79. (14/41): httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64.rpm 21 MB/s | 1.4 MB 00:00
    80. (15/41): mod_http2-1.15.7-5.module+el8.6.0+823+f143cee1.x86_64.rpm 7.5 MB/s | 153 kB 00:00
    81. (16/41): libxcb-1.13.1-1.el8.x86_64.rpm 8.6 MB/s | 228 kB 00:00
    82. (17/41): python3-cairo-1.16.3-6.el8.x86_64.rpm 15 MB/s | 89 kB 00:00
    83. (18/41): pixman-0.38.4-2.el8.x86_64.rpm 16 MB/s | 256 kB 00:00
    84. (19/41): python3-gobject-3.28.3-2.el8.x86_64.rpm 4.1 MB/s | 25 kB 00:00
    85. (20/41): python3-pydbus-0.6.0-5.el8.noarch.rpm 8.7 MB/s | 52 kB 00:00
    86. (21/41): setroubleshoot-plugins-3.3.14-1.el8.noarch.rpm 23 MB/s | 357 kB 00:00
    87. (22/41): setroubleshoot-server-3.3.26-3.el8.x86_64.rpm 14 MB/s | 388 kB 00:00
    88. (23/41): checkpolicy-2.9-1.el8.x86_64.rpm 12 MB/s | 345 kB 00:00
    89. (24/41): dejavu-fonts-common-2.35-7.el8.noarch.rpm 3.8 MB/s | 73 kB 00:00
    90. (25/41): fontpackages-filesystem-1.44-22.el8.noarch.rpm 4.0 MB/s | 15 kB 00:00
    91. (26/41): mailcap-2.1.48-3.el8.noarch.rpm 8.6 MB/s | 38 kB 00:00
    92. (27/41): fontconfig-2.13.1-4.el8.x86_64.rpm 19 MB/s | 273 kB 00:00
    93. (28/41): python3-audit-3.0.7-2.el8.2.x86_64.rpm 14 MB/s | 86 kB 00:00
    94. (29/41): policycoreutils-python-utils-2.9-19.el8.noarch.rpm 24 MB/s | 252 kB 00:00
    95. (30/41): python3-libsemanage-2.9-8.el8.x86_64.rpm 22 MB/s | 127 kB 00:00
    96. (31/41): python3-libxml2-2.9.7-13.el8_6.1.x86_64.rpm 18 MB/s | 236 kB 00:00
    97. (32/41): dejavu-sans-fonts-2.35-7.el8.noarch.rpm 29 MB/s | 1.5 MB 00:00
    98. (33/41): python3-systemd-234-8.el8.x86_64.rpm 12 MB/s | 80 kB 00:00
    99. (34/41): rocky-logos-httpd-85.0-4.el8.noarch.rpm 5.0 MB/s | 22 kB 00:00
    100. (35/41): audit-3.0.7-2.el8.2.x86_64.rpm 27 MB/s | 262 kB 00:00
    101. (36/41): audit-libs-3.0.7-2.el8.2.x86_64.rpm 21 MB/s | 122 kB 00:00
    102. (37/41): python3-setools-4.3.0-3.el8.x86_64.rpm 14 MB/s | 623 kB 00:00
    103. (38/41): libsemanage-2.9-8.el8.x86_64.rpm 23 MB/s | 167 kB 00:00
    104. (39/41): python3-policycoreutils-2.9-19.el8.noarch.rpm 30 MB/s | 2.2 MB 00:00
    105. (40/41): policycoreutils-2.9-19.el8.x86_64.rpm 15 MB/s | 373 kB 00:00
    106. (41/41): libxml2-2.9.7-13.el8_6.1.x86_64.rpm 14 MB/s | 695 kB 00:00
    107. --------------------------------------------------------------------------------------------------------------------
    108. Total 18 MB/s | 12 MB 00:00
    109. Running transaction check
    110. Transaction check succeeded.
    111. Running transaction test
    112. Transaction test succeeded.
    113. Running transaction
    114. Preparing : 1/1
    115. Running scriptlet: audit-libs-3.0.7-2.el8.2.x86_64 1/1
    116. Upgrading : audit-libs-3.0.7-2.el8.2.x86_64 1/46
    117. Installing : apr-1.6.3-12.el8.x86_64 2/46
    118. Running scriptlet: apr-1.6.3-12.el8.x86_64 2/46
    119. Installing : apr-util-bdb-1.6.1-6.el8.1.x86_64 3/46
    120. Installing : apr-util-openssl-1.6.1-6.el8.1.x86_64 4/46
    121. Installing : apr-util-1.6.1-6.el8.1.x86_64 5/46
    122. Running scriptlet: apr-util-1.6.1-6.el8.1.x86_64 5/46
    123. Installing : python3-audit-3.0.7-2.el8.2.x86_64 6/46
    124. Upgrading : libsemanage-2.9-8.el8.x86_64 7/46
    125. Installing : fontpackages-filesystem-1.44-22.el8.noarch 8/46
    126. Installing : pixman-0.38.4-2.el8.x86_64 9/46
    127. Installing : dejavu-fonts-common-2.35-7.el8.noarch 10/46
    128. Installing : dejavu-sans-fonts-2.35-7.el8.noarch 11/46
    129. Installing : fontconfig-2.13.1-4.el8.x86_64 12/46
    130. Running scriptlet: fontconfig-2.13.1-4.el8.x86_64 12/46
    131. Installing : python3-libsemanage-2.9-8.el8.x86_64 13/46
    132. Upgrading : policycoreutils-2.9-19.el8.x86_64 14/46
    133. Running scriptlet: policycoreutils-2.9-19.el8.x86_64 14/46
    134. Installing : httpd-tools-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 15/46
    135. Upgrading : audit-3.0.7-2.el8.2.x86_64 16/46
    136. Running scriptlet: audit-3.0.7-2.el8.2.x86_64 16/46
    137. Upgrading : libxml2-2.9.7-13.el8_6.1.x86_64 17/46
    138. Installing : python3-libxml2-2.9.7-13.el8_6.1.x86_64 18/46
    139. Installing : rocky-logos-httpd-85.0-4.el8.noarch 19/46
    140. Installing : python3-systemd-234-8.el8.x86_64 20/46
    141. Installing : python3-setools-4.3.0-3.el8.x86_64 21/46
    142. Installing : mailcap-2.1.48-3.el8.noarch 22/46
    143. Installing : checkpolicy-2.9-1.el8.x86_64 23/46
    144. Installing : python3-policycoreutils-2.9-19.el8.noarch 24/46
    145. Installing : policycoreutils-python-utils-2.9-19.el8.noarch 25/46
    146. Installing : python3-pydbus-0.6.0-5.el8.noarch 26/46
    147. Installing : libXau-1.0.9-3.el8.x86_64 27/46
    148. Installing : libxcb-1.13.1-1.el8.x86_64 28/46
    149. Installing : libX11-common-1.6.8-5.el8.noarch 29/46
    150. Installing : libX11-1.6.8-5.el8.x86_64 30/46
    151. Installing : libXext-1.3.4-1.el8.x86_64 31/46
    152. Installing : libXrender-0.9.10-7.el8.x86_64 32/46
    153. Installing : cairo-1.15.12-6.el8.x86_64 33/46
    154. Installing : cairo-gobject-1.15.12-6.el8.x86_64 34/46
    155. Installing : python3-cairo-1.16.3-6.el8.x86_64 35/46
    156. Installing : python3-gobject-3.28.3-2.el8.x86_64 36/46
    157. Installing : setroubleshoot-plugins-3.3.14-1.el8.noarch 37/46
    158. Running scriptlet: setroubleshoot-server-3.3.26-3.el8.x86_64 38/46
    159. Installing : setroubleshoot-server-3.3.26-3.el8.x86_64 38/46
    160. Running scriptlet: setroubleshoot-server-3.3.26-3.el8.x86_64 38/46
    161. Running scriptlet: httpd-filesystem-2.4.37-47.module+el8.6.0+985+b8ff6398.2.noarch 39/46
    162. Installing : httpd-filesystem-2.4.37-47.module+el8.6.0+985+b8ff6398.2.noarch 39/46
    163. Installing : mod_http2-1.15.7-5.module+el8.6.0+823+f143cee1.x86_64 40/46
    164. Installing : httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 41/46
    165. Running scriptlet: httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 41/46
    166. Running scriptlet: policycoreutils-2.9-16.el8.x86_64 42/46
    167. Cleanup : policycoreutils-2.9-16.el8.x86_64 42/46
    168. Running scriptlet: audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64 43/46
    169. Cleanup : audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64 43/46
    170. Running scriptlet: audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64 43/46
    171. Cleanup : libsemanage-2.9-6.el8.x86_64 44/46
    172. Cleanup : audit-libs-3.0-0.17.20191104git1c2f876.el8.1.x86_64 45/46
    173. Cleanup : libxml2-2.9.7-11.el8.x86_64 46/46
    174. Running scriptlet: httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 46/46
    175. Running scriptlet: libxml2-2.9.7-11.el8.x86_64 46/46
    176. Running scriptlet: fontconfig-2.13.1-4.el8.x86_64 46/46
    177. Verifying : apr-1.6.3-12.el8.x86_64 1/46
    178. Verifying : apr-util-1.6.1-6.el8.1.x86_64 2/46
    179. Verifying : apr-util-bdb-1.6.1-6.el8.1.x86_64 3/46
    180. Verifying : apr-util-openssl-1.6.1-6.el8.1.x86_64 4/46
    181. Verifying : cairo-1.15.12-6.el8.x86_64 5/46
    182. Verifying : cairo-gobject-1.15.12-6.el8.x86_64 6/46
    183. Verifying : httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 7/46
    184. Verifying : httpd-filesystem-2.4.37-47.module+el8.6.0+985+b8ff6398.2.noarch 8/46
    185. Verifying : httpd-tools-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64 9/46
    186. Verifying : libX11-1.6.8-5.el8.x86_64 10/46
    187. Verifying : libX11-common-1.6.8-5.el8.noarch 11/46
    188. Verifying : libXau-1.0.9-3.el8.x86_64 12/46
    189. Verifying : libXext-1.3.4-1.el8.x86_64 13/46
    190. Verifying : libXrender-0.9.10-7.el8.x86_64 14/46
    191. Verifying : libxcb-1.13.1-1.el8.x86_64 15/46
    192. Verifying : mod_http2-1.15.7-5.module+el8.6.0+823+f143cee1.x86_64 16/46
    193. Verifying : pixman-0.38.4-2.el8.x86_64 17/46
    194. Verifying : python3-cairo-1.16.3-6.el8.x86_64 18/46
    195. Verifying : python3-gobject-3.28.3-2.el8.x86_64 19/46
    196. Verifying : python3-pydbus-0.6.0-5.el8.noarch 20/46
    197. Verifying : setroubleshoot-plugins-3.3.14-1.el8.noarch 21/46
    198. Verifying : setroubleshoot-server-3.3.26-3.el8.x86_64 22/46
    199. Verifying : checkpolicy-2.9-1.el8.x86_64 23/46
    200. Verifying : dejavu-fonts-common-2.35-7.el8.noarch 24/46
    201. Verifying : dejavu-sans-fonts-2.35-7.el8.noarch 25/46
    202. Verifying : fontconfig-2.13.1-4.el8.x86_64 26/46
    203. Verifying : fontpackages-filesystem-1.44-22.el8.noarch 27/46
    204. Verifying : mailcap-2.1.48-3.el8.noarch 28/46
    205. Verifying : policycoreutils-python-utils-2.9-19.el8.noarch 29/46
    206. Verifying : python3-audit-3.0.7-2.el8.2.x86_64 30/46
    207. Verifying : python3-libsemanage-2.9-8.el8.x86_64 31/46
    208. Verifying : python3-libxml2-2.9.7-13.el8_6.1.x86_64 32/46
    209. Verifying : python3-policycoreutils-2.9-19.el8.noarch 33/46
    210. Verifying : python3-setools-4.3.0-3.el8.x86_64 34/46
    211. Verifying : python3-systemd-234-8.el8.x86_64 35/46
    212. Verifying : rocky-logos-httpd-85.0-4.el8.noarch 36/46
    213. Verifying : audit-3.0.7-2.el8.2.x86_64 37/46
    214. Verifying : audit-3.0-0.17.20191104git1c2f876.el8.1.x86_64 38/46
    215. Verifying : audit-libs-3.0.7-2.el8.2.x86_64 39/46
    216. Verifying : audit-libs-3.0-0.17.20191104git1c2f876.el8.1.x86_64 40/46
    217. Verifying : libsemanage-2.9-8.el8.x86_64 41/46
    218. Verifying : libsemanage-2.9-6.el8.x86_64 42/46
    219. Verifying : libxml2-2.9.7-13.el8_6.1.x86_64 43/46
    220. Verifying : libxml2-2.9.7-11.el8.x86_64 44/46
    221. Verifying : policycoreutils-2.9-19.el8.x86_64 45/46
    222. Verifying : policycoreutils-2.9-16.el8.x86_64 46/46
    223. Upgraded:
    224. audit-3.0.7-2.el8.2.x86_64 audit-libs-3.0.7-2.el8.2.x86_64 libsemanage-2.9-8.el8.x86_64
    225. libxml2-2.9.7-13.el8_6.1.x86_64 policycoreutils-2.9-19.el8.x86_64
    226. Installed:
    227. apr-1.6.3-12.el8.x86_64
    228. apr-util-1.6.1-6.el8.1.x86_64
    229. apr-util-bdb-1.6.1-6.el8.1.x86_64
    230. apr-util-openssl-1.6.1-6.el8.1.x86_64
    231. cairo-1.15.12-6.el8.x86_64
    232. cairo-gobject-1.15.12-6.el8.x86_64
    233. checkpolicy-2.9-1.el8.x86_64
    234. dejavu-fonts-common-2.35-7.el8.noarch
    235. dejavu-sans-fonts-2.35-7.el8.noarch
    236. fontconfig-2.13.1-4.el8.x86_64
    237. fontpackages-filesystem-1.44-22.el8.noarch
    238. httpd-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64
    239. httpd-filesystem-2.4.37-47.module+el8.6.0+985+b8ff6398.2.noarch
    240. httpd-tools-2.4.37-47.module+el8.6.0+985+b8ff6398.2.x86_64
    241. libX11-1.6.8-5.el8.x86_64
    242. libX11-common-1.6.8-5.el8.noarch
    243. libXau-1.0.9-3.el8.x86_64
    244. libXext-1.3.4-1.el8.x86_64
    245. libXrender-0.9.10-7.el8.x86_64
    246. libxcb-1.13.1-1.el8.x86_64
    247. mailcap-2.1.48-3.el8.noarch
    248. mod_http2-1.15.7-5.module+el8.6.0+823+f143cee1.x86_64
    249. pixman-0.38.4-2.el8.x86_64
    250. policycoreutils-python-utils-2.9-19.el8.noarch
    251. python3-audit-3.0.7-2.el8.2.x86_64
    252. python3-cairo-1.16.3-6.el8.x86_64
    253. python3-gobject-3.28.3-2.el8.x86_64
    254. python3-libsemanage-2.9-8.el8.x86_64
    255. python3-libxml2-2.9.7-13.el8_6.1.x86_64
    256. python3-policycoreutils-2.9-19.el8.noarch
    257. python3-pydbus-0.6.0-5.el8.noarch
    258. python3-setools-4.3.0-3.el8.x86_64
    259. python3-systemd-234-8.el8.x86_64
    260. rocky-logos-httpd-85.0-4.el8.noarch
    261. setroubleshoot-plugins-3.3.14-1.el8.noarch
    262. setroubleshoot-server-3.3.26-3.el8.x86_64
    263. Complete!
    264. [root@799b431e9d3b ~]# sed -i 's/DocumentRoot\ "\/var\/www\/html"/DocumentRoot\ "\/web"/' /etc/httpd/conf/httpd.conf[root@799b431e9d3b ~]# mkdir /web
    265. [root@799b431e9d3b ~]# echo welcome to web > /web/index.html
    266. [root@799b431e9d3b ~]# systemctl enable --now httpd
    267. Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
    268. [root@799b431e9d3b ~]#

    访问网站

    提示无权限,

    Why?

     定位

    根据提示是无权限。那么我们运行httpd的账号是否有权限读取/web/index.html文件。下图可见是有权限的,

     当服务器上服务不正常work时,通常是SeLinux导致。我们可以这样测试一下,在httpd所在的服务器,将SeLinux关闭再来访问测试下,

     关掉SeLinux,并将httpd配置文件的Directory目录配置为/web,可以访问了。我们再将SeLinux打开试下,

     查看日志,

     

    $(journalctl | grep sealert | tail -1 | sed -n -e 's/^.*run: //p') | less

     

    修复/web/目录,参考/var/www目录,

    验证:

    生效了!

     

  • 相关阅读:
    [含lw+源码等]基于SSM的宠物店销售系统含前后台[包运行成功]适合计算机毕业设计前端毕设程序设计
    (四)激光线扫描-光平面标定
    路由的hash模式和history模式(适用于3.x版本的vue-router)
    Apollo 应用与源码分析:CyberRT-时间相关API
    redis cook book.notes.
    TypeScript 学习笔记(四):装饰器与高级编程技巧
    OpenGL运行环境的搭建(GLFW+GLAD+OpenGL以及在Vistual Studio中的 配置)
    剑指 Offer II 024. 反转链表
    鸿蒙应用开发:视频播放器,真简单!!!
    Fast-DDS 服务发现简要概述
  • 原文地址:https://blog.csdn.net/thesre/article/details/125569279