中文输入:


# yum  -y  install“ibus-table-chinese*”“cjk*”“*pinyin*”


# reboot


# Settings -----> Region & Language -----> Input Sources -----> Chinese(Intelligent Pinyin)



一、Systemd相关管理(禁用或者恢复服务、杀死等)


[root@server0 ~]#  systemctl  mask  服务名(禁用该服务)


[root@server0 ~]#  systemctl  unmask  服务名(不禁用/恢复该服务)


[root@server0 ~]#  systemctl  kill  服务名(杀死该服务)


[root@server0 ~]#  systemctl  is-active  服务名(查看该服务是否启动)


[root@server0 ~]#  systemctl  is-failed  服务名(查看该服务是否失败)


[root@server0 ~]#  systemctl  reenable  服务名(重新设置该服务开机启动)



二、Firewall防火墙设置



图形化配置命令:firewall-config


终端配置命令:firewall-cmd



(1)图形配置解释


Configuration:Runtime/Permanent(临时/永久,注意选择永久)


Zone:默认区域,缺省使用public


Services:预设的一些服务,勾选代表允许


Ports:设置端口


Masquerading:NAT伪装技术


Port  Forwarding:端口转发


ICMP  Filter:ICMP过滤


Rich  Rules:复规则


Interfaces:接口



(2)命令行配置


[root@server0 ~]#  firewall-cmd  --permanent  --add-service=服务名(新添加一条永久的允许服务规则)


[root@server0 ~]#  firewall-cmd  --permanent  --add-rich-rule  "rule family=ipv4 source address=“IP地址”service name=服务名  reject"(新添加一条永久规则,拒绝这个网段访问服务)


[root@server0 ~]#  firewall-cmd  --permanent  --list-all(查看所有当前的永久规则)



三、Samba配置


[root@server0 ~]#  yum  -y  install  samba  samba-client  cifs-utils(安装所需软件包)


[root@server0 ~]#  smbpasswd  -a  用户名(添加samba用户)


[root@server0 ~]#  pdbedit  -L(查看samba用户列表)


[root@server0 ~]#  vim  /etc/samba/smb.conf(编辑samba配置文件)


valid  users  =  用户名,@组名(可以访问的用户;只读)


write  list  =  用户名,@组名(可以写入的用户)


hosts  allow  =  网段(只允许某个网段访问)



[root@server0 ~]#  systemctl  enable  smb  nmb(开机自启samba服务)


[root@server0 ~]#  systemctl  restart  smb  nmb(重启samba服务)


[root@server0 ~]#  firewall-cmd  --permanent  --add-service=samba(配置防火墙,允许samba服务)


[root@server0 ~]#  firewall-cmd  --reload(重新加载防火墙配置)


[root@server0 ~]#  vim  /etc/fstab


挂载参数:


credentials=密码与用户存储的位置(文件中存储username、password)


multiuser(多用户挂载)


sec=ntlmssp(安全选项)


[ldapuser1@desktop0 ~]$  cifscreds  add  samba服务器名(重新从samba服务器获得自己的访问凭据)



四、SElinux配置(SElinux使用selinux用户、角色、类型和级别控制进程访问资源)



1、了解Selinux


    1)DAC:指用户访问资源的控制,即权限


      MAC:Selinux标签,限制进程访问资源,进程归用户所有;当用户调用进程去访问资源(file)时,检查Selinux安全标签,匹配了才能访问


      Selinux属性的格式:user:role:type:level


   2)Selinux用户:不同于系统用户,Selinux用户使用selinux策略的一部分,和系统用户有映射关系;一个用户对应一个selinux映射;semanage查看关系semanage  user  -l


    3)角色role:用户空间,进程的访问范围标记,如object_r


    4)类型或者安全上下文:资源的标记,如admin_home_t


    5)安全级别:s0最常用


[root@server0 ~]#  ls  -Zld  文件/目录(查看文件/目录的Selinux属性)


[root@server0 ~]#  ps  -eZ  |  grep  服务名(查看服务进程的Selinux属性)


[root@server0 ~]#  id  -Z(当前用户的selinux设置)



2、设置文件的Selinux属性中安全上下文(type)


1)临时设置


