为用户提供电子邮箱存储空间
处理用户发出的邮件—传递给收件服务器
处理用户收到的邮件—投递到邮箱
SMTP:25/tcp
POP3:110/tcp
IMAP:143/tcp
yum -y install postfix
rpm -qa| grep postfix
postfix的主配置文件,特点是从上到下,后设置的选项会覆盖之前设置的选项,即后应用的生效
vim /etc/postfix/main.cf
到76行,把#删掉,修改myhostname = server0.example.com #指定主机名
到83行,把#删掉,修改mydomain = example.com #指定域名
到99行,把#删掉,修改myorigin = server0.example.com #向外发邮件时标记的来源域
到116行,把#删掉,修改inet_interfaces = loopback-only#仅允许本机
到164行,把#删掉,修改mydestination = server0.example.com #根据邮件后缀来判断是否为本域邮件,名字为server0.example.com就是本域
myhostname = server0.example.com
mydomain = example.com
myorigin = server0.example.com
inet_interfaces = loopback-only
mydestination = server0.example.com
重启并设置开机启动postfix
useradd yg
echo 123|passwd --stdin yg
useradd xln
echo 123|passwd --stdin xln
id yg
id xln
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/"></a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">mail -u [username] 例子:xln查看yg发来的邮件 mail -u xln #回车进入交互式界面 Heirloom Mail version 12.5 7/5/10. Type ? for help. "/var/mail/xln": 1 message 1 new</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">N 1 [email protected] Thu Nov 2 11:26 20/604 "test01" & 1 #N表示新邮件,1表示邮件编号为1 Message 1: #输入1选择第一封邮件 From [email protected] Thu Nov 2 11:26:52 2017 Return-Path: <[email protected]> X-Original-To: xln Delivered-To: [email protected] Date: Thu, 02 Nov 2017 11:26:52 +0800 From: [email protected] To: [email protected] Subject: test01 User-Agent: Heirloom mailx 12.5 7/5/10 Content-Type: text/plain; charset=us-ascii Status: R</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">Hi xln long time no see how are you</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">& delete 1-10 #删除1~10封邮件</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">空客户端邮件服务器。本身没有任何邮箱帐号,不需要投递任何邮件。但是可以为用户代发邮件</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在企业内网的内部系统中,当web、ftp等服务器连接外网的速度较慢,或者无法访问外网。当服务器出现异常时,为了能快速的发出报警邮件,可以直接联系邮件空客户端,以最快的速度把邮件发给运维人员,以便运维人员及时处理。 但由于监控服务器的盛行,现在很少使用空客户端方式了</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在desktop0上操作: 两种方法: 方法1:通过脚本lab smtp-nullclient setup自动设置,实质上修改和添加了这些行 修改部分: inet_interfaces = all 添加部分: mynetworks = 172.25.0.0/24 smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_tls_security_level = may smtpd_tls_cert_file = /etc/pki/tls/certs/postfix.pem smtpd_tls_key_file = /etc/pki/tls/private/postfix.pem</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">方法2:手动修改配置文件 vim /etc/postfix/main.cf 到99行,把#删掉,修改myorigin = desktop0.example.com #默认补全的邮件后缀 到116行,把#删掉,修改inet_interfaces = all #允许所有客户端 到164行,把#删掉,修改mydestination = desktop0.example.com #投递域的域名,名字为desktop0.example.com就是本域 mynetworks = 172.25.0.0/24 myorigin = desktop0.example.com mydestination = desktop0.example.com inet_interfaces = all</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在server0上操作: vim /etc/postfix/main.cf 到99行,把#删掉,修改myorigin = desktop0.example.com #向外发邮件时标记的来源域 到116行,把#删掉,修改inet_interfaces = loopback-only #仅允许本机 到164行,把#删掉,修改mydestination = #设置为空表示没有投递域 到264行,把#删掉,修改mynetworks = 127.0.0.0/8 [::1]/128 到317行,把#删掉,修改relayhost = 172.25.0.10 #指定后端(目标)邮件服务器 重启服务 systemctl restart postfix systemctl enable postfix inet_interfaces = loopback-only mydestination = mynetworks = 127.0.0.0/8 [::1]/128 relayhost = [smtp0.example.com]</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在server0上写一封邮件给student,此时在server0上无法收到邮件,邮件会转到desktop0上去</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">编号 姓名 手机号 住址 1 zs 1111111111 上海 2 ls 2222222222 北京 3 ww 3333333333 广州 黑色区域:表字段 其他区域:表记录</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">安装mariadb-server(服务端)和mariadb(客户端及工具)</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">由MySQL的开发者开发出来的开源数据库系统 端口号 3306/tcp 不支持tab键 所有命令必须以;结尾</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">show databases;#显示所有数据库 create database nsd1709;#创建数据库nsd1709 drop databases nsd1709;#删除数据库nsd1709 status;#查看状态 quit;#退出 \c 命令输入错误后结束命令行 '; 命令输入错误后结束命令行 "; 命令输入错误后结束命令行 \G;让查询的结果竖着显示</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">注意!数据库管理员是root,但是与系统的root用户没有任何关系 在linux系统里执行 mysqladmin -u root password ‘123' #设置数据库管理员root的密码为123 修改密码后,必须通过mysql -uroot -p123登陆数据库,但是这个命令会显示密码,极其不安全。必须以交互式登陆 mysql -uroot -p Enter password:</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在linux系统里执行 systemctl stop mariadb mysqld_safe --skip-grant-tables & #跳过检查授权表启动 [1] 25828 [root@room4pc09 mysql]# 170925 14:46:03 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'. 170925 14:46:03 mysqld_safe A mysqld process already exists mysql -h127.0.0.1 -uroot -p SET password for 'root'@'localhost'=password('newpassword'); exit kill -9 25828 systemctl start mariadb</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在数据库里执行 use mysql; UPDATE user SET password=password('newpassword') WHERE user='root'; flush privileges; exit</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">在数据库里执行 SET password for 'root'@'localhost'=password('newpassword'); systemctl start mariadb</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">vim /etc/my.cnf 在mysqld下面另起一行,输入下面的语句 skip-networking #跳过网络监听,只对本机提供服务</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">表和表之间用”,” 库和表之间用”.”</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">显示所有的数据库</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">选择并打开nsd数据库</a>
<a href="mailto:br/%3E%E4%BE%8B%E5%AD%902%EF%BC%[email protected]%E5%8F%91%E9%82%AE%E4%BB%B6%E7%BB%[email protected]%EF%BC%8C%E4%B8%BB%E9%A2%98%E4%B8%BAtest01%3Cbr/">查看数据库里面的表</a>
mysql -uroot -p nsd < users.sql
mysql -uroot -p
MariaDB [nsd]> use nsd;
MariaDB [nsd]> show tables;
+---------------+
| Tables_in_nsd |
| base |
| location |
命令格式:select 表字段 from 数据库名.表格名;
查询nsd数据库的base表的所有表字段信息
MariaDB [nsd]> select * from nsd.base;
+------+---------+------------+
| id | name | password |
| 1 | Tom | 123 |
| 2 | Barbara | 456 |
| 3 | James | solicitous |
| 4 | Smith | tarena |
| 5 | Barbara | pwd123 |
5 rows in set (0.00 sec)
查询name为tom的用户
MariaDB [nsd]> select * from base where name='tom';
+------+------+----------+
1 row in set (0.00 sec)
查询密码为solicitous而且id=3的表记录
查询名字为Barbara或者id=3的表记录
查找住在Sunnyvale的名字叫Barbara的人数
命令格式:grant 权限列表 on 数据库名.表名 to 用户名@localhost identified by ‘密码'
insert:增加
delete:删除
update:修改
select:查询
grant select on nsd.* to lisi@localhost identified by '456' #lisi用户在本地登录后拥有对nsd库的所有表的查询权限
select user,password from mysql.user where user='lisi';
增加一条表记录,id=6,name=Barbara,密码=123456
增加一条表记录,id=6,city=Barbara
delete from user where password='' and user='root';
删除用户名为root,并且密码为空的记录
desc nsd.base;
本文转自 goldwinner 51CTO博客,原文链接:http://blog.51cto.com/355665/2068709,如需转载请自行联系原作者