RHCE培训笔记

  • 来源:新网
  • 更新日期:2018-03-20

摘要:修改yum源为iso镜像 1.创建文件来存放iso的内容 mkdir -rf /var/ftp/rhel7 2.查看iso镜像挂载在了哪个文件  mount | grep iso     //默认挂载在/run/media/kangvcar/RHEL-7.0Server.x86_64下

 
修改yum源为iso镜像
1.创建文件来存放iso的内容
mkdir -rf /var/ftp/rhel7
wKhQoVbqT0OED8I3AAAAAJ4tHZ4884.jpg
2.查看iso镜像挂载在了哪个文件
mount | grep iso //默认挂载在/run/media/kangvcar/RHEL-7.0Server.x86_64下
3.把iso镜像的内容复制到/var/ftp/rhel7里
cp -rf /run/media/kangvcar/RHEL-7.0 Server.x86_64/* /var/ftp/rhel7
4.查看复制后的文件
ll /var/ftp/rhel7/
5.编辑YUM源文件
vim /etc/yum.repos.d/rhel7.repo
[base]
name=redhat el7.0 DVD
baseurl=file:///var/ftp/rhel7
enabled=1
gpgcheck=0
6.清除缓存
yum clean all

yum 命令的使用技巧
yum(选项)(参数)
选项:-h //显示帮助信息
-y //对所有的提问都回答yes
-c //指定配置文件
参数:install //安装rpm软件包
update //更新rpm软件包
check-update //检查是否有可用更新包

remove //删除指定软件包
list //显示软件包的信息
clean //清除缓存
deplist //查看rpm软件包的所有依赖关系
 
配置DNSserver
1.安装软件
yum install -y unbound
2.修改配置文件 vim /etc/unbound/unbound.conf
修改监听地址
interface: 0.0.0.0 //监听所有地址
修改客户端地址
access-control: 0.0.0.0/0 allow //配置允许向主机查询的客户端地址范围
创建正反向解析文件 vim /etc/unbound/loacal.d/hkj.com
local-zone: "hkj.com."static
local-data: "hkj.com. 86400 IN SOA ns.hkj.com. root 1 1D 1H 1W 1H"
local-data: "ns.hkj.com. 86400 IN A 192.168.12.12"
local-data: "www.hkj.com. 86400 IN A 192.168.12.12"
local-data: "ftp.hkj.com. 86400 IN A 192.168.12.12"
local-data: "mail.hkj.com. 86400 IN A 192.168.12.12"
local-data: "hkj.com. 86400 IN MX 10 mail.hkj.com"
local-data-ptr: "12.12.168.192 ns.hkj.com."
local-data-ptr: "12.12.168.192 www.hkj.com."
local-data-ptr: "12.12.168.192 ftp.hkj.com."
local-data-ptr: "12.12.168.192 mail.hkj.com."
3.语法检测
unbound-checkconf
4.服务启动
systemctl start unbound
5.查看相关端口
netstat -atunp |grep :53
6.配置下次系统启动,相关服务自启动
设置
systemctl enable unbound.service
查看
systemctl is-enabled unbound.service
7.配置防火墙
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload
8.客户端测试
nslookup
 
注:DNS
tcp 53 用于服务器间连接(主从服务器间同步)
udp 53 用于服务器与客户机间连接(查询)
 
配置Apache 服务
1.安装服务
yum install -y httpd
2.修改配置文件
ServerName www.rhel.com
3.语法检测
httpd -t
4.创建主页文件
vim /var/www/html/index.html
5.检查SELinux上下文
restorecon -R /var/www/html
6.启动服务
systemctl start httpd.service
7.配置服务随开机自启动
systemctl enable httpd.service
8.配置防火墙
firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload
9.测试
elinks --dump 192.168.43.43
 
配置Apache 服务(基于域名的虚拟主机)
1.配置好DNS能解析 www.abc.com和www.rhel.com
2.分别创建两个站点的网页文件
cd /home/wwwroot/
mkdir abc rhel
echo “www.abc.com" > /home/wwwroot/abc/index.html
echo “www.rhel.com" > /home/wwwroot/rhel/index.html
3.修改119行的DocumentRoot为/var/wwwroot
4.修改123行的Directory为/var/wwwroot
5.添加虚拟主机配置,在httpd.conf后面追加
<VirtualHost 192.168.43.43>
DocumentRoot "/home/wwwroot/www"
ServerName "www.rhel.com"
</VirtualHost>
<VirtualHost 192.168.43.43:443>
DocumentRoot "/home/wwwroot/abc"
ServerName "www.abc.com"
</VirtualHost>12
6.重启服务
systemctl restart httpd.service
7.关闭SELinux
setenforce 0
8.
 
配置Apache 服务(基于SSL加密的WEB服务)
1.安装服务
yum -y install openssl
yum -y install mod_ssl
2.生成KEY密钥文件和签发CRT证书
进入目录
cd /etc/http/conf/
生成服务器密钥文件
openssl genrsa -out server.key 1024
修改权限
chmod 600 server.key
生成服务器证书文件
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
3.修改虚拟主机配置文件
<VirtualHost 192.168.43.43>
DocumentRoot "/home/wwwroot/www"
ServerName "www.rhel.com"
</VirtualHost>
<VirtualHost 192.168.43.43:443>
DocumentRoot "/home/wwwroot/abc"
ServerName "www.abc.com"
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLCertificateFile /etc/pki/tls/certs/server.crt
SSLCertificateKeyFile /etc/pki/tls/certs/server.key
</VirtualHost>
4.客户机测试
curl -k https://www.abc.com
 
 
配置邮件服务器(postfix和dovecot)
1.安装服务
yum -y install postfix //提供SMTP服务
yum -y install dovecot //提供POP3和IMAP服务
2.使用postconf工具简化配置文件
cd /etc/postfix //进入目录
postconf -n > main.txt //使用postconf工具生成main.txt文件,-n表示只生成非默认配置选项
mv main.cf main.cf.bak //把原来的配置文件改名
mv main.txt main.cf //把生成的简化配置文件名字改成main.cf
3.配置日志跟踪
tail -f /var/log/maillog //配置日志跟踪,就是在终端界面显示状态
4.修改postfix的配置文件 vim /etc/postfix/main.cf
inet_interfaces = all //服务器监听所有IP
myhostname = mail.rhel.com //服务器使用的主机名
mydomain = rhel.com //服务器使用的域名
myorigin = $mydomain //外发邮件是发件人地址中邮件域名
mydestination = $mydomain, $myhostname //可以接收的邮件地址的域名
home_mailbox = Maildir/ //邮件存储位置,注意路径路径后面的斜杠(写了可能会失败)
5.修改dovecot的配置文件 vim /etc/dovecot/dovecot.conf
protocols = pop3 imap lmtp //24行,支持的邮局协议
disable_plaintext_auth = no //在25行加入允许明文密码认证
login_trusted_networks = 192.168.43.0/24 //指定允许登陆的网段地址
6.修改dovecot的配置文件 vim /etc/dovecot/conf.d/10-mail.conf
mail_location = mbox:~/mail:INBOX=/var/mail/%u //指定邮箱位置和格式
7.创建相关目录
mkdir -p /home/user1/mail/.imap/INBOX
chown -R user1:user1 /home/user1
编写Shell脚本,使得创建用户时自动创建相应的目录
vim /etc/skel/.bash_profile
if [ ! -d ~/mail/.imap/INBOX ]; then
mkdir -p ~/mail/.imap/INBOX
fi
8.配置防火墙允许SMtTP 服务
firewall-cmd --permanent --add-service=smtp //放行smtp服务
firewall-cmd --permanent --add-service=imaps //放行imap服务
firewall-cmd --permanent --add-service=pop3s //放行pop3服务
firewall-cmd --reload //重启防火墙
9.启动服务
systemctl restart postfix.service //重启postfix服务
systemctl enable postfix.service //设置随开机自启动
systemctl restart dovecot.service //重启dovecot服务
systemctl enable dovecot.service //设置随开机自启动
10.查看相应的监听端口
netstat -nutpl | grep dovecot //应该看到端口110和143
netstat -nutpl | grep 25 //应该考到端口25
11.添加新账户
useradd user1
useradd user2
passwd user1
passwd user2
12.配置邮件别名
vim /etc/aliase //进入配置别名文件
admin: user1 //设置别名
newaliase //更新数据库
13.测试
echo this is a test email. | mail -s test user1@rhel.com //发送邮件
mail -u user1 //查邮件
或者
配置outlook和foxmail客户端
参数如下:
邮件账号名称 user1@rhel.com
SMTP服务器地址 mail.rhel.com
POP3服务器地址 mail.rhel.com
 
配置PXE server实现远程安装linux系统
注:实现此服务需要FTP、DHCP、TFTP-SERVER三个服务
1.配置ftp服务
yum -y install vsftpd //安装ftp服务
vim /etc/vsftpd/vsftpd.conf //修改ftp配置文件,默认匿名登陆不用修改配置,默认路径/var/ftp
systemctl start vsftpd.service //启动ftp服务
netstat -atunp | grep :21 //查看21端口是否开启
systemctl enable vsftpd.service //配置随开机自启动
systemctl is-enabled vsftpd.service //查看是否开机自启
客户端测试
ftp 192.168.43.43
用户名 anonymous/ftp
密码 空
匿名用户的FTP目录是 /var/ftp
2.配置DHCP服务
yum -y install dhcp //安装dhcp服务
cp /usr/share/doc/dhcp-4.2.5/dhcp.conf.example /etc/dhcp/dhcpd.conf //复制配置文件
vim /etc/dhcp/dhcpd.conf //修改配置文件
在所分配网段声明中追加如下内容
next-server 192.168.43.43; //配置分配的tftp地址
filename "pxelinux.0"; //配置引导文件名
systemctl start dhcpd.service //启动dhcp服务
netstat -atunp | grep :67 //查看dhcp服务端口
systemctl enable dhcpd.service //配置随开机自启动
systemctl is-enabled dhcpd.service //查看
grep dhcpd /var/log/message | tail -20 //查看日志,用于排错
客户端测试
3.配置TFTP服务
yum -y install tftp-server //安装tftp服务
vim /etc/xinetd.d/tftp //编辑tftp配置文件
把disable的值改为no,即 disable = no 修改配置文件
systemctl start xinetd.service //启动tftp服务
netstat -atunp | grep :69 //查看tftp端口
systemctl enbale xinetd.service //配置随开机启动
systemctl is-enabled xinetd.service //查看是否开机自启
4.准备PXE安装源文件
mkdir /var/ftp/rhel7
mount | grep iso //查看rhel7镜像挂载在哪里,默认挂载在/run/media/root/RHEL-7.0 Server.x86_64
cp -rf /run/media/root/RHEL-7.0 Server.x86_64/* /var/ftp/rhel7/ //把镜像的全部内容复制到ftp目录下的rhel7
du -sh /var/ftp/rhel7 //查看复制后的文件夹大小
5.将内核文件vmlinuz、初始化镜像文件initrd.img放到tftp的根目录(/var/lib/tftpboot/)下
cp /var/ftp/rhel7/images/pxeboot/vmlinuz /var/lib/tftpboot //复制内核文件vmlinuz到tftp根目录下
cp /var/ftp/rhel7/images/pxeboot/initrd.img /var/lib/tftpboot //复制初始化镜像文件initrd.img到tftp根目录下
6.将引导文件pxelinux.0复制到tftp根目录下
yum -y install syslinux //安装此程序用于生成引导文件pxelinux.0
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot //复制引导文件pxelinux.0到tftp的根目录下
7.配置kickstart实现无人值守安装
yum -y install system-config-kickstart //安装kickstart程序
打开kickstart程序配置安装选项,然后保存ks.cfg文件用于无人值守安装系统
vim /var/ftp/rhel7/ks.cfg //修改ks.cfg文件,并追加如下内容
eula --agreed
8.在tftp根目录下建立启动菜单文件
vim /var/lib/tftpboot/pxelinux.cfg/default //在tftp根目录下创建启动菜单文件
default auto
prompt 0
label auto
kernel vmlinuz
append ks=ftp://192.168.43.43/rhel7/ks.cfg initrd=initrd.img inst.repo=ftp://192.168.43.43/rhel7
 
有人值守的配置方法:
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.43.43/rhel7
 
9.测试
添加虚拟机,配置为与dhcp服务器相同网段,即可实现无人值守自动装系统
 
 
配置iSCSI服务器

ISCSI target端配置:
1.安装软件
yum -y install targetcli
2.启动服务
systemctl start target //启动服务
systemctl enable target //配置服务随开机启动
3.配置防火墙放行
firewall-cmd --permanent --add-port=3260/tcp //放行3260端口
firewall-cmd --reload //重启firewall
4.使用targetcli 进入交互模式
/> cd /backstores/block/ //进入block目录
/backstores/block> create server1 /dev/sdb3 //将/dev/sdb3创建为后端存储
/backstores/block> cd /backstores/fileio/ //进入fileio目录
/backstores/fileio> create file1 /root/disk1_file 100M //提供一个100M的文件为存储资源
/backstores/fileio> cd /iscsi/ //进入iscsi目录
/iscsi> create iqn.2015-10.com.rhel:server1 //创建一个提供服务的名称,这时在名称下会自动生成tpg1目录
/iscsi> cd iqn.2015-10.com.rhel:server1/tpg1/acls/ //进入acls目录
/iscsi>iqn2015...ver1/tpg1/acls> create iqn.2015-10.com.rhel:desktop //创建允许访问本地的iscsi设备的名称
/iscsi/iqn2015...ver1/tpg1/acls> cd ../luns/ //进入luns目录
/iscsi/iqn2015...ver1/tpg1/luns> create /backstores/block/server1 //将快设备server1加入到luns
/iscsi/iqn2015...ver1/tpg1/luns> create /backstores/fileio/file1 //将文件设备file1加入到luns
/iscsi/iqn2015...ver1/tpg1/luns> cd ../portals/ //进入portals目录
/iscsi/iqn2015...ver1/tpg1/portals> create 192.168.43.43 //配置本地监听的IP和端口,默认端口3260
/iscsi/iqn2015...ver1/tpg1/portals> cd / //回到/目录
/> saveconfig //保存配置
5.重启服务
systemctl restart target

ISCSI initiator端配置:
6.安装软件
yum -y install iscsi-initiator-utils
7.编辑本地iscsi名称文件,修改为服务器定义的名称
vim /etc/iscsi/initiatorname.iscsi //编辑iscsi文件
InitiatorName=iqn.2015-10.com.rhel:desktop
systemctl restart iscsid //重启iscsi服务
8.发现iscsi设备
iscsiadm -m discovery -t st -p 192.168.43.43
192.168.43.43:3260,-1 iqn.2015-10.com.rhel:server1
9.登陆iscsi设备
iscsiadm -m node -T iqn.2015-10.com.rhel:server1 --login
10.查看是否增加了一块磁盘
fdisk -l
11.对新增的磁盘进行分区
fdisk /dev/sdc
12.格式化新增加的磁盘
mkfs.xfs /dev/sdc1
13.查看新增磁盘的UUID
blkid /dev/sdc1
14.配置网络正常时自动挂载
mkdir /iscsi //创建挂载点
vim /etc/fstab //编辑fstab文件
UUID=971cba16-2ec6-40b3-a68e-c9538d0b3f9e /iscsi xfs defaults,_netdev 0 0
15.挂载
mount /iscsi
16.查看大小
df -Th
 
 
 
配置FTP服务器
服务器端:vsftpd
客户端:ftp
 
 
 
default auto
prompt 1
label auto
kernel vmlinuz
append initrd=initrd.img inst.repo=ftp://192.168.43.43/rhel7
 
 
 
基本磁盘管理
1.分区 fdisk /dev/sdb
/dev/sdb 40G //磁盘总大小
/dev/sdb1 10G //创建磁盘主分区
30G -------扩展分区 //扩展分区大小
/dev/sdb5 2G //第一个逻辑分区大小
/dev/sdb6 10G //第二个逻辑分区大小
2.格式化
mkfs.ext4 /dev/sdb1 mkfs.ext4 /dev/sdb6 //格式化分区并选择类型
mkswap /dev/sdb5
3.挂载
mount /dev/sdb1 /tools
4.用sdb5 扩充交换分区
swapon /dev/sdb5
5.查看交换分区的情况
free -m | grep -i swap
6.使用
ll /tools
7.查看使用情况
df -Th /tools
8.不使用,就需要卸载
mount /tools (卸载时要退出挂载点,否则会提示目标忙)

RAID配置与管理
RAID0:需要至少两块(含)硬盘,可以有效的提高硬盘的性能和吞吐量,但没有数据的冗余和错误修复能力。 将多块硬盘通过硬件或软件的方式串联在一起,成为一个大的卷集,将数据依次写入到各个硬盘中,这样性能会极大提升,但若任意一块硬盘故障则整个系统的数据都会受到破坏。
 
RAID1:需要至少两块(含)硬盘,可以有效的提高数据资料的安全性和可修复性,但成本却提高了。 实现原来是在数据写入硬盘时也会在另外一块闲置的硬盘上生成镜像文件,在不影响性能的情况下最大限度保证数据资料的可靠性,只要在一对镜像盘中还有一块硬盘可以使用,那么数据也不会丢失,具有很好的硬盘冗余能力,虽然对数据来讲绝对的安全,但成本却明显增加,磁盘利用率仅为50%。
 
RAID5:需要至少三块(含)硬盘,兼顾存储性能、数据安全和储存成本。
如下图所示"parity"块中保存的是其他硬盘数据的奇偶校验信息(并非其他硬盘的数据),以数据的奇偶校验信息来保证数据的安全,RAID5不以单独的硬盘来存放数据的奇偶校验信息,而是保存在各个磁盘上。
这样当任何一个硬盘损坏都可以根据其他硬盘上的奇偶校验信息来尝试重建损坏的数据,性能也很高,兼顾了存储性能、数据安全和存储成本,可以看作是RAID0与RAID1的折中方案。
 
 
RAID10:需要至少四块(含)硬盘,兼具速度和安全性,但成本很高。
继承了RAID0的快速与RAID1的安全,RAID1在这里提供了冗余备份的阵列,而RAID0则负责数据的读写阵列。因这种结构的成本高,一般用于存放要求速度与差错控制的数据。
 
mdadm命令用于管理系统软件RAID硬盘阵列,格式为:"mdadm [模式] <RAID设备名称> [选项] [成员设备名称]"。
mdadm管理RAID阵列的参数有:
参数 作用 -a 检测设备名称 -n 指定设备数量 -l 指定raid级别 -C 创建 -v 显示过程 -f 模拟设备损坏 -r 移除设备 -Q 查看摘要信息 -D 查看详细信息 -S 停止阵列
1.使用mdadm命令创建RAID10,名称为/dev/md0
mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
2.格式化并挂载使用
mkfs.xfs /dev/md0 //格式化
mkdir /RAID //创建挂载点
mount /dev/md0 /RAID //挂载文件系统
df -h //查看大小
3.设置重启后自动挂载
vim /etc/fstab
/dev/md0 /RAID xfs defaults 0 0

逻辑卷管理 (物理卷<卷组<逻辑卷)
物理卷(PV):整个磁盘设备或者fdiak命令建立的硬盘分区
卷组(VG):由一个或多个物理卷(PV)组成的整体
逻辑卷(LV):从卷组(VG)中切割出的空间来用于创建文件系统,大小由PE的个数决定
 
 
功能/命令 物理卷管理 卷组管理 逻辑卷管理 扫描 pvscan vgscan lvscan 建立 pvcreate vgcreate lvcreate 显示 pvdisplay vgdisplay lvdisplay 删除 pvremove vgremove lvremove 扩展 vgextend lvextend
注意:先用fdisk /dev/sdb /dev/sdc 创建两个普通分区,然后把类型设置成8e
1.PV物理卷
pvcreate /dev/sdb1 /dev/sdc1 //创建物理卷,格式:pvcreate 设备名 设备名
pvscan //查看物理卷
pvdisplay /dev/sdb1 //查看物理卷详细信息
2.VG卷组
vgcreate mail_store /dev/sdb1 /dev/sdc1 //创建卷组,格式:vgcreate 卷组名 设备名 设备名
vgscan //查看卷组
vgdisplay mail_store //查看卷组详细信息
3.LV逻辑卷
lvcreate -L 50G -n mail mail_store //在名为mail_store的卷组中创建大小为50G的逻辑卷,并命名为mail,这样就创建了块设备/dev/mail_store/mail ;格式:lvcreate -L 大小 -n 逻辑卷名 卷组
4.格式化逻辑卷
mkfs.ext4 /dev/mail_store/mail //格式逻辑卷mail
5.挂载逻辑卷
mount /dev/mail_store/mail /tools
6.查看使用情况
df -Th /tools/
7.不损坏数据的情况下,扩展空间到70G
umount /tools //扩展前一定要先卸载
lvextend -L 70G /dev/mail_store/mail //扩展逻辑卷大小到70G,但是逻辑卷大小没更新
8.检查磁盘完整性,重置硬盘容量
e2fsck -f /dev/mail_store/mail //检查磁盘完整性
resize2fs /dev/mail_store/mail //重置硬盘容量
mount /dev/mail_store/mail /tools //重新挂载使用

不损坏数据的情况下,扩展10G
9.比作刚买入的物理磁盘,然后用fdisk /dev/sdd 创建分区,设置类型8e
fdisk /dev/sdd //创建普通分区并设置类型为8e
10.创建物理卷
pvcreate /dev/sdd1 //创建物理奖/dev/sdd1
11.扩展卷组大小
vgextend mail_store /dev/sdd1 //增加卷组的大小
12.查看卷组的大小
vgdisplay mail_store
13.扩张逻辑卷大小,增加10G
lvextend -L +10G /dev/mail_store/mail //增加逻辑卷大小,格式:lvextend -L 大小 逻辑卷名
14.LV分区重设大小
e2fsck -f /dev/mail_store/mail //检查磁盘完整性
resize2fs /dev/mail_store/mail //重置硬盘容量
15.查看扩展后的大小
df -Th /tools/ //查看大小

现在有一个磁盘损坏了,需要减少逻辑卷的空间到75G
16.卸载逻辑卷
umount /dev/mail_store/mail
17.检查文件系统的完整性
e2fsck -f /dev/mail_store/mail
18.将逻辑卷减小到75G
resize2fs -f /dev/mail_store/mail 75G
19.使用lvreduce命令将文件系统调整为75G
lvreduce -L 75G /dev/mail_store/mail
20.重新挂载文件系统
mount /dev/mail_store/mail /mailbox
21.查看容量大小
df -Th /mailbox

卷组也可以减少到80G
22.卷组减少到80G
vgreduce mail_store /dev/sdd1
23.查看卷组
vgdisplay mail_store
24.移除sdd1
pvremove /dev/sdd1

创建逻辑卷快照来备份数据
25.创建快照
lvcreate -L 150M -s -n SNAP /dev/mail_store/mail //对mail_store卷组的mail逻辑卷做一个名称叫SNAP而大小为150M的逻辑卷快照
lvs //查看逻辑卷和快照的信息
umonut /tools //卸载文件系统
lvconvert --merge /dev/mail_store/SNAP //恢复SNAP逻辑卷快照内容
lvs //已经查看不到快照信息,快照恢复一次后会被自动删除
mount /dev/mail_store/mail /tools //重新挂载文件系统

文件系统配额quota
1.启用文件系统配额
vim /etc/fstab
/dev/mail_store/mail /mailbox xfs defaults,usrquota,grpquota 0 0
2.重启主机后即可生效
reboot //重启
mount /mailbox //挂载系统文件
mount | grep mailbox //查看是否多了三个配额参数
3.创建用户测试
useradd qu1
passwd qu1
4.使用xfs_quota命令设置对qu1用户在/mailbox目录的磁盘配额
xfs_quota -x -c \'limit bsoft=3m bhard=6m isoft=3 ihard=6 qu1\' /mailbox
5.查看当前/mailbox目录上的配额限制
xfs_quota -x -c report /mailbox
6.编辑用户的配额限制
edquota -u qu1 //编辑用户qu1的配额限制
7.开启或关闭配额功能
quotaon -ugv /dev/mail_store/mail
quotaoff -ugv /dev/mail_store/mail 关闭配额功能
7.验证
先设置挂载点的权限
chmod 777 /mailbox
切换到qu1用户,并进入挂载点/mailbox
su - qu1
cd /mailbox
使用mkdir或dd创建文件
dd if=/dev/zero of=myfile bs=10M count=120
查看是否警告
8.查看具体使用情况
repqouta -ug /mailbox/
 
 
Shell脚本编程
没有执行权限时,用bash 脚本名 , . 脚本名
有执行权限时,用 ./脚本名
 
 
 
配置NFS文件服务器
服务器端:
1.安装服务
yum -y install nfs-utlis //RHEL7默认已安装
2.创建共享目录
mkdir /nfsfile //创建共享目录
echo "welcome to nfsfile here " > /nfsfile/readme //写入一个新文件到共享目录
3.配置权限
chmod a+rw /nfsfile //文件的系统权限要和共享权限进行比较,以安全性较高的为准
4.编辑要共享的文件和权限
vim /etc/exports
/nfsfile 192.168.12.*(rw,sync) //格式:共享文件的路径 共享网段(权限)
5.启动NFS服务端
systemctl restart rpcbind //NFS服务依赖于RPC服务,所以要启动RPC服务
systemctl restart nfs-server //启动NFS服务
systemctl enable nfs-server //配置随开机启动
客户端:
6.安装服务
yum -y install nfs-utlis //RHEL7默认已安装
7.查询远程NFS服务器的共享资源
showmount -e 192.168.12.12 //showmount [参数] [远程主机]
//-a 显示本机挂载的NFS资源情况
8.创建本地挂载目录
mkdir /nfsfile //创建本地挂载目录
mount -t nfs 192.168.12.12:/nfsfile /nfsfile //挂载
9.配置开启自动挂载
vim /etc/fstab
192.168.12.12:/nfsfile /nfsfile nfs defaults 0 0
 
 
配置samba服务器
1.安装服务
yum -y install samba
2.修改配置文件
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak //简化配置文件
cat /etc/samba/smb.conf.bak | grep -v "#" | grep -v ";" | grep -v "^$" > /etc/samba/smb.conf //过滤简化配置文件
vim /etc/samba/smb.cof //修改配置文件
[global]
Hoast allow = 192.168.12. //配置允许网段
[sambafile]
comment = samba share file
path = /sambafile
public = no
writable = no
writable list = s1
read only = yes
directory mask = 0700
create mask = 0600
3.创建共享文件
mkdir /sambafile
4.添加用户
useradd s1
smbpasswd -a s1 //添加tom为samba用户
smbpasswd -a root
5.重启服务
systemctl start smb nmb //重启服务
systemctl enable smb nmb //配置随开机启动
firewall-cmd --permanent --add-server=samba //防火墙放行
netstat -atunp | grep mbd //查看端口(139,138,137,445)
6.windows客户机挂载
\\192.168.12.12 //进入samba登陆界面,可用C:/net use * /del 清楚缓存
7.linux客户机挂载
yum -y install cifs-utils //安装cifs服务
mkdir /smbfile //创建挂载点
mount -o username=s1 //192.168.12.12/sambafile /smbfile //以s1的身份挂载到本地目录
 
小结:
1.选项read only = NO ,是否能写,就只受系统权限控制,valid users 和 write list 的选项都一样,如果目录权限是777,只要能访问的用户就能写入。
2.选项read only = YES ,是否能写,就受系统权限、valid users和write list 的选项同时控制,如果目录权限是777,只有write list 选项的用户可写,valid users选项的用户只读。
 
 
配置ftp服务器
1.安装服务
yum -y install vsftpd
2.修改配置文件
(匿名登录)
vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES //允许匿名登陆
anon_umask=022 //匿名上传文件的默认权限
anon_upload_enable=YES //允许匿名上传文件
anon_root=/var/vsftp //匿名访问的路径,默认为/var/ftp
anon_mkdir_write_enable=YES //允许匿名创建目录的写入权限
anon_other_write_enable=YES //允许匿名有改名,覆盖,删除的权限
listen_ipv6=YES //独立监听ftp进程(ipv4 and ipv6)
anon_max_rate=0 //限制传输速率
注意1:配置完匿名访问的路径后,要检查该目录的系统权限,应该有写入(w)的权限,否则匿名用户不能上传文件,或者把匿名访问的目录所有者设置为ftp用户(一般不推荐)。
注意2:“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”,如果提示这个错误,就应该把用户的默认目录写权限(w)去掉。
(本地用户登录)
local_enable=YES //是否允许本地用户登录
local_umask=022 //设置本地用户的默认上传文件权限
local_root=/var/vsftp //设置本地用户登录的目录,默认在用户的宿主目录
chroot_local_user=YES // 是否把本地用户禁锢在宿主目录(启用此参数后可能会报错“500 OOPS: vsftpd: refusing to run with writable root inside chroot()”如果报错,不能登录,就追加如下行:allow_writeable_chroot=YES,加入个参数后就不用把宿主目录的写权限去掉了。)
(虚拟用户登录)
cd /etc/vsftpd/ //进入目录
vim vuser.list //创建虚拟用户数据库(即虚拟账号和密码)
db_load -T -t hash -f vuser.list vuser.db //使用db_load命令用hash算法生成ftp数据库文件vuser.db
chmod 600 vuser.db //把数据库文件权限改小一点
useradd -d /var/ftproot -s /sbin/nologin virtual //创建虚拟账号对应的本地账号
chmod -Rf 755 /var/ftproot/ //修改权限,让其他用户可以访问
vim /etc/pam.d/vsftpd.vu //编辑PAM认证文件(追加如下)
auth required pam_userdb.so db=/etc/vsftpd/vuser
accountrequired pam_userdb.so db=/etc/vsftpd/vuser
vim /etc/vsftpd/vsftpd.conf //修改配置文件
anonymous_enbale=NO //禁用匿名模式登录
anonymous_mkdir_write_enable=NO // 禁用匿名模式创建目录,因为虚拟用户的权限也受这个控制,如果需要此权限则应该在/etc/vsftpd/vusers_dir/下创建相应用户名的文件并写入需要的权限
anonymous_other_write_enable=NO //禁用匿名模式的修改,重命名,删除等权限,因为虚拟用户的权限也受这个控制(虚拟用户的权限由这两者相加)
anonymous_upload_enable=NO //禁用匿名模式的上传权限,同上
local_enable=YES //必须允许本地用户登录,因为虚拟用户需映射本地用户
guest_enable=YES //开启虚拟用户登录
guest_username=virtual //配置虚拟用户映射的本地用户名
pam_service_name=vsftpd.vu //配置对应的pam认证文件
allow_writeable_chroot=YES //允许禁锢的FTP根目录可写而不拒绝用户登入请求
user_config_dir=/etc/vsftp/vusers_dir //指定虚拟用户独立权限配置文件的存放目录
mkdir /etc/vsftpd/vusers_dir/ //创建独立用户权限配置文件目录
cd /etc/vsftpd/vusers_dir/ //进入目录
touch ftp1 //创建ftp1虚拟用户的权限配置文件,文件名需与用户名相同
touch ftp2
vim ftp1 //编辑虚拟用户ftp1的独立权限
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
3.启动服务
systemctl restart vsftpd.serivce //启动服务
systemctl enable vsftpd.service //设置服务随系统自启动
4.配置SELinux
chcon -Rt public_content_t /var/ftproot
setsebool -P ftpd_full_access on

实现虚拟用户与本地用户都能使用FTP服务器
4.修改配置文件
vim /etc/vsftpd/vsftpd.conf //修改ftp配置文件
pam_service_name=vsftpd //修改成这样
#guest_enable=YES //注释掉
#guest_username=virtual //注释掉
5.修改PAM认证文件
vim /etc/pam.d/vsftpd //进入修改
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
改成
authsufficient pam_userdb.so db=/etc/vsftpd/vuser
auth sufficient pam_userdb.so db=/etc/vsftpd/vuser
6.在每个虚拟用户的独立权限配置里加入如下行
vim /etc/vsftpd/vusers_dir/ftp1 //进入编辑独立权限配置文件,每个用户都不同
guest=YES
guest_username=virtual
 
 
 
cp 命令的使用技巧
cp (选项)(参数)
选项:
-a 此参数效果等同于指定”-dpR“
-f 强行复制文件或目录
-R/r 递归处理
-p 保留源文件或目录的属性
参数:
源文件
目标文件

tar 命令的使用技巧
tar(选项)(参数)
选项:
-c //创建压缩文件
-x //加压压缩文件
-v //显示执行过程
-f<备份的文件名> //指定备份文件,即所创建备份的文件名
-z //通过 gzip 指令处理压缩文件(.gz)
-j //通过 bzip2 指令处理压缩文件(.bz2)
-J //通过 xz 指处理压缩文件(.xz)
-P //文件名使用绝对路径,不移除文件名钱的 / 号
参数:
文件或目录(指定要打包的文件或者目录)

scp 命令的使用技巧(需要SSH支持)
csp(选项)(参数)
选项:
-1 //使用ssh1
-2 //使用ssh2
-4 //使用ipv4
-6 //使用ipv6
-P //指定远程主机的端口号
-r //以递归方式复制,即可以复制目录
参数:
源文件(指定要复制的源文件)
目标文件(格式为user @host :filemane)
实例:
scp root@192.168.43.43:/home/hkj123/nes.cc /opt/ //从远处复制到本地
scp -r /opt/ root@192.168.43.43:/opt //从本地上传目录到远程机器指定目录中

rsync 命令的使用技巧(rsync只传输不同的部分)(需要SSH支持)
语法:
rsync 选项 源文件 目标文件
1.本地拷贝文件
2.本地机器拷贝到远程机器(目标文件地址加:)
3.远程机器拷贝到本地机器(源文件地址加:)
4.rsync服务器拷贝到本地机器(源文件地址加::)
5.本地机器拷贝到rsync服务器(目标文件加::)
6.列远程机的文件列表(rsync://192.168.43.43/www)
选项:
-v //详细模式输出
-a //归档模式,以递归方式传输文件并保持文件属性,等效于-rlptgoD
-r //递归处理
-R //使用相对路径
-p //保持稳健权限
-g //保持文件属组信息
-o //保持文件属主信息

at 命令的使用技巧
at(选项)(参数)
选项:
-f //指定包含具体指令的任务文件
-q //指定新任务的队列名称
-l //显示待执行任务的列表
-d //删除指定的待执行任务
参数:
时间日期
例子:
at 5pm+3 days //三天后的下午5点执行
atq //查看待执行任务
atrm 队列数 //删除已设置的任务

crontab 命令的使用技巧
crontab(选项)(参数)
选项:
-e //编辑该用户的计时器设置
-l //列出该用户的计时器设置
-r //删除该用户的计时器设置
-u<用户名称> //指定要设定计时器的用户名称
参数:
crontab文件
实例:格式
分 时 日 月 周 命令(可以是系统命令,也可以脚本文件)

userdel 命令的使用技巧
userdel(选项)(参数)
选项:
-f //强制删除用户
-r //输出用户的相关文件
参数:
用户名

wc 命令的使用技巧
wc(选项)(参数)
选项:
-c //只显示Bytes数
-l //只显示列数
-w //只显示字数
参数:
文件