首页 > 代码库 > linux学习笔记8

linux学习笔记8

虚拟帐号的配置独立


因为了区分vip用户和普通用户的功能,所有对每个用户进行独立设置。

 

 

man5 vsftpd.conf

/config

 

技术分享



vim /etc/vsftpd/vsftpd.conf

#anon_upload_enable=YES     将此条注释,即为拒绝所有用户

 

user_config_dir=/etc/vsftpd/user-conf

 

mkdir -p /etc/vsftpd/user-conf

 

vim /etc/vsftpd/user-conf/westos1

anon_upload_enable=YES

 

westos1是VIP!!!!!可以上传文件


技术分享


westos2,为普通用户


技术分享

 

 

注意~~

 

 

553:本地文件系统,selinux不允许

550 服务本身不能,配置文件未作设定,文件或目录权限不够

530 密码,没有重启服务

 

 

复制是新建:在新目录下按照新目录的属性(安全上下文,权限等)

移动是重命名:保留原目录的属性

 

 

/ftpdir/westos1         家目录不能有写权限

 

chmod 775 /ftpdir/westos1/pub

chgrp ftp /ftpdir/westos1/pub

 

别忘了关selinux!!!

 

selinux

 

查看安全上下文

 

ls -Z

 

技术分享

 

?为没有加载,通常在selinux处于disable下,创建的文件,上下文会是这种情况。

 

 

技术分享


 

 

 

不同目录有不同的安全上下文

 

技术分享


ps axZ |grep vsftpd     查看vsftp进程的上下文信息:

touch /mnt/file

mv /mnt/file

lftp localhost

ls -Z /var/ftp/pub

 


若是强行移动/mnt 下的文件,到/var/ftp/pub下,使用lftp访问时,会因为上下文标签的不同而访问不到。

 

技术分享


刷新上下文标签

方法一:chcon -t public_content_t(只读)/var/ftp/pub -R(推荐)

方法二:restorecon /var/ftp/pub*

 

刷新文件的上下文


技术分享

 

刷新目录的上下文

 

将匿名用户lftp家目录改为/ftpdir

 

vim /etc/vsftpd/vsftpd.conf

anon_enable=YES

anon_root=/ftpdir

 

技术分享


chcon   -t  public_content_t    /ftpdir/    -R


技术分享


用chcon刷新的上下文标签,在重启selinux之后会失效。

 

要想永久改变上下文标签,用semanage!!

 

