Linux 系统与数据库安全 目录 1. 帐号安全 1.1. Shell 安全 1.2. .history 文件 2. 临时文件安全 3. 其他安全问题 4. 防火墙配置 5. 数据库程序安全 5.2. 数据库客户端安全 5.3. mysqldump 安全 5.4. crontab 定时备份脚本于安全 5.5. 数据库归档文件 5.6. Shell 安全 需求:限制用户权限,仅提供一些linux常用命令,用户监控linux系统于网络运行情况,不允许用户ssh登录后随意运行linux命令 用户不能进入到Shell环境 例如普通用户一旦登录 web服务器可以看到web程序中的数据库配置 用户可以了解OS工作状态如内存,cpu,网络等等 例如:ping, tracepath, top, free, netstat 可以查看系统部分日志 例如: 稍加修改即可用于oracle等服务器 DBA 没有系统SSH帐号,只有数据库帐号 系统管理员只能有SSH系统帐号,没有数据库帐号 DBA 可备份数据库,还原数据库指定的备份文件,但是接触不到备份文件 DBA
与静态库不同,它们支持运行时加载,能有效减少内存占用。例如Linux系统的标准C库就是/lib/x86_64-linux-gnu/libc.so.6。 具体工作流程如下: 程序启动时,操作系统首先加载程序的可执行文件到内存 动态链接器(ld-linux.so)读取程序的动态段(.dynamic section),获取需要加载的共享库列表 操作系统为每个共享库分配地址空间 ,节省内存 库的更新不需要重新编译主程序 通过延迟绑定技术提高程序启动速度 地址随机化提高了系统安全性 现代操作系统如Linux、Windows和macOS都广泛采用这种动态链接机制,它是支撑现代软件生态的基础技术之一 将main的返回值作为进程退出状态返回给操作系统 动态链接器详解 主要功能 动态链接器(如Linux上的ld-linux.so)是程序运行时加载的核心组件,负责: 解析程序中的动态库依赖(DT_NEEDED : 操作系统加载器负责将动态库映射到进程地址空间 加载时根据实际加载地址调整所有相对地址 在Windows中称为"重定位",在Linux中称为"位置无关代码"(PIC) 平坦内存模型: 现代操作系统都采用平坦内存模型
前言: 上文我们讲到了文件系统【Linux系统】详解Ext2,文件系统-CSDN博客 本文我们来讲讲动静态库的制作 库 【Linux】编译器gcc/g++及其库的详细介绍 补充: 库也是要被安装到系统中的!!! 我们正常使用库,是不可能像上面一样麻烦的! 只需要将头文件、库拷贝至系统文件下的默认路径,以后调用就只需要指明库名字即可。 ) 因为,我们只告诉了编译器gcc这些信息,但是并没有告诉操作系统! 解决方法: 1.将我们写的库直接拷贝到操作系统中 2.建立软连接:在操作系统中新建一个同名库,并将其与我们自己的库建立软连接 3.创建/修改环境变量:LD_LIBRARY_PATH
Linux 系统与数据库安全 目录 1. 帐号安全 1.1. Shell 安全 1.2. .history 文件 2. 临时文件安全 3. 其他安全问题 4. 防火墙配置 5. 数据库程序安全 5.2. 数据库客户端安全 5.3. mysqldump 安全 5.4. crontab 定时备份脚本于安全 5.5. 数据库归档文件 5.6. Shell 安全 需求:限制用户权限,仅提供一些linux常用命令,用户监控linux系统于网络运行情况,不允许用户ssh登录后随意运行linux命令 用户不能进入到Shell环境 例如普通用户一旦登录 web服务器可以看到web程序中的数据库配置 用户可以了解OS工作状态如内存,cpu,网络等等 例如:ping, tracepath, top, free, netstat 可以查看系统部分日志 例如: 稍加修改即可用于oracle等服务器 DBA 没有系统SSH帐号,只有数据库帐号 系统管理员只能有SSH系统帐号,没有数据库帐号 DBA 可备份数据库,还原数据库指定的备份文件,但是接触不到备份文件 DBA
Linux系统下如何新建一个MySQL数据库?本篇文章将为大家演示一下Linux系统新建MySQL数据库的具体方法, 下面一起来看一下Linux系统新建MySQL数据库具体步骤。 //注意别漏了“;”分号哦 这下就新建了一个数据库 mynewdatabase 我们来查看一下: show databases; 在列表中可以找到自己刚刚创建的名为mynewdatabase的数据库 如果要删除数据库可以用命令: drop database mynewdatabase; //删除名为mynewdatabase的数据库 总结一下: //创建数据库 create database [database name]; //查看数据库 show databases; //删除数据库 drop database [database name]; 至此关于Linux系统创建MySQL 数据库的教程分享结束。
数据库程序安全 5.2. 数据库客户端安全 5.3. mysqldump 安全 5.4. crontab 定时备份脚本于安全 5.5. 数据库归档文件 5.6. 开发与测试环境的数据库安全问题 5.7. 与数据库有关的服务器安全问题 1. 帐号安全 帐号权限安全 1.1. Shell 安全 需求:限制用户权限,仅提供一些linux常用命令,用户监控linux系统于网络运行情况,不允许用户ssh登录后随意运行linux命令 用户不能进入到Shell环境 例如普通用户一旦登录 web服务器可以看到web程序中的数据库配置 用户可以了解OS工作状态如内存,cpu,网络等等 例如:ping, tracepath, top, free, netstat 可以查看系统部分日志 例如: 稍加修改即可用于oracle等服务器 DBA 没有系统SSH帐号,只有数据库帐号 系统管理员只能有SSH系统帐号,没有数据库帐号 DBA 可备份数据库,还原数据库指定的备份文件,但是接触不到备份文件 DBA
一个项目的基础便是数据库,但是可能因为某些原因会导致数据丢失,或数据库结构变化,严重一点的或造成数据库删除。 为了以防万一,这时候就需要我们定时进行数据库备份,但是如果人来操作的话会是一个比较麻烦的工程,这时我们可以使用mysqldump写个脚本,由Linux的crontab来定时执行。 假如在我的数据库中有一个emp的数据库。 1.在linux系统中自定义一个文件夹,在我的服务器上我放在了/zhb/backup 2.在/zhb/backup下面建一个bkemp.sh的脚本文件 3.使用vi命令 vi . [在这里插入图片描述]大功告成,当然我们实际应用中不需要每分钟进行数据库的备份,具体的crontab表达式可根据实际进行编写。
@TOC一、PostgreSQL介绍1.PostgreSQL简介PostgreSQL (也叫 Postgres) 是一个自由的对象 - 关系数据库服务器 (数据库管理系统),它在灵活的 BSD - 风格许可证下发行 它提供了相对其他开放源代码数据库系统 (比如 MySQL 和 Firebird),和对专有系统比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server 的一种选择 2.PostgreSQL特点它是ORDBMS(面向对象的关系数据库管理系统)。 外键引用完整性用户自定义的类型表的继承性视图、规则、子查询多版本并发控制(MVCC)复杂的锁定机制异步复制流式复制(从9.0开始)嵌套事务(保存点)二、本次实践介绍1.本次实践介绍从小白视角,以最快速度在LInux 系统上部署一个简单的PostgreSQL数据库。
一、首先查询系统是否安装了MySQL rpm -qa | grep -i mysql 输出结果表示,我安装的MySQL Server,Client都是5.6.44的,因为我系统支持的版本是要5.7+ by (installed) postfix-2:2.10.1-7.el7.x86_64 解决方法就是在 rpm -ev 加上--nodeps: --nodeps就是安装时不检查依赖关系 五、删除系统中
一、MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品。 MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一 MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。 三、配置Spark 为了让Spark能够顺利连接MySQL数据库,还需要MySQL数据库驱动程序。可以上网查找下载MySQL的JDBC驱动程序。 四、基本使用方法 1、在Linux中启动MySQL数据库 [root@bigdata zhc]# systemctl start mysqld.service [root@bigdata zhc]# mysql
COMMIT :wq保存退出 3、下载安装Mongodb cd进入/usr/local/src cd /usr/local/src wget下载 wget https://fastdl.mongodb.org/linux /mongodb-linux-x86_64-2.6.0.tgz tar解压 tar zxvf mongodb-linux-x86_64-2.6.0.tgz 将解压文件移动到安装目录 mv mongodb-linux-x86 logpath=/usr/local/mongodb/logs/mongodb.log --logappend& 检查 netstat -lanp | grep "27017" 进入mongodb数据库控制台 使配置文件立即生效 source /etc/profile 然后就可以全局使用mongodb命令了 进入mongodb控制台 mongo #进入MongoDB控制台 show dbs #查看默认数据库 use admin #切换到admin数据库 exit #退出MongoDB控制台
教你Linux系统命令迁移MySQL数据库为了迁移数据库,有如下三个步骤: 第一步 - 执行MySQL转储 在将数据库文件传输到新的VPS之前,我们首先需要使用mysqldump命令在原始虚拟服务器上备份它 mysqldump -u root -p --opt [database name] > [database name].sql 执行转储后,即可准备传输数据库。 第二步 - 复制数据库 SCP帮助您复制数据库。 如果使用上一个命令,则将数据库导出到主文件夹。 [username]@[servername]:path/to/database/ 样本传输可能如下所示: scp newdatabase.sql user@example.com:~/ 连接后,数据库将传输到新的虚拟专用服务器 第三步:导入数据库 一旦数据已传输到新服务器,您可以将数据库导入MySQL: mysql -u root -p newdatabase With that, your transfer via SCP
目录 排查用户相关的信息 排查进程端口相关的信息 查找恶意程序并杀掉 斩草除根 判断入侵方式,修复漏洞 当我们被告知一台Linux服务器被黑客入侵,黑客利用该服务器进行挖矿 w #显示已经登陆系统的用户列表,并显示用户正在执行的指令 users #显示当前登录系统的所有用户的用户列表 last #查看最近登录成功的用户及信息 当使用下面命令查找恶意进程的可执行程序时,发现恶意进程的可执行程序被删了,可知该木马是个无文件内存木马 ls -l /proc/18176/exe 查看该进程打开的文件,有时候,恶意程序会打开一些隐藏的字典库, #查看爆破用户名字典 总的来说,黑客入侵主机有下列几种情况: 通过 redis 未授权漏洞入侵(好多挖矿程序是通过这个) ssh 弱口令暴力破解 Web 程序漏洞入侵 参考文章: 记一次Linux 木马清除过程 相关文章:Redis未授权访问漏洞 Linux挖矿病毒的清除与分析 Linux下性能监控、守护进程与计划任务管理 来源:
1.redis解释Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库, 2.丰富的数据类型3.redis使用场景1.缓存——热数据2.分布式锁与单线程机制3.队列4.排行榜二、检查系统版本1.检查系统版本[root@server ~]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS updates/7/x86_64 CentOS-7 - Updates - mirror enabled: 4,300四、查看系统默认提供的redis版本[root multi-user.target.wants/redis.service to /usr/lib/systemd/system/redis.service.六、连接redis测试本地连接redis,查看redis数据库详细信息
在Linux系统中,我们可以通过指令readelf来查看ELF格式文件的这几个部分的内容。 动态库 动态链接,简单来说就是将可执行程序和库产生关联,然后在程序运行时再加载动态库; 这也是我们在动态链接我们自己的库,生成可执行,在运行时还需要让系统找到我们的库的原因。 动态链接器:负责在程序运行时加载动态库 可以看到这里程序都依赖ld-linux-x86-64.so.2这一个库。 也就是动态链接器库 在程序启动时,动态链接器就会解析程序中的动态库依赖,并将这些库加载到内存中; Linux系统通过环境变量(LD_LIBRARY_PATH)/配置文件(etc/ld.so.conf)来指定动态库的搜索路径 缓存文件: 为了提高动态库的加载效率,Linux系统会维护一个/etc/ld.so.cache的缓冲文件; 该文件保存了系统中所有已知动态库的路径和相关信息,动态链接器在加载动态库时会优先搜索这个缓冲文件
Linux系统MySQL数据库主从同步实战过程 安装环境说明 系统环境: [root@~]# cat /etc/redhat-release CentOS release 6.5 (Final) [root @~]# uname -r 2.6.32-431.el6.x86_64 数据库: 由于是模拟环境,主从库在同一台服务器上,服务器IP地址192.168.1.7 主库使用3306端口 从库使用3307端口 mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.51-linux2.6-x86_64.tar.gz 创建数据目录、软件安装目录 [root@~]#mkdir /data {3306,3307} -p [root@~]#mkdri /application 解压软件 [root@~]#tar zxf mysql-5.5.51-linux2.6-x86_64.tar.gz [root@~]#mv mysql-5.5.51-linux2.6-x86_64 /application/mysql-5.5.51 [root@~]#ln -s /application/mysql-
1.配置安全组,设置只用本地访问连接服务器和数据库。(这是云服务器中安全组的设置) image.png (这是轻量服务器安全组的设置位置) image.png 2.登录MySQL数据库。 image.png 3.设置数据库的root用户可以被外界IP访问连接。 host = '本地ip地址'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '设置通过Navicat软件中的ssh登录数据库的密码 '; image.png image.png image.png 4.使用Navicat软件通过直连数据库验证数据库是否能登录。 密码是自行设置登录数据库的密码 image.png image.png 5.使用Navicat软件中的SSH连接服务器,通过连接服务器再进入到数据库中,测试是否可以连接。
一、Redis数据库介绍1.Redis简介Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 二、检查本地系统版本[root@node data]# cat /etc/os-release NAME="CentOS Linux"VERSION="7 (Core)"ID="centos"ID_LIKE ="rhel fedora"VERSION_ID="7"PRETTY_NAME="CentOS Linux 7 (Core)"ANSI_COLOR="0;31"CPE_NAME="cpe:/o:centos redis-server /usr/local/redis/etc/redis.conf七、连接redis数据库1.检查redis状态[root@node src]# ps -ef |grep redisroot 6.2.6redis_git_sha1:00000000redis_git_dirty:0redis_build_id:50e1147e6629be9bredis_mode:standaloneos:Linux
库呢又分为静态库和动态库,在Linux中静态库文件后缀.a,动态库文件后缀.so;在Windows中静态库文件后缀.lib,动态库文件后缀.dll。 这是因为我们gcc编译是-L选项指明libmyc的路径,这是告诉gcc我们要链接的库在哪,但是系统并不知道我们的库在哪里; 因为这里是动态链接,在可执行程序执行时,系统就会去找库libmyc.so,就会发现系统找不到这个库 因为我们C语言标准库在系统的指定目录下,可执行程序在运行时,系统会在指定路径下去寻找,所以C语言标准库就可以被系统找到。 1. 在系统指定文件中建立软链接 这里我们库比较小,如果我们的库比较大,拷贝到系统指定路径下很不现实; 所以我们就可以在系统指定路径下建立同名软链接。 3. 更改环境变量LD_LIBRARY_PATH 上面两种方法,都是将我们的库放入(拷贝/软链接)系统指定文件中; 我们还可以通过修改环境变量LD_LIBRARY_PATH,让我们的库能够被系统找到 这里,博主自己的系统配置过
前言: 我们上一篇文章已经讲完了文件系统,并把我们之前所学的进程,与文件系统关联了起来。而本节课我们将为大家带来有关于软硬链接与动静态库的有关知识点。 所以我们在linux下可以怎么对文件进行备份呢? 没错,就是进行硬链接就行了。 库有两种: 1、静态库 .a(Linux)、 .lib(windows) 2、动态库 .so(Linux) 、 .dll(windows) 那么,静态库是指的什么呢? 四、动态库 动态库(.so)是什么呢? :动态库(在 Linux 中称为共享库, .so 文件)是程序运行时才加载的库文件。 ldconfig:更新系统的动态库缓存,使新库生效。