현재 위치: > 최신 기사 목록> Umask 기능과 STAT 기능을 결합하여 PHP의 파일 권한 변경 사항을 확인하는 방법은 무엇입니까? 실용적 운영 안내서

Umask 기능과 STAT 기능을 결합하여 PHP의 파일 권한 변경 사항을 확인하는 방법은 무엇입니까? 실용적 운영 안내서

gitbox 2025-07-09

1. Umask () 함수 소개

Umask () 함수는 현재 프로세스 (UMASK)의 파일 모드 생성 마스크를 설정하거나 가져 오는 데 사용됩니다. 파일 모드 마스크는 새로 생성 된 파일의 기본 권한을 결정합니다. 적절한 마스크를 설정함으로써 PHP 프로그램은 새 파일을 만들 때 권한이 자동으로 제한되도록 할 수 있습니다.

umask () 의 ​​사용

 <span><span><span class="hljs-comment">// 현재 프로세스의 파일 생성 마스크를 가져옵니다</span></span><span>
</span><span><span class="hljs-variable">$current_umask</span></span><span> = </span><span><span class="hljs-title function_ invoke__">umask</span></span><span>();
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"현재의umask가치는입니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$current_umask</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// 새로운 것을 설정하십시오umask</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0022</span></span><span>);  </span><span><span class="hljs-comment">// 마스크 값은입니다0022,새 파일의 권한이 있음을 나타냅니다755</span></span><span>
</span></span>

위의 예에서는 먼저 현재 Umask 값을 얻고 Umask () 함수를 사용하여 새로운 마스크 값을 설정합니다. 0022 의 의미는 다음과 같습니다. 새로 생성 된 파일은 자동으로 755 권의 권한으로 설정됩니다 (즉, 사용자는 실행 권한을 읽고 쓰는 반면 다른 사용자는 읽기 및 실행 권한 만 있습니다).


2. STAT () 함수 소개

STAT () 함수는 파일 크기, 마지막 수정 시간 및 파일 권한을 포함하여 지정된 파일의 상태 정보를 얻는 데 사용됩니다. 모드 필드가 파일의 권한 모드를 나타내는 디테일이있는 배열을 반환합니다.

STAT () 의 기본 사용

 <span><span><span class="hljs-variable">$file_stat</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stat</span></span><span>(</span><span><span class="hljs-string">'example.txt'</span></span><span>);

</span><span><span class="hljs-comment">// 파일 권한 모드를 봅니다</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일의 권한 모드는 다음과 같습니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_stat</span></span><span>[</span><span><span class="hljs-string">'mode'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span></span>

stat () 에 의해 반환 된 모드는 정수 값이며 약간 마스크로 구문 분석해야합니다. 비트 작업을 통해 파일의 자세한 권한 정보를 얻을 수 있습니다.


3. umask ()stat () 를 결합하여 파일 권한 변경 사항을 확인합니다.

파일 권한을 더 잘 관리하기 위해 파일 권한을 사용 하여 파일 권한의 변경 사항을 추적 할 수 있습니다. 예를 들어, 파일이 생성 된 후 실제 권한을 확인하고 예상대로 파일의 실제 권한을 확인하려는 파일이 있다고 가정하십시오.

실제 단계 :

  1. 새 파일의 권한이 우리의 요구 사항을 충족하는지 확인하기 위해 적절한 UMASK를 설정하십시오.

  2. STAT () 함수를 사용하여 파일에 대한 권한을 얻습니다.

  3. STAT () 에 의해 반환 된 권한 값을 예상 값과 비교하여 파일 권한이 변경되었는지 여부를 결정하십시오.

샘플 코드 :

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// 파일 권한 마스크를 설정합니다</span></span><span>
</span><span><span class="hljs-title function_ invoke__">umask</span></span><span>(</span><span><span class="hljs-number">0022</span></span><span>);

</span><span><span class="hljs-comment">// 새 파일을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'example.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-string">"This is a test file."</span></span><span>);

</span><span><span class="hljs-comment">// 파일 상태를 얻으십시오</span></span><span>
</span><span><span class="hljs-variable">$file_stat</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stat</span></span><span>(</span><span><span class="hljs-variable">$file</span></span><span>);

</span><span><span class="hljs-comment">// 파일 권한 모드를 가져옵니다</span></span><span>
</span><span><span class="hljs-variable">$file_permissions</span></span><span> = </span><span><span class="hljs-variable">$file_stat</span></span><span>[</span><span><span class="hljs-string">'mode'</span></span><span>] &amp; </span><span><span class="hljs-number">0777</span></span><span>;  </span><span><span class="hljs-comment">// 비트와 작동,파일의 권한 값을 얻으십시오</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일의 실제 권한은 다음과 같습니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_permissions</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;

</span><span><span class="hljs-comment">// 파일 권한이 기대치를 충족하는지 여부를 결정하십시오</span></span><span>
</span><span><span class="hljs-variable">$expected_permissions</span></span><span> = </span><span><span class="hljs-number">0755</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$file_permissions</span></span><span> === </span><span><span class="hljs-variable">$expected_permissions</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일 권한은 기대치와 일치합니다!\n"</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"파일 권한은 기대치를 충족하지 않습니다,실제 허가는입니다: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$file_permissions</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
}

</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

코드 구문 분석 :

  • 먼저, 새 파일의 허가가 0755 인지 확인하기 위해 Umask (0022) 를 통해 파일 권한 마스크를 설정합니다.

  • file_put_contents () 함수를 사용하여 새 파일 example.txt를 만듭니다.

  • 그런 다음 STAT () 함수, 특히 파일 ( 모드 )의 권한 모드를 통해 파일의 상태 정보를 얻습니다.

  • 마지막으로 파일의 권한 부분은 Bitwise 작동 ( & 0777 )에 의해 추출되며 예상 권한 ( 0755 )과 비교됩니다.

출력 결과 :

 <span><span><span class="hljs-section">파일의 실제 권한은 다음과 같습니다: 755</span></span><span>
파일 권한은 기대치와 일치합니다!
</span></span>

이런 식으로, 우리는 요구 사항에 따라 파일 권한이 설정되어 있는지 효과적으로 확인하여 파일 작업의 보안을 보장 할 수 있습니다.