현재 위치: > 최신 기사 목록> PHP 링크 함수와 파일 권한 설정의 관계

PHP 링크 함수와 파일 권한 설정의 관계

gitbox 2025-05-29

PHP 링크 기능이란 무엇입니까?

link () 함수의 기본 구문은 다음과 같습니다.

<code> 링크 (String $ target, String $ Link) </code>

  • $ 대상 은 기존 대상 파일 경로입니다

  • $ 링크는 생성 할 하드 링크 경로입니다

예:

<code> <? php $ target = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt";

if (link ($ target, $ link)) {
Echo "하드 링크가 성공적으로 만들어졌습니다!";
} 또 다른 {
Echo "하드 링크 생성 실패";
}
?>
</코드>


하드 링크와 파일 권한의 관계

하드 링크는 본질적으로 동일한 파일 데이터를 가리키는 여러 디렉토리 항목입니다.

  1. 권한 공유 <br> 하드 링크와 원본 파일은 동일한 파일 내용 및 메타 데이터를 가리키는 것과 동일한 권한 설정을 공유합니다. 이는 파일에 액세스하는 경로에 관계없이 권한이 동일하다는 것을 의미합니다.

  2. 권한 수정의 영향 <br> 하드 링크 또는 원본 파일을 허가 수정하면 실제로 파일 자체의 권한을 수정하고 모든 링크가 영향을받습니다.

  3. 파일 삭제의 영향 <br> 하드 링크 중 하나를 삭제하고 디렉토리 항목을 삭제하면 다른 하드 링크가있는 한 파일 데이터가 여전히 존재합니다.


파일 권한 설정 예제

gitbox.net/files/original.txt 파일이 0644 라고 가정합니다 (소유자는 읽고 쓸 수 있고 다른 사용자가 읽을 수 있음).

<code> <? php $ target = "gitbox.net/files/original.txt"; $ link = "gitbox.net/files/hardlink.txt";

// 하드 링크를 만듭니다
if (link ($ target, $ link)) {
Echo "하드 링크가 성공적으로 만들어졌습니다. \ n";
}

// 권한을 봅니다
echo sprintf ( "권한 : %o \ n", 파일 ($ target) & 0777);

// 권한을 수정합니다
CHMOD ($ link, 0666);

Echo "하드 링크 권한을 수정 한 후 : \ n";
echo sprintf ( "원본 파일 권한 : %o \ n", FilePerms ($ target) & 0777);
echo sprintf ( "하드 링크 권한 : %o \ n", FilePerms ($ link) & 0777);
?>
</코드>

실행 결과는 하드 링크의 권한을 수정 한 후 원래 파일 권한이 동일한 파일과의 다른 경로이기 때문에 수정되었음을 보여줍니다.


주목해야 할 것

  • 하드 링크는 동일한 파일 시스템 내에서만 생성 될 수 있으며 교차 파티션 또는 크로스 마운트 포인트가 될 수 없습니다.

  • 디렉토리 파일은 일반적으로 하드 링크 (Linux 제한)를 허용하지 않으며 일반 파일에서만 사용할 수 있습니다.

  • 소프트 링크 (Symlinks)는 하드 링크와 다르며 소프트 링크 권한 및 대상 파일 권한은 관련이 없습니다.


요약

  • PHP의 link () 함수는 하드 링크를 생성하고 여러 링크가 동일한 파일 권한을 공유합니다.

  • 하드 링크 또는 원본 파일의 권한을 수정하면 파일에 대한 모든 링크에 영향을 미칩니다.

  • 하드 링크는 데이터 일관성을 위해 다중 경로 액세스가 필요한 시나리오에 적합합니다.

PHP의 링크 () 함수와 파일 권한 사이의 상호 작용 메커니즘을 이해함으로써 파일 시스템을 더 잘 관리하고 허가 혼란과 오해를 피할 수 있습니다.