当前位置: 首页 > news >正文

记录一次环境的安装

目录

新添加的代码

代码解释

为啥ubuntu用debian软件源

为啥修改sources.list.d

S权限意思

php缺少和数据库连接的模块

使用root登陆数据库1698错误

字段解释

auth_socket解释

使用root登陆数据库方法

详细解释


首先在安装的时候,有一个dockerfile文件,将dockerfile中的内容拉取下来。

但是报如下错误

经过查询是这个源过期了

新添加的代码

RUN echo https://debian.octopuce.fr/snapshots/sury-php/stretch-latest/ stretch main" > /etc/apt/sources.list.d/php.list

代码解释

https://debian.octopuce.fr/snapshots/sury-php/stretch-latest/ 是一个存储 PHP 软件包的 Debian 软件源地址。

stretch main 是 APT 源的配置格式,其中:
stretch 表示 Debian 发行版的代号,这里指的是 Debian 9 (Stretch)。
main 表示软件库的分组,即主要软件库,包含大部分开发者和用户使用的软件包。

通过执行这行代码,系统会将这个地址添加到 /etc/apt/sources.list.d/php.list 文件中,以后 APT 更新时将会使用这个地址获取与 PHP 相关的软件包更新和信息

为啥ubuntu用debian软件源

Debian 和 Ubuntu 是两个流行的 Linux 发行版
Ubuntu 是基于 Debian 构建的。Ubuntu 最初是从 Debian unstable 分支派生而来的,但现在已经发展成为一个独立的发行版。

Ubuntu 使用 Debian 的 .deb 包格式作为其软件包的基础,同时也继承了 Debian 的 APT包管理系统,包括 apt-get 和 apt 命令。Ubuntu 的软件仓库和 Debian 有一些相似之处, Ubuntu 也有自己的软件包仓库,其中包含了一些特定于 Ubuntu 的软件包。

为啥修改sources.list.d

buntu中的/etc/apt/sources.list.d目录主要用于存放第三方软件的源配置文件。‌

在Ubuntu系统中,‌软件源的配置文件主要位于/etc/apt/sources.list,‌而/etc/apt/sources.list.d目录则是用来存放额外的软件源配置文件,‌这些文件通常具有.list扩展名。‌这些额外的配置文件允许用户在单独的文件中写入源的地址,‌提供了一种灵活的方式来管理软件源,‌特别是对于安装第三方软件时非常有用。‌通过这种方式,‌用户可以方便地添加、‌修改或删除软件源,‌而无需直接编辑主配置文件/etc/apt/sources.list。‌更新软件源时,‌使用命令apt-get update即可使更改生效。‌

S权限意思

+s权限在Linux系统中指的是Set UID(‌Set User ID)‌权限,‌通常简写为SUID。‌当对一个文件设置SUID权限时,‌意味着当该文件被执行时,‌程序将以文件所有者的身份运行,‌而不是以执行该文件的用户的身份运行。‌这个特性在一些需要特定权限执行的程序中非常有用,‌例如,‌当某个程序需要以文件所有者的权限运行时,‌可以通过设置SUID权限来实现。‌例如,‌如果一个文件的所有者是root,‌而普通用户需要运行该文件执行某些只有root权限才能执行的操作时,‌可以通过给该文件设置SUID权限来实现。‌

SUID权限的设置可以增强系统的灵活性,‌允许普通用户执行一些需要特殊权限的任务,‌同时也能提高系统的安全性,‌因为只有当文件所有者确实需要这种权限时才应该设置SUID权限。‌然而,‌SUID权限的不当使用也可能带来安全风险,‌因为如果设置不当,‌可能会导致未经授权的用户获得过多的权限,‌从而对系统造成潜在的安全威胁。‌因此,‌在使用SUID权限时需要谨慎考虑其潜在的安全影响12。‌

php缺少和数据库连接的模块

在访问网站时,返回报500的错误。原因是没有php和数据库连接的模块

有模块了

使用root登陆数据库1698错误

SELECT host,user,authentication_string,plugin FROM mysql.user;

输入上面代码查看对应字段

root是如下字段

字段解释

数据库中的 authentication_string 字段通常用于存储用户账户的加密密码或者认证字符串。具体取决于数据库管理系统的版本和配置,它可能包含以下内容

auth_socket解释

