FTP安全设置:
用户控制:
ftp用户控制的两个文件:
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
参数设置/etc/vsftpd/vsftpd.conf
/etc/vsftpd/ftpusers相当于一个黑名单,这里显示的用户不能登录ftp
如果想让某一个用户不能登录ftp,直接把用户名添加到/etc/vsftpd/ftpusers
/etc/vsftpd/user_list 这个中的用户可变的,这个文件要起作用,
必须userlist_enable=YES 参数设置为可为YES
userlist_deny 设置这个参数
YES:/etc/vsftpd/user_list相当与黑名单,即里面设置用户不允许登录。
NO:/etc/vsftpd/user_list相当与白名单,即里面设置用户允>许登录。
/etc/vsftpd/ftpusers和/etc/vsftpd/user_list两者之间冲突(一个用户两个文件中都有),以 /etc/vsftpd/ftpusers为准。
------------------------------------------
IP地址限制:
# vim /etc/vsftpd/vsftpd.conf
tcp_wrappers=YES 启动TCP wrappers控制
tcp_wrappers的两个控制文件:
/etc/hosts.allow 表示允许访问列表
/etc/hosts.deny 表示不允许访问列表
# vim /etc/hosts.allow 允许某一个IP登录
vsftd:2.2.2.128 2.2.2.111
服务器 允许访问的IP列表
# vim /etc/hosts.deny 不允许登录
vsftpd:all 不允许所有IP登录
/etc/hosts.allow和/etc/hosts.deny的工作流程:
用户登录过来的时候,首先看是否在/etc/hosts.allow中(被允许登录的用户),如果这个名单中允许的IP,就直接登录,跳过所有的判断,如果不在/etc/hosts.allow中,看是否在/etc/hosts.deny文件中,如果在就不允许登录。
-------------------------------------------------------
优化与限制:
修改配置文件的参数:#vim /etc/vsftpd/vsftpd.conf
local_max_rate=102400 限制本地用户最大传输速度
anon_man_rate 限制匿名用户最大传输速度
max_clients=5 同时链接的客户数
max_per_ip=5 单个用户的最大连接数
------------------------------------------------------------
http:
超文本传输协议(http)也是一种通讯协议
是目前使用最广泛的WEB服务器软件
------------------------------------
安装软件:
yum install httpd*
yum reinstall httpd*
yum install httpd* -y
--------------------------------
服务器名:
httpd
---------------------------------
使用端口
80
---------------------------------
配置文件:
# vim /etc/httpd/conf/httpd.conf
---------------------------------
http如何共享文件
# vim /etc/httpd/conf/httpd.conf
不去分大小写的搜索: set ic
--------------
DocumentRoot "/ule" 修改为自己共享的文件目录
-------------------
-------------------
<Directory/ule>
Options FollowSymLinks Indexes 表示列表的方式显示
AllowOverride All
</Directory>
# vim /etc/httpd/conf.d/welcome.conf
<LocationMatch "^/+$">
Options Indexes 去掉Indexes前面的—
ErrorDocument403 /error/noindex.html
</LocationMatch>
重启服务:service httpd restart
注意:如何出现443之类的错误:
# vim /etc/httpd/conf.d/ssl.conf
把443改成其他值。
之后就可以访问了
把自己的IP解析成域名
#vim /etc/hosts
2.2.2.133 localhost.localdomain
---------------------------------------------------
多站点的实现:
多站点就是在一个服务器上,架载多个WEB站点,。叫做虚拟主机方式,
虚拟主机的实现方式:
基于IP的方式 基于端口的方式 基于域名的方式
采用基于域名一种方式实现多站点访问
# vim /etc/httpd/conf/httpd.conf
NameVirtualHost *:80 前面的注释去掉
<VirtualHost *:80>
ServerAdminwebmaster@uplooking.com 表示邮箱
DocumentRoot /ule 共享文件
ServerName www.uplooking.com 域名
ErrorLoglogs/uplooking.com-error_log 错误日志
CustomLoglogs/uplooking.com-access_log common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin webmaster@baidu.com
DocumentRoot /ule
ServerName www.baidu.com
ErrorLoglogs/baidu.com-error_log
CustomLog logs/baidu.com-access_logcommon
</VirtualHost>
客户端设置:
#vim /etc/hosts
添加一行:
2.2.2.133 www.uplooking.com
2.2.2.133 www.baidu.com
就是把www.uplooking.com解析到2.2.2.133
----------------------------------------------------
shell编程
shell是一个命令解释器,用于帧听用户输入的指令,并启动这些指令所启动的进程。
shell也是一种程序设计语言,他又变量、关键字、各种流程控制。
----------------------------
查看shell信息
ls /bin/*sh 查看所有的shell
echo $SHELL 查看本机支持的shell
----------------------------
bash的初始化过程:
从用户登录开始,用户一次执行的几个程序
/etc/profile->~/.bash_profile->~/.bashrc->/etc/bashrc
/etc:针对所有用户,每个用户启动的时候,都会启动这两个脚本
~:表示定义当前用户
例:
对配置文件输出一句话,切换用户看执行顺序。
---------------------------
用户退出执行文件
~/.bash_logout
------------------------------
用户的命令历史:
bash在工作的时候,会记录下用户输入的命令,共用户上下翻动查询,如果退出窗口后,会把这些命令保存起来,保存在~/.bash_history这个文件中
如何调用这些命令
1、方向键调用
2、ctrl+r
自动搜索历史命令,回车就可以执行,方向键进行修改
3、history 查看命令历史
!954 运行954号命令
!!: 运行最后一条命令
!-3:运行倒数第三条命令
!$: 最后一条命令的最后一个参数
与命令相关的文件:
vim /etc/profile
HISTSIZE=1000 内存中最大保留多少条命名
HISTFILESIZE=1000 历史文件中保留多少条命令
禁用历史命令:
方法一:HISTSIZE=0 内存没有,文件也就没有了。
方法二:rm~/.bsah_history
下次启动,会自动创建这个文件
---------------------------------------------
shell 变量
变量分类:
按作用域分:局部变量和环境变量
局部变量:
只在本shell中有效
环境变量:
在本shell及子shell中有效。
注意:在上级shell环境变量也不起作用。
-------------------------
显示环境变量:env
-----------------------------
变量定义:
定义局部变量:
变量名=值
定义环境变量:
export 变量名=值
-----------------------------
删除一个变量:
unset 变量名
------------------------------
查看所有的shell变量:
set
例:
echo $PS1 输出变量值
重新定义:PS1='[\u@\h \w \t]\$ '
\u:表示用户
\h:表示主机名
\W:表示当前路径
\w:表示绝对路径
\t:表示时间
参数在哪查找:man bash
输入/\/u /表示查找 \表示转义 /表示是参数
--------------------------------------------
变量取值:
$变量名
或者
${变量名}
用{}更安全两者之间的区别?
例: #a=apple
#echo "how are you" >$a_ode.txt 会产生.txt文件
并不是我们需要的结构
#echo "how are you" >${a}_ode.txt 则会产生apple_ode.txt
显示出我们需要的东西
#cat apple_ode.txt
则显示:howare you
---------------------------------------------
linux下的多条命令的执行:
1、无条件执行多条命令
命令之间用分号分割
mkdir a; touch b;cd /;ls
执行命令的时候,如果命令用()括起来,表示会在子shell中执行
cd /etc/xml;ls
(cd /etc/xml;ls)
()表示声明一个函数
例:
# aa() 函数声明
> {
> echo this is aa
> ls 函数体
> touch /test/ddd
> }
# aa 调用函数
------------------
2、有条件多命令执行
&&:前一个命令执行成功,才执行后一个命令
mkdir ff && ls 执行成功再执行后一个
ls /ttt && ls 执行不成功,后一个命令也不执行。
||:前一个命令执行不成功,才执行后一个命令
ls /ttt || ls
mkdir gg || ls
------------------
命令返回值
linux每执行一条命令的时候,都会有一个返回值,来表示该命令的执行状态,
获取返回值:echo$?
如果返回值为0:表示命令执行成功
不为0:表示执行不成功
返回给系统 exit
-------------------
命令执行的顺序:
;优先级最低
&& 和 ||具有相同的优先级,从左到右的顺序执行
()可以改变命令的执行顺序
--------------------------
运算符:
字符运算:
无需任何运算符,直接链接即可
例:
a="abc"
b="123"
echo $a$b
数值运算符:(linux不支持小数点运算)
$(())或者$[]
比较运算符
字符比较
= 等于
!= 不等于
\> 大于
\< 小于
-z string 字符是否为空(长度为0)
-n string 字符是否不为空(长度不为0)
数值比较:
等于 -eq
不等于 -ne
大于 -gt
大于等于 -ge
小于 -lt
小于等于 -le
文件测试:
-b file 文件是否存在,且是一个块设备文件
-c file 文件是否存在,且是一个字符设备文件
-d file 文件是否存在,且是一个目录
-e file 文件是否存在
-f file 文件是否存在,且是一个普通文件
-r file 文件是否存在,且当前用户可读
-w file 文件是否存在,且是可写
-x file 文件是否存在,且是可执行
-O file 文件是否存在,且当前用户为其属主
-G file 文件是否存在,且当前用户为其数组
-----------------------------------------------------
Linux服务 、shell基础(命令)
最新推荐文章于 2024-03-23 00:15:00 发布