[root@server0 ~]#  chcon  -R(递归处理所有的文件及子目录) -t(设置指定类型的目标安全环境)类型(如samba_share_t)


[root@server0 ~]#  restorecon  -F(强制)-v(详细)-R(递归)(还原Selinux属性)



2)永久生效


查询命令的提供包:yum  provides  semanage


语法:semanage  fcontext  -(a|d|m)文件(-a表示增加、-d删除、-l显示、-m修改;注意,文件、目录使用绝对路径)


[root@server0 ~]#  semanage  fcontext  -a  -t  samba_share_t  '/smb1(/.*)(匹配目录下的所有内容)'(案例)


[root@server0 ~]#  restorecon  -F(强制)-v(详细)-R(递归)(还原Selinux属性)


[root@server0 ~]# semanage  fcontext -l(显示所有的Selinux属性)



3、复制、移动对selinux规则的影响


移动:移动时selinux属性不变,覆盖时会覆盖selinux属性


复制:复制时使用目标selinux的属性,覆盖的selinux属性不变


注意:对比移动和复制,复制更有利于保持selinux属性、推荐使用



4、tar打包备份与selinux ;特殊selinux  type :file_t ,default_t ,user_tmp_t


1)tar打包时默认selinux丢失,使用“—selinux  --xattrs”


tar  -zcvf  /tmp/test-sel.tar.gz  /var/www/html  --selinux


2)特殊type:


file_t:文件没有selinux属性


default_t:文件或目录的selinux与file_context配置文件定义模式不匹配


两种类型文件,设置了selinux属性的进程都不能访问


user_tmp_t:用户的临时文件,所有进程都可以访问



五、NFS配置


1、简单的NFS


[root@server0 ~]#  yum  -y  install  nfs-utils(NFS软件包,包括客户端)


[root@server0 ~]#  vim  /etc/exports(NFS配置文件)


/共享目录网段/子网掩码(选项;如-ro,sync)



nfs-server.service(提供简单的NFS共享,服务端使用)


nfs-secure-server.service(提供基于KerBeros的安全认证共享,服务端使用)


nfs-secure.service(客户端使用KerBeros认证,客户端使用)


2、基于KerBeros的安全NFS


服务器:


[root@server0 ~]#  wget  http://cla***oom.example.com/pub/keytabs/server0.keytab  -O  /etc/krb5.keytab(从服务器下载用于安全认证的keytab文件,下载后名称和位置必须在此)


[root@server0 ~]#   vim  /etc/sysconfig/nfs(NFS全局配置文件)


# Optional arguments passed to rpc.nfsd. See rpc.nfsd(8)


RPCNFSDARGS="-V 4.2"(定义NFS使用的协议版本4.2提供共享)



[root@server0 ~]#  vim  /etc/exports(NFS配置文件)


/共享目录网段/子网掩码(ro,sec=krb5p)(添加sec=krb5,以支持Krb5共享;安全选项有krb5、krb5i、krb5p,建议使用krb5p。客户端必须使用相同的安全选项)



[root@server0 ~]#  systemctl  enable  nfs-secure-server.service(启动KerBeros安全认证共享服务)


[root@server0 ~]#  systemctl  restart  nfs-secure-server.service


[root@server0 ~]#  systemctl  restart  nfs-server.service


客户端:


[root@desktop0 ~]#  wget  http://cla***oom.example.com/pub/keytabs/server0.keytab  -O  /etc/krb5.keytab(下载用于安全认证的keytab文件)


[root@desktop0 ~]#  systemctl  enable  nfs-secure.service


[root@desktop0 ~]#  systemctl  restart  nfs-secure.service


[root@desktop0 ~]#  mkdir  /nfs2


[root@desktop0 ~]#  vim  /etc/fstab


server0:/nfs2   /mnt/nfs2       nfs     defaults,v4.2(表示使用的NFS版本),sec=krb5p(使用的安全选项;必须与服务器设置相同)        0 0



[ldapuser5@desktop0 ~]$  kinit(获得kerberos的凭据)


Password for ldapuser5@EXAMPLE.COM: (Kerberos密码)



六、链路聚合配置(多块网卡绑定,实现故障切换;需有两块网卡以上)



命令行配置:


