생성된 이 패치를 적용하고 싶지만 patch
명령을 사용하려면 파일 경로 이름을 제공해야 합니다.
administrator@server:~$ diff -Nau /etc/php/8.1/fpm/pool.d/www.conf /etc/php/8.1/fpm/pool.d/www.NEW.conf > ~/php8.1-fpm-www.conf.patch
administrator@server:~$ sudo patch -p0 < ~/php8.1-fpm-www.conf.patch
Ignoring potentially dangerous file name /etc/php/8.1/fpm/pool.d/www.conf
Ignoring potentially dangerous file name /etc/php/8.1/fpm/pool.d/www.NEW.conf
cant find file to patch at input line 3
Perhaps you used the wrong -p or --strip option?
The text leading up to this was:
--------------------------
|--- /etc/php/8.1/fpm/pool.d/www.conf 2022-09-15 13:30:49.000000000 +0200
|+++ /etc/php/8.1/fpm/pool.d/www.NEW.conf 2022-11-07 16:40:35.555078608 +0100
--------------------------
File to patch: ^C
administrator@server:~$
답변1
첫 번째 구성요소를 제거 /
하고 루트부터 시작해야 합니다.
cd /
sudo patch -p1 < ~/php8.1-fpm-www.conf.patch
GNU는 patch
현재 디렉터리(또는 지정된 디렉터리)에서 시작하는 트리 외부의 파일 이름을 가진 패치 콘텐츠를 -d
안전하지 않은 것으로 간주합니다(참조:CVE-2010-4651). 상대 경로를 사용하는 것이 더 낫습니다. 패치를 다른 컨텍스트에서 사용할 수 있도록 가능하면 경로를 최소화하는 것이 좋습니다. 귀하의 경우에는 실제로 디렉터리를 완전히 건너뛸 것입니다.
(
cd /etc/php/8.1/fpm/pool.d &&
diff -u www.conf www.NEW.conf
) > ~/php8.1-fpm-www.conf.patch