semanage fcontext -a -t public_content_t‘/ftpdir(./*)?‘

semanage fcontext -l | grep ftpdir

 

 

技术分享

 


将要修改的信息,加入semanage fcontext   列表后,重启selinux即可生效,但还要去/etc/sysconfig/selinux 中,先修改为disable   ,再修改为enforce,很麻烦~

 

所以我们用      restorecon-RvvF /ftpdir        重载列表的读取!

 

-R递归

vv显示目录和子目录配置详细信息

F flush

 

技术分享

 

 

semanage fcontext -d -t public_content_t‘/ftpdir(./*)?‘    删除


技术分享

 

 

通常情况下selinux会屏蔽服务本身功能(危险),和对文件执行(读写)。

 

 

下面这张截图,说明匿名用户不能上传文件,是selinux在作怪~~~


技术分享

 

当设置 setenforce 0时,selinux处于警告状态

只需要开启/etc/vsftpd/vsftpd.conf 中的anon_upload_enable=yes

就可以上传文件

 

当设置 setenforce 1时,selinux处于强制管理状态,就不能上传文件。

 

getseboot -a | grep ftp 查看selinux 对ftp的全部管理

 

技术分享


 

其中 ,ftpd_full_access ,是对ftp的总管理

 

技术分享

 

还需要设置:

getsebool -P ftpd_anon_write on

-P permanent

才可以完成文件的上传。

 

技术分享


 

技术分享





系统的恢复


本实验实验恢复环境为光盘模式,虚拟机和修复使用的光盘均为rhel7.0

 

技术分享

 

修复模式启动时,状态如图

 


技术分享


技术分享

 


 

技术分享


技术分享


技术分享






在使用时,需要先挂载光盘。然后进入Packages,就能得到你想要的东西啦~

 

技术分享

 

1.系统启动流程

 

 

 

                            通电

                            ||

bios(主板上的只读存储中,basic input or outputsystem)

作用,硬件检测,激活硬件

                             ||

grup系统引导(grub引导分为两个阶段)

 

 

1)阶段1 mbr (主引导记录)主引导记录在硬盘上的0磁道,一扇区,446个字节

*)dd if=/dev/zero of=/dev/vda bs=446count=1 可以清空mbr

*)进入挽救模式,执行chroot /mnt/sysimage切换到真实环境,

并执行grub2-install /dev/vda

 

 

 

2)阶段2 grub文件引导阶段(/boot/grub2/grub.cfg)

找到/boot分区

读取/boot/grub2/grub.cfg

文件丢失,grub2-mkconfig > /boot/grub2/grub.cfg




技术分享


技术分享



 

手动引导流程

 

技术分享

 

 

如果丢失的是windos的引导文件,则如下图手动引导


 

技术分享

 

        ||

启动内核,只读挂载/设备

检测设备

对设备驱动进行初始化

进入系统初始化阶段

内核丢失,重新安装内核安装包就能解决

rpm -ivh kernel-xxx.rpm –force

 

技术分享


 

现在缺少vmlinz-3.10.0.123.el7.x86_64

进入光盘的Packages

 

执行rpm2cpio kernel-3.10.0.123.el7.x86_64.rpm | cpio–id???????

 

 

 

技术分享

 

得到一个boot目录。

执行 cp boot/vmlinz-3.10.0.123.el7.x86_64 /boot/vmlinz-3.10.0.123.el7.x86_64

修复完成~~~~


技术分享

    ||

 

系统初始化阶段

系统初始化阶段加载initrd镜像

 

开启初始化进程systemd

开始selinux

加载内核参数

初始化系统时钟,键盘,主机名称

重新读写挂载/设备

激活raid,lvm

激活配额

启动multi-user.target.wangs中的所有服务

开启虚拟控制台

启动图形

 

 

 

如果initrd镜像不慎丢失

 


技术分享


 

 

可以用mkinitrd 命令,让我们来man 一下他的用法!


 

技术分享

 

执行mkinitrd    /boot/initramfs-`username-r`.img   ``username -r`

 

修复完成~~~~


技术分享

 

 

 

删除整个boot分区,启动如图:


技术分享

 

 

恢复如图

1)内核丢失,重新安装内核安装包就能解决

rpm -ivh kernel-xxx.rpm –force

 

技术分享

 

安装完内核,/boot分区下出现了这么多文件,但还缺少/boot/grub2/grub.cfg!!!

 

技术分享

 

恢复/boot/grub2/grub.cfg!!!!

grub2-mkconfig>/boot/grub2/grub.cfg

 

技术分享

 

 

最后查看一下/boot分区里的东西和原来是不是都一样~~~

 

技术分享

 

技术分享

 

WOW,恢复大业完成!!!

 

 


开机服务自启是什么幺蛾子

系统初始化阶段加载initrd镜像开启初始化进程system

加载服务!!!

 

 

开机自启服务,以sshd服务为例

 

开机自启是因为存在链接文件,etc/systemd/system/multi-user.target.wants/sshd.service

 

 

执行systemctl enable sshd,实际上是执行

 

ln  -s  /usr/lib/systemd/system/sshd.service/etc/systemd/system/multi-user.target.wants/sshd.service

 

执行systemctl disable sshd,实际上是执行

rm -rf/etc/systemd/system/multi-user.target.wants/sshd.service

 

 

技术分享

 



defablt.target  为开机系统启动级别


系统初始化阶段加载initrd镜像开启初始化进程systemd

加载开机系统启动级别!!!


 

默认情况下

/etc/systemd/system/default.target

链接/usr/lib/systemd/system/graphical.target(图形)

 

 

现在把它链接到reboot,系统就处于一直自启状态

 

ln -s  /usr/lib/systemd/system/reboot.target /etc/systemd/system/default.target


 

技术分享

 

修复方法:

 

在开机时,press e之后编辑如下

linux16   .....rw rd.break


 

技术分享

 

press Ctrl-x 进入一个shell,载chroot /sysroot 进入真实root分区

 

rm -rf /etc/systemd/system/default.target

ln  -s  /usr/lib/systemd/system/graphical.target

/etc/systemd/system/default.target

 

exit *2


技术分享




如果忘记了root密码怎么办?


系统初始化时,加载initrd镜像时,认证密码。


 

在开机时,press e之后编辑如下

linux16   .....rw rd.break

 

技术分享



press Ctrl-x 进入一个shell,载chroot /sysroot 进入真实root分区

 

passwd

touch ./autorelabel重新建立认证识别,更新新的密码

exit *2

 

技术分享




 

DNS高速缓存

客户端

vim /etc/resolv.conf

nameserver 172.25.254.130


技术分享

服务器

yum install bind -y

 

若是装完立即开启服务,则会出现服务开启缓慢

这是因为系统在捕捉加密字符

动动鼠标和键盘都会产生加密字符

 

cat /dev/random可以查看已产生的加密字符


技术分享

 

加密字符的key在/etc/rndc.key


技术分享

 

 

未配置服务时的端口情况:只有本地的53端口开着。

回环接口(127.0.0.1):本机服务之间的通信


技术分享


netstat -antulpe       |grep named查看name所占的端口号

a all

n numeric????

t tcp

u udp

l listening

p progress 进程

e extend    拓展

 

 

开始配置服务器!!!!!

 

对防火墙的设置

 

firewall-cmd --permanent --add-service=dns

firewall-cmd –reload

 

技术分享

 

 

vim /etc/named.conf

11  listen=onport 53 {any};    设定端口开放,表示所有interface都开

17  allow-query{any;};回答所有人的提问

18  forwarders{172.25.254.250;};   缓存谁的答案

32  dnssec-validationno;   网络上的网警。。。

 

技术分享

 

 

技术分享

 

 

检验


客户端:dig www.taobao.com

 

第一次访问很慢,但之后访问都特别快!!!!!!!

 

技术分享

 

@qq.com:域名

mail@qq.com:主机名

 

域名是DNS,A记录文件

 

正向解析 把域名变成ip

vim /etc/named.conf

 

11  listen=onport 53 {any};    设定端口开放,表示所有interface都开

17  allow-query{any;};回答所有人的提问

32  dnssec-validationno;   网络上的网警。。。


 

技术分享


在/etc/named.conf的末尾指引我们去下一级文件: 


技术分享


 

vim /etc/named.rfc1912.zones


技术分享

 


cp -p /var/named/named.localhost/var/named/westos.com.zone

-p  将权限也一起复制过来

 

vim /var/named/westos.com.zone  蓝色的文件为A记录


技术分享

 

文件里不以.结尾,就以@结尾,@为westos.com

 


技术分享

轮询机制

vim /var/named/westos.com.zone


技术分享

 

效果为172.25.254.101和172.25.254.102交替出现。


技术分享


技术分享

 

 




MX 用于名称的邮件交换器(向何处发送电子邮件)

 

 

vim /var/named/westos.com.zone

westos.com.MX 1    172.25.254.100.

技术分享

 


检验:

dig-t mxwestos.com


技术分享

   

mail root@westos.com

crtl+d 结束输入

 

 

mailq  可以查看westos.com邮件交换器的IP!!!


技术分享

 

 





CHAME     名称至规范名称(包含A/AAAA记录的另一个名词)

 

vim /var/named/westos.com.zone


技术分享


效果如图:


技术分享

 

反向解析

vim /etc/named.conf

设置同正向解析。

vim /etc/named.rfc1912.zones


技术分享


cp -p /var/named/named.loopback/var/named/westos.comNaNr

 

vim /var/named/westos.comNaNr


技术分享

 

验证

技术分享

 

 

 



双向解析:不同ip访问同一个地址,得到不同的解析


本例为:desktop:172.25.254.10, dig www.westos.com得到的解析为172.25.254.102

其他用户 dig www.westos.com  得到的解析为172.25.0.102

 

 

man 5 named.conf

/view


技术分享

 

 

 

vim /etc/named.conf


技术分享

 


cp –p /etc/named.rfc1912.zones     /etc/named.rfc1912.zones.inter

vim /etc/named.rfc1912.zones.inter

 

技术分享

 

 

cp –p /var/named/westos.com.zone   /var/named/westos.com.zone.inter

vim /var/named/westos.com.zone.inter


技术分享

 

 

验证


desktop:172.25.254.10, dig www.westos.com得到的解析为172.25.254.102/101




技术分享


 

其他用户 dig www.westos.com  得到的解析为172.25.0.102/101



技术分享


本文出自 “12049878” 博客,谢绝转载!

linux学习笔记8