[root@server0 ~]#  nmcli  connection  add  type  team(逻辑设备)、team-slave(Team中包含的真实设备)con-name  (设备名)  ifname  team0(设备类型)  config  '{"runner"(属性名):{"name"(子属性


名):"activebackup"(子属性值)}}'(定义Team的方式;可man  teamd.conf有案例文件)添加逻辑设备



[root@server0 ~]#  nmcli   connection  add  type  team  con-name  team0  ifname  team0  config  '{"runner":{"name":"activebackup"}}'(Team案例)


[root@server0 ~]#  nmcli  connection  modify  team0  ipv4.addresses "TCP/IP信息"(设置Team的IP信息)


[root@server0 ~]#  nmcli  connection  modify  team0  ipv4.method  m(设置为静态)


[root@server0 ~]#  nmcli  connection  add  type  team-slave  con-name  设备名  ifname  网卡设备  master  逻辑设备名(添加Team中所需要包含的真实设备)


[root@server0 ~]#  nmcli  connection  add  type  team-slave  con-name  team-eth1  ifname  eno1  master  team0(添加设备案例)


[root@server0 ~]#  teamdctl  team设备名  state(查看Team的状态信息)


图形化配置:


[root@server0 ~]#  nm-connection-editor --> add --> team -->注意选择开机自启动 --> 配置完成后nmcli  connection  up  配置文件名



七、Firewalld端口转发配置


图形化配置:


firewall-config --> Configuration(Permanent)--> Port Forwaring --> Add --> Port/Port Range(源端口)--> Forward to another port(转发到目标主机端口)--> IP address(目标主机)--> Port / Port Ramge(目标断


端口)--> Options(Reload Firewalld)(Rich Rule可以针对源地址做限制)


命令行配置:


[root@server0 ~]#  firewall-cmd  --permanent  --add-rich-rules  “rule family=“ipv4”source  address=“源地址”forward-port port=“源端口”protocol=“tcp”to-port=“目标端口””


[root@server0 ~]#  nc  -l  端口号(开启本地一个端口号)



八、IPV6的配置


[root@server0 ~]#  


[root@server0 ~]#  


[root@server0 ~]#  


[root@server0 ~]#  



九、POSTFIX邮件(配置只发送不接收)


/usr/share/doc/postfix-2.10.1/README_FILES/STANDARD_CONFIGURATION_README(POSTFIX邮件案例文件)



[root@server0 ~]#  vim  /etc/postfix/main.cf(POSTFIX主配置文件)(Ctrl + v进入可视化模式,d可快速删除)(配置文件中有多个相同名的名时,以最后一条生效)


myhostname = 主机名


myorigin = $mydomain(伪装,邮件的落款)


relayhost = $mydomain | [地址](发送出去的邮件,转发的主机)


inet_interfaces = loopback-only(监听的接口)


mydestination =(决定了邮件的工作范围,空代表不收)


local_transport = error:local mail delivery is disabled(邮件错误信息的提示内容,内容可自定义)



十、ISCSI配置


服务器:


[root@server0 ~]#  yum  -y  install  targetcli(文本模式的target配置文件)


[root@server0 ~]#  systemctl  enable  target.service


[root@server0 ~]#  systemctl  restart  target.service


[root@server0 ~]#  targetcli


/> ls

o- / ......................................................................................................................... [...]

  o- backstores .............................................................................................................. [...]

  | o- block .................................................................................................. [Storage Objects: 0](块设备做共享)

  | o- fileio ................................................................................................. [Storage Objects: 0](文件做共享)

  | o- pscsi .................................................................................................. [Storage Objects: 0]

  | o- ramdisk ................................................................................................ [Storage Objects: 0]

  o- iscsi ............................................................................................................ [Targets: 0]

  |     o- acls .......................................................................................................... [ACLs: 0](允许访问的IQN)

  |     o- luns .......................................................................................................... [LUNs: 0](将IQN和共享设备/文件做关联)

  |     o- portals .................................................................................................... [Portals: 0](设置IQN/进程监听的端口)

  o- loopback ......................................................................................................... [Targets: 0]


/> /backstores/block/  create  ISCSI设备名  /dev/设备名(创建一个块设备)


/> /iscsi/ create IQN名(创建设备的IQN)


/> /iscsi/IQN名/tpg1/acls/  create  允许的IQN(设置允许访问的IQN)


