현재 위치: > 최신 기사 목록> PHP의 Umask 함수를 통해 새 파일의 기본 권한을 제어하는 ​​방법은 무엇입니까? 예제 설명

PHP의 Umask 함수를 통해 새 파일의 기본 권한을 제어하는 ​​방법은 무엇입니까? 예제 설명

gitbox 2025-09-16
<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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"읽기에 오신 것을 환영합니다PHP파일 권한 제어 자습서。"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

&lt;hr&gt;

</span><span><span class="hljs-meta">&lt;?php</span></span><span>
<span class="hljs-comment">/*
기사 제목:통과하다PHP~의umask函数怎么控制新建문서~의默认权限?예제 설명
*/</span>

</span><span><span class="hljs-comment">// PHP中~의umask函数用于설정进程~의문서权限掩码,从而控制新建문서或目录~의默认权限。</span></span><span>
</span><span><span class="hljs-comment">// 기본적으로,Linux系统对新建문서~의权限一般是0666(rw-rw-rw-),새로운 디렉토리는입니다0777(rwxrwxrwx)。</span></span><span>
</span><span><span class="hljs-comment">// umask函数통과하다屏蔽权限位,限制新建문서或目录~의权限。</span></span><span>

</span><span><span class="hljs-comment">// 예를 들어,umask(0022)차단을 나타냅니다0022对应~의权限,即屏蔽组和其他用户~의写权限。</span></span><span>
</span><span><span class="hljs-comment">// 新建문서~의默认权限将是 0666 &amp; ~0022 = 0644 (rw-r--r--)</span></span><span>
</span><span><span class="hljs-comment">// 新建目录~의默认权限将是 0777 &amp; ~0022 = 0755 (rwxr-xr-x)</span></span><span>

</span><span><span class="hljs-comment">// 예제 설명:</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">// 파일을 만듭니다</span></span><span>
</span><span><span class="hljs-variable">$file</span></span><span> = </span><span><span class="hljs-string">'testfile.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">"이것은 테스트 파일입니다。"</span></span><span>);

</span><span><span class="hljs-comment">// 파일 권한을 확인하십시오</span></span><span>
</span><span><span class="hljs-variable">$perms</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-variable">$file</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-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"문서 %s ~의权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file</span></span><span>, </span><span><span class="hljs-variable">$perms</span></span><span>);

<span class="hljs-comment">/*
실행 결과는 보통입니다:
문서 testfile.txt ~의权限是: 644

这表明新建문서~의权限是rw-r--r--,즉, 소유자는 읽고 쓸 수 있습니다,그룹 사용자 및 기타 사용자 만 읽습니다。
*/</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">0000</span></span><span>); </span><span><span class="hljs-comment">// 허가가 차단되지 않았습니다</span></span><span>

</span><span><span class="hljs-comment">// 创建另一个문서</span></span><span>
</span><span><span class="hljs-variable">$file2</span></span><span> = </span><span><span class="hljs-string">'testfile2.txt'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-string">"权限更宽松~의测试문서。"</span></span><span>);

</span><span><span class="hljs-comment">// 检查新문서权限</span></span><span>
</span><span><span class="hljs-variable">$perms2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fileperms</span></span><span>(</span><span><span class="hljs-variable">$file2</span></span><span>) &amp; </span><span><span class="hljs-number">0777</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">printf</span></span><span>(</span><span><span class="hljs-string">"문서 %s ~의权限是: %o\n"</span></span><span>, </span><span><span class="hljs-variable">$file2</span></span><span>, </span><span><span class="hljs-variable">$perms2</span></span><span>);

<span class="hljs-comment">/*
현재 권한은 일반적으로입니다666 (rw-rw-rw-),즉, 모든 사용자는 읽기 및 쓰기 권한을 가지고 있습니다。
*/</span>

</span><span><span class="hljs-comment">// 주목해야 할 것:</span></span><span>
</span><span><span class="hljs-comment">// 1. umask전류에만 영향을 미칩니다PHP进程新建~의문서或目录。</span></span><span>
</span><span><span class="hljs-comment">// 2. 已存在문서权限不会被umask영향。</span></span><span>
</span><span><span class="hljs-comment">// 3. web服务器运行用户权限和操作系统安全策略也会영향最终权限。</span></span><span>

</span><span><span class="hljs-comment">// 요약,통과하다umask기능은 쉽게 제어 할 수 있습니다PHP中新建문서和目录~의默认权限。</span></span><span>
</span><span><span class="hljs-comment">// 正确설정umask,有助于保证문서安全,避免权限过宽带来~의安全风险。</span></span><span>

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