auth_socket 是 MySQL 数据库中一种特殊的认证插件,用于用户身份验证的一部分。它通常用于 Unix 和类 Unix 系统上,特别是在基于 Debian 或 Ubuntu 的系统中。
工作原理:

操作系统用户与数据库用户关联:
在 MySQL 中,存在一个概念是将数据库用户与操作系统用户相关联。当使用 auth_socket 插件时,MySQL 将通过操作系统的身份验证机制来确认用户的身份,而不是直接使用密码来验证。

验证流程:
当一个用户尝试连接到 MySQL 数据库时,MySQL 将检查该用户是否具有操作系统层面上的相关权限。
如果存在相应的操作系统用户,并且其与 MySQL 用户账户名称匹配,并且没有明确设置 MySQL 密码,则允许该用户连接。这意味着,只要操作系统用户存在,并且与 MySQL 用户名称相同,就可以访问数据库,而无需密码验证。

适用情况:
auth_socket 插件适合于特定的安全场景,例如本地服务器或者在使用操作系统用户与数据库用户名称相同且需要访问权限的情况下。
这种方法不需要在 MySQL 中存储密码,从而可以减少密码管理的复杂性和风险。

使用注意事项:

仅限于 Unix/Linux 系统: auth_socket 插件依赖于操作系统的身份验证机制,因此只能在支持的 Unix/Linux 系统上使用。
用户和权限管理: 确保数据库用户的名称与操作系统用户的名称一致,并且理解在使用此插件时如何管理权限和访问控制。

使用root登陆数据库方法

使用如下代码换插件,设置密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';

详细解释

ALTER USER:
这是 MySQL 中用于修改用户账户信息的语句。

'root'@'localhost':
标识了要修改的用户及其连接来源。在这里,'root' 是用户名,'localhost' 表示该用户只能从本地主机连接到 MySQL 数据库。

IDENTIFIED WITH mysql_native_password:
这部分指定了用户密码的身份验证插件。在 MySQL 中,有多种身份验证插件可供选择,如 mysql_native_password、caching_sha2_password 等。mysql_native_password 是 MySQL 的一种原生密码验证插件。

BY 'root':
指定了新的密码。在这里,用户 'root' 的密码将会被设置为 'root'。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 嵌入式Linux系统中LCD屏驱动框架基本实现
  • 【SQL Server】默认端口与自定义端口
  • vulhub:Apache解析漏洞apache_parsing
  • FFmpeg的make install
  • 【反序列化漏洞】serial靶机详解
  • 动态加载第三方库——dlopen
  • HCIP学习作业一 | HCIA复习
  • 在 Magento 2.4.3 中手动下载和安装样本数据
  • WCF 禁止第三方访问,避免泄露元数据信息
  • 【Qt】QMainWindow之菜单栏
  • 【Docker】容器连接
  • 亨廷顿小勇士必看!你的维生素补给站来啦~
  • 使用openpyxl库对Excel条件格式的深度探索
  • 智能巡检企业级域名 SSL 证书
  • java开发设计模式详解
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS实用技巧
  • C学习-枚举(九)
  • Django 博客开发教程 16 - 统计文章阅读量
  • Javascript基础之Array数组API
  • MySQL-事务管理(基础)
  • node学习系列之简单文件上传
  • Vue 动态创建 component
  • Webpack 4x 之路 ( 四 )
  • 测试开发系类之接口自动化测试
  • 关于Flux,Vuex,Redux的思考
  • 前端之Sass/Scss实战笔记
  • 删除表内多余的重复数据
  • 时间复杂度与空间复杂度分析
  • 数据仓库的几种建模方法
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • MPAndroidChart 教程:Y轴 YAxis
  • 国内唯一,阿里云入选全球区块链云服务报告,领先AWS、Google ...
  • ## 1.3.Git命令
  • #FPGA(基础知识)
  • $(selector).each()和$.each()的区别
  • $.ajax()方法详解
  • (¥1011)-(一千零一拾一元整)输出
  • (1)无线电失控保护(二)
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (计算机网络)物理层
  • (面试必看!)锁策略
  • (一)、python程序--模拟电脑鼠走迷宫
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转载)虚函数剖析
  • .describe() python_Python-Win32com-Excel
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET BackgroundWorker
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .net 简单实现MD5