/> iscsi/IQN名/tpg1/luns/  create  /backstores/block/ISCSI设备名(将IQN和设备做关联)


/> /iscsi/IQN名/tpg1/portals  create  IP  3260(默认端口)(设备监听的端口)


/> saveconfig(保存配置)


/> exit(退出)



[root@server0 ~]#  firewall-cmd  --permanent  --add-port=3260/tcp


[root@server0 ~]#  firewall-cmd  --reload



客户端


[root@desktop0 ~]#  yum  -y  install  iscsi-initiator-utils  iscsi-initiator-utils-iscsiuio(客户端工具)


[root@desktop0 ~]#  vim  /etc/iscsi/initiatorname.iscsi (定义了IQN的配置文件)


InitiatorName=IQN(使用授权访问的IQN)



[root@desktop0 ~]#  systemctl  enable  iscsid 


[root@desktop0 ~]#  systemctl  restart  iscsid


[root@desktop0 ~]#  iscsiadm  -m  discovery  -t  st  -p(不写为默认3260端口)  主机名(发现ISCSI,读取/var/lib/iscsi目录)


[root@desktop0 ~]#  systemctl  restart  iscsi(login发现的所有IQN)


[root@desktop0 ~]#  systemctl  enable  iscsi


[root@desktop0 ~]#  blkid(查看设备UUID)


[root@desktop0 ~]#  vim  /etc/fstab


_netdev(增加挂载选项,声明是一个网络设备)



十一、Shell脚本




(1)case语句格式



if  [  command  ];then


    commands


    elif  [  command2  ];then


        commands


            else  [  command3  ];then


                commands


fi




(2)case语句格式



case  值  in


    模式1)


        command1


        command2


        command3


    ;;


    模式2)


        command1


        command2


        command3


    ;;


    *)


        command1


        command2


        command3


    ;;


esac




(3)for语句格式



for  变量  in  列表


do


    循环体


done




(4)while语句格式



while  [  condition  ]  <==中括号内的状态就是判断式


do            <==do 是回圈的开始!


    程序段落


done          <==done 是回圈的结束



[root@server0 ~]#  sh  -n  脚本(检测脚本语法是否有误)


[root@server0 ~]#  echo  -e  “内容”(启动解释反斜杠转义;如\n)



十二、Mariadb数据库



1) 安装Mariadb


[root@server0 ~]#  yum  -y  groupinstall  mariadb  mariadb-client(安装Mariadb数据库和客户端)


[root@server0 ~]#  systemctl  enable  mariadb.service


[root@server0 ~]#  systemctl  restart  mariadb.service


[root@server0 ~]#  firewall-cmd  --permanent  --add-service=mysql


[root@server0 ~]#  firewall-cmd  --reload


[root@server0 ~]#  firewall-cmd  --permanent  --list-all


[root@server0 ~]#  mysql_secure_installation(Mariadb数据库初始化设置、其中包括是否禁用匿名等)


[root@server0 ~]#  mysql  -u  root  -p  tianyun(登陆Mariadb)



MariaDB [(none)]>  create  database  数据库名;(创建数据库)


MariaDB [(none)]>  create table 数据库名.表名(字段1 类型 ,字段2 类型 not null ... ,primary key(字段名));    ##创建表,名称使用字母、_、数字,不要使用$、#、-等字符


MariaDB [(none)]>  show  databases;(查询所有数据库)


MariaDB [(none)]>  use  数据库名(进入数据库)


MariaDB [(none)]>  select  database();(返回当前数据库名字)


MariaDB [(none)]>  source  dump数据存放位置(导入数据到当前数据库)


MariaDB [Concats]>  grant  select/权限列表  on  数据库名.*/表名;*代表所有  to  用户@'172.25.0.%/网段;%代表所有'  identified  by  ‘密码’;


MariaDB [Concats]>  flush  privileges;(刷新权限)



MariaDB [Concats]>  select  *  from  表名  where  条件  and  字段  like(模糊匹配)“%14%(%代表多个字符;_表示匹配一个字符)”;(单表查询)


MariaDB [(none)]>  select  a.first_name,b.location  from  a,b  where  a.user_id=b.id  and  first_name=‘tianyun’  and  location=‘WA’;(多表查询,表间必须存在关联)