——配置邮件服务器 、 数据库服务基础 、 管理表数据——
【配置邮件服务器】
『基础邮件服务』
电子邮件通信
为用户提供电子邮箱存储空间(用户名@邮件域名)
处理用户发出的邮件 —— 传递给收件服务器
处理用户收到的邮件 —— 投递到邮箱
协议
SMTP 端口号 25
pop3 端口号 110
IMAP 端口号 143
快速部署postfix邮件服务器
1.装包postfix
yum -y install postfix
2.修改配置文件
--默认标准配置只为本机收发件
vim/etc/postfix/main.cf
--->
inet_interfaces = all 监听接口
mydomain = example.com 邮件域
myhostname = example.com 本服务器主机名
3.启动postfix服务
systemctl restart postfix
netstat -antpu | grep :25 查看监听状态
4.使用mail命令发信/收信
发信
mail -s '邮件标题' 收信人[@收件域]
收信
mail [-u 用户名]
& 1 读取第一封邮件
& q 退出mail工具
echo '123' | mail -s 'mail1' root
mail -u root
『nullclient邮件服务』
postfix空客户端邮件服务
、配置、起服务
serverO:搭建邮件服务(server0.example.com)
1.设置永久的主机名(server0.example.com)/etc/hostname
2.安装postfix软件包
99行 myorigin = server0.example.com #默认补全的发件人域名
116行 inet_interfaces = all #设置监听的网络接口
164行 mydestination = server0.example.com
#收件人的域名后缀,判断为本域邮件
4.重起postfix服务
desktopO:搭建邮件服务(desktop0.example.com)
1.设置永久的主机名(desktop0.example.com)/etc/hostname
2.安装postfix软件包
3.修改配置文件/etc/postfix/main.cf
99行 myorigin = desktop0.example.com #默认补全的发件人域名
116行 inet_interfaces = all #设置监听的网络接口
164行 mydestination = desktop0.example.com
#收件人的域名后缀,判断为本域邮件
4.重起postfix服务
server0:创建yg用户,设置密码123
desktop0:创建xln用户,设置密码123
server0: mail -s 'test01' -r yg xln@desktop0.example.com
desktop0:mail -u xln
########################################################
使用mail命令发信/收信
• mail 发信操作
– mail -s '邮件标题' 收件人 [@收件域]...
• mail 收信操作
– mail [-u 用户名]
#######################################################
nullclient邮件服务
• nullclient,空客户端
– 不提供任何邮箱账号,因此不需要投递邮件
– 但是可以为用户代发邮件
环境准备:还原server、desktop
设置server与desktop防火墙默认区域为trusted
# firewall-cmd --set-default-zone=trusted
#####################################################
一、nullclient,空客户端邮件服务器 ( server0)
1.设置永久的主机名(server0.example.com)/etc/hostname
2. 修改/etc/postfix/main.cf
99 myorigin = desktop0.example.com #发件来源域
116 inet_interfaces = loopback-only #仅本机
164 mydestination = #将投递域设为空
264 mynetworks = [::1]/128, 127.0.0.0/8 #信任网络
316 relayhost = [smtp0.example.com] #目标邮件服务器
4.重起postfix服务
二、配置邮件服务器smtp0.example.com
1.设置永久的主机名(desktop0.example.com)/etc/hostname
desktop0:lab smtp-nullclient setup
三、测试:
在server上发一封邮件给student,最后desktop0上student收到
# mail -s 'test01' -r root student
#####################################################
数据库服务基础
MariaDB 数据库的管理员 root ,不同系统的管理员
部署mariadb数据库服务器
• RHEL7 中的 MariaDB 相关包
– mariadb-server:提供服务端有关的系统程序
– mariadb:提供客户端及管理工具
– mariadb数据库服务端口:3306
[root@server0 ~]# yum -y install mariadb-server
[root@server0 ~]# systemctl restart mariadb
[root@server0 ~]# mysql
MariaDB [(none)]> show databases; #查看所有的库
MariaDB [(none)]> create database nsd1705; #创建库
MariaDB [(none)]> show databases;
MariaDB [(none)]> drop database nsd1705; #删除库
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit #退出数据库服务
#######################################################
mariadb服务端配置调整
• 禁止监听,只服务于本机
[root@server0 ~]# vim /etc/my.cnf
[mysqld]
skip-networking //跳过网络监听
.. ..
[root@server0 ~]# systemctl restart mariadb
• 为数据库账号修改密码
– mysqladmin [-u用户名] [-p[旧密码]] password '新密码'
[root@server0 ~]# mysqladmin -u root password '123'
[root@server0 ~]# mysql -u root -p123
#####################################################
– 使用/选择数据库: use 数据库名;
– 列出库里有哪些表: show tables;
[root@server0 ~]# mysql -u root -p123
MariaDB [mysql]> show databases;
MariaDB [mysql]> use mysql;
MariaDB [mysql]> show tables;
MariaDB [mysql]> desc user; #显示表的结构
显示user表中user,host,password内容
MariaDB [mysql]> select user,host,password from user;
显示user表中user,password内容
MariaDB [mysql]> select user,password from user;
###################################################
导入/恢复到数据库
– mysql [-u用户名] [-p[密码]] 数据库名 < 备份文件.sql
重定向输入: <
[root@server0 ~]# mysql -u root -p123
MariaDB [(none)]> create database nsd;
MariaDB [(none)]> show databases;
MariaDB [(none)]> exit
# wget http://172.25.254.254/pub/materials/users.sql
# mysql -u root -p123 nsd < users.sql #导入数据到nsd库中
[root@server0 ~]# mysql -u root -p123
MariaDB [nsd]> use nsd;
MariaDB [nsd]> show tables;
MariaDB [nsd]> select * from location;
MariaDB [nsd]> select * from base;
– GRANT 权限列表 ON 数据库名.表名 TO 用户名@
客户机地址 IDENTIFIED BY '密码';
######################################################
– 除了 root 用户,此数据库nsd只能被用户 lisi 查询,此用户的密码为123
数据库的授权
[root@server0 ~]# mysql -u root -p123
grant select on nsd.* to lisi@localhost identified by '123';
当lisi利用密码123进行本地登陆数据库时,将会获得nsd库中所有表的查询权限
[root@server0 ~]# mysql -u lisi -p123 #验证是否能够登陆
######################################################
案例5:使用数据库查询
1. 禁止空密码root用户访问 mariadb 数据库
MariaDB [mysql]> use mysql;
MariaDB [mysql]> select user,host,password from user;
MariaDB [mysql]> select user,host,password from user where user='root' and password='';
MariaDB [mysql]> delete from user where user='root' and password='';
2. 在系统 server0 上使用数据库 nsd,并使用相
应的 SQL 查询以回答下列问题:
1)密码是 solicitous 的人的名字?
MariaDB [nsd]> use nsd;
MariaDB [nsd]> select * from nsd.base where password='solicitous';
MariaDB [nsd]> select name from base where password='solicitous';
MariaDB [nsd]> select name,password from base where password='solicitous';
2)有多少人的姓名是 Barbara 同时居住在 Sunnyvale?
MariaDB [nsd]>use nsd;
MariaDB [nsd]> select * from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
MariaDB [nsd]> select count(*) from base,location where base.name='Barbara' and location.city='Sunnyvale' and base.id=location.id;
##########################################################################
数据库的增删查:
MariaDB> create database 库名;
MariaDB> drop database 库名;
MariaDB> show databases;
MariaDB> use 库名;
数据表的查询、删除:
MariaDB> select 字段列表 from 库名.表名;
MariaDB> select 字段列表 from 库名.表名 where 字段名=值;
MariaDB> delete from 库名.表名 where 字段名=值 .. .. ;
用户授权控制:
MariaDB> grant 权限列表 on 库名.表名 to 用户名@客户机地址 identfified by '密码';
补充
postfix电子邮件服务器 ——
邮件服务器的基本功能:
1)为用户提供邮箱账号
2)为用户向外发送邮件
3)为用户接收并投递邮件
标配邮件服务器:
本机的程序 ==》本机的postfix邮件服务器
普通邮件服务器:
本机或其他主机的程序 ==》postfix邮件服务器
nullclient邮件服务器:
1)不为用户提供邮箱账号
2)为用户向外发送邮件
3)不为用户接收并投递邮件
本机程序 ==》postfix邮件服务器 ==》后端邮件服务器
echo '邮件内容' | mail -s '邮件标题' 收件人1地址 收件人2地址 ...
mail
mail -u 用户名
MariaDB数据库 ——
搭建数据库服务器:
# yum -y install mariadb-server mariadb
# systemctl restart mariadb
数据库服务器的配置操作:
# vim /etc/my.cnf
skip-networking
# systemctl restart mariadb
# mysqladmin -u用户名 -p旧密码 password '新密码'
关于服务程序的监听地址、端口
netstat -anptu
-a:所有的连接
-n:以数字的方式显示
-p:显示对应的进程号(PID)
-t:列出TCP连接
-u:列出UDP连接
-l:列出本机监听的连接