patch 命令用法详解(转)

您所在的位置:网站首页 patch的发音 patch 命令用法详解(转)

patch 命令用法详解(转)

2023-08-27 03:13| 来源: 网络整理| 查看: 265

patch,是打补丁的命令,有很多用法,见帮助#man patch

patch -p0       (“p”指的是路径,后面的数字表示去掉路径的第几部分。"0",表示不去掉,为全路径)

patch -p1       (“p”后面的数字"1",表示去掉前第一个路径)

fetch http://people.freebsd.org/~delphij/misc/patch-bge-releng62

fetch http://people.freebsd.org/~delphij/misc/patch-bce-watchdog-rewrite

cd /sys/dev/bge

fetch ...

patch -p0 < ...

fetch http://people.freebsd.org/~delphij/misc/patch-tcp_auto_buf-20061212-RELENG_6.diff

patch -p < patch-tcp_auto_buf-20061212-RELENG_6.diff

也可以把文件中的目录全改成系统已在的目录如/usr/src/sys.....

注意:

1,确认目录

然后确认目录,如不在默认目录下,就写下要打补丁的当前绝对目录。如/usr/src/sys/dev/bge/if_bce.c

2,P的使用

可以使用不带数字的参数。

patch 后的软件安装

 

telnetd服务器的问题及补丁

在当前FreeBSD所有版本中,也就是FreeBSD 5.0、FreeBSD 4.3、FreeBSD 4.2、FreeBSD 4.1.1、FreeBSD 4.1、FreeBSD 4.0、FreeBSD 3.x、FreeBSD 2.x的版本,其telnetd守护进程中存在一个致命的缓冲区溢出漏洞,该问题是由于telnetd在处理telnet协议选项的函数中没有进行有效的 边界检查,当使用某些选项('AYT')时,可能发生缓冲区溢出。这会导致远程root级别的安全威胁。

因此,如果一定要使用telnet服务的话,必须为服务器打上最新的patch,该patch可以从以下链接获得:

(注:通常有两个版本的telnetd服务器,有crypto及无crypto的版本,因此 需要判断主机使用的是哪种版本的telnetd,这通常可以通过察看src文件来判断,比如# ls /usr/src/crypto/telnet/telnetd,如果不存在,则说明使用的是无crypto的版本了,在判别清楚之后再分别下载相关补丁 文件)

crypto版本补丁:

ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:49/telnetd-crypto.patch

ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:49/telnetd-crypto.patch.asc

patch方法:

# cd /usr/src/

# patch -p < /path/to/patch

# cd /usr/src/secure/libexec/telnetd

# make depend && make all install

无crypto版本补丁:

ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:49/telnetd.patch

ftp://ftp.freebsd.org/pub/FreeBSD/CERT/patches/SA-01:49/telnetd.patch.asc

patch方法:

# cd /usr/src/

# patch -p < /path/to/patch

# cd /usr/src/libexec/telnetd

# make depend && make all install

例子来源http://toby.bokee.com/

文件:isp1161-2.6.12.patch(在/root下)

由于patch文件的首行已经指明了路径,所以根据当前所在的目录,加不同的参数使用patch命令:

1:如果当前的目录是和linux-2.6.12的同级目录:

[root@kcn-110mw]#patch -p0



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3