第四章 源代码安装编译
8、源代码编译与安装
1)安装编译工具,先要配yum
查看gcc是否存在:gcc --version
查看make是否存在:make --version
2)安装yum仓库
vim /etc/yum.repos.d/server.repo
[base]
name=rhce
baserurl=file:///mnt
gpgcheck=0
挂载光盘
mount /devrom /mnt
3) 安装
yum -y install 包名 安装
yum -y remove 包名 卸载
rpm -qa vsftpd 查看
mount /dev/cdrom /mnt
yum -y install gcc
yum -y groupinstall "Development Tools"
yum -y install pcre-devel apr-devel apr-util-devel
获取源码包:httpd-2.4.29.tar
#配置apache2
tar -xf httpd-2.4.29.tar.bz2 -C /usr/local/ #解压
cd /usr/local-》ls-》cd httpd-2.4.29-》ls-》vim INSTALL
cd /usr/local-》ls-》httpd-2.2.29-》cd /httpd-2.2.29-》ls-》./configure --prefix=usr/local/apache2
make #编译
make install
cd /usr/local-》ls-》cd apache2-》cd conf-》vim httpd.conf-》搜/ServerName-》在第195行处输入ServerName localhost:80
保存退出后-》cd ../bin-》ls-》./apachectl restart
netstat -tunlp 或者 ss -tul #可查看服务是否已启动
vim /etc/profile.d/http.sh-》编辑上 export PATH=/usr/local/apache2/bin:$PATH 保存退出-》cd /etc/profile.d
. http.sh #运行起这个脚本
echo $PATH
此时,无论在哪个路径下,都可以直接启动这个脚本
apachectl stop
yum -y install elinks #安装一个浏览器
elinks http://localhost
按q就可以退出来了
9、用户高级权限-1
——访问控制列表(access control List)
setfacl设置和取消文件或目录的访问控制列表
setfacl -m [ u | g ]:[ user_name | group_name ]:permission [ file_name | dir_name ]
setfacl -x [ u | g ]:[ user_name | group_name ]:permission [ file_name | dir_name ]
#setfacl -m u:user1:rwx /tmp/file1 添加ACL权限
#setfacl -x u:user1 /tmp/file1 删除ACL权限
——getfacl查看文件或目录的访问控制列表
getfacl [ file_name | dir_name ]
#get /tmp/file1
——Default ACL 默认ACL
setfacl -d -m [ u | g ]:[ user_name | group_name ]:permission dir_name
取消目录的Default ACL权限,使用“-x”选项。
——chacl更改文件和目录的ACL或Default ACL属性
chacl -B [u| g]:[ user_name | group_name ]:permission dir_name
执行命令“chacl”时使用“-B”选项,在删除文件或目录的ACL的同时,也删除
了文件或目录上ACL属性特征符号“+”。
2)用户高级权限-2
SUID
设置特殊权限SUID示例:
chmod u+s /usr/bin/vim
SGID
设置特殊权限SGID示例:
对二迚制文件应用SGID : chmod 2755 /usr/bin/ls
对目录应用SGID : chmod g+s /tmp/test
Sticky
设置特殊权限Sticky的表示方式有两种,一是使用符号表示“o+t”;另一种是使
用八迚制数值表示“1XXX”(XXX代表八迚制数值表示的基本权限)。
设置特殊权限SGID示例:
chmod 1755 /tmp/example
3)权限委派sudo
查看/etc/sudoers文件的内容,该文件中存在权限委派的示例,最典型的示例如下
root ALL=(ALL) ALL %wheel ALL=(ALL) ALL
命令二进制文件的绝对路径可以通过“which command”命令查询,如查询useradd命令的二进制文件的绝对路径,可执行“which useradd”
另外,多个命令二进制文件的绝对路径以“,”分隔,逗号后面建议空一格。
被委派的用户必须具有密码,否则无法执行完成sudo命令。用户在执行委派的命令时,必须要以sudo起头。
vim /etc/sudoers 或者 visudo
root ALL=(ALL) ALL
用户名 ALL=(ALL) /usr/sbin/useradd,/usr/sbin/userdel,usr/sbin/usermod
允许admin1用户创建、修改、删除用户的权限 #92,0-1 85%
10、性能检测与优化
评估CPU:
uptime
uptime”命令输出的内容可以作为Linux系统整体性能评估的一个参考
vmstat
vmstat是一个比较全面的性能分析工具,通过此工具可以对系统的进程情况、内存使用
情况、swap和块设备IO以及CPU使用情况进行统计并报告相应的信息。
评估内存:
top
top是一个动态显示过程,即可以通过用户按键来不断刷新当前状态。如果在前台执行该
命令,它将独占前台,直到用户终止该程序为止
free
“free”命令是查看系统内存使用情况最常用的方式。
free -m #以m 为单位,查看内存信息包括物理内存和虚拟内存。
评估磁盘I/O:
评估磁盘的性能常使用“iostat”命令。
iostat命令的选项如下:
-c 仅显示CPU使用统计信息,与-d选项互斥
-d 仅显示磁盘I/O统计信息,与-c选项互斥
-k 以KB为单位显示每秒的磁盘请求数,默认单元为块
-p 后加具体的设备名或参数ALL,用于显示某块设备及系统分区的统计信息
-t 输出结果时,显示收集的时间
-V 打印版本号和帮助信息
-x 输出扩展信息
评估网络性能:
ping : 网络连接状态的测试,通常使用因特网包探测器(Packet Internet Groper,简称
ping)。ping命令能够对网络的连接状态、网络延时进行检测,从而可以进行网络状态的分析和故障判断,及时发现出网络中存在的问题
#netstat -tulnp
netstat: netstat 能够对网络接口状态进行监控,采集网络接口的状态信息。
#netstat -i #查看接口的详细信息
Ctrl+shift+t #打开另一个终端
查看CPU信息
#cat /proc/cpuinfo
#cat /proc/meminfo #查看内存信息
2)Linux 内核优化
内核模块存放的目录位置是 /lib/modules。
内核模块查看 lsmod modinfo
ll -h /boot #查看内核
modinfo +文件名 #查看某一模块的详细信息
lsmod |grep +文件系统 #查看文件系统是否被加载
modprobe +模块名 #加载模块命令
modprobe -r +模块名 #卸载模块
2.1)开启IP转发
vim /usr/lib/sysctl.d/00-system.conf #永久开启
进入后,配置 net.ipv4.ip_forward = 1 保存退出
刷新内核参数 sysctl -p /usr/lib/sysctl.d/00-system.conf
echo1 > /proc/sys/net/ipv4/ip_forward #临时开启ip转发
2.2)禁止ping命令
vim /usr/lib/sysctl.d/00-system.conf
net.ipv4.icmp_echo_ignore_all = 1
刷新内核参数 sysctl -p /usr/lib/sysctl.d/00-system.conf