>백엔드 개발 >PHP 튜토리얼 >PHP의 파일 권한 기능 chmod에 대한 자세한 설명

PHP의 파일 권한 기능 chmod에 대한 자세한 설명

*文
*文원래의
2018-01-05 18:02:525933검색

chmod() 함수는 파일 모드를 변경합니다. chmod — 파일 모드를 변경합니다. 성공하면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환합니다.

구문
chmod(file,mode) 매개변수 설명
file 필수입니다. 확인할 문서를 지정합니다.
모드는 선택사항입니다. 새 권한을 지정합니다.
모드 매개변수는 4개의 숫자로 구성됩니다.
첫 번째 숫자는 항상 0입니다.
두 번째 숫자는 소유자의 권한을 지정합니다.
두 번째 숫자는 소유자가 속한 사용자 그룹의 권한을 지정합니다.
네 번째 숫자는 다른 모든 사람을 지정합니다.
가능한 값 ​​(여러 권한을 설정해야 하는 경우 아래 숫자의 합을 계산하세요):
1 - 실행 권한
2 - 쓰기 권한
4 - 읽기 권한
간단한 예를 살펴보겠습니다.

<?php 
chmod("/somedir/somefile", 755); // 十进制数,可能不对 
chmod("/somedir/somefile", "u+rwx,go+rx"); // 字符串,不对 
chmod("/somedir/somefile", 0755); // 八进制数,正确的 mode 值 
?>

향상된 재귀 파일 패턴 @ infosoft...., Linux 파일 시스템의 모든 파일 유형을 처리해야 하는 약간 짧습니다. 이렇게 하면 파일이나 디렉터리의 권한을 일괄 변경할 수 있습니다.

<?php 
function chmodr($path, $filemode) { 
if (!is_dir($path)) 
return chmod($path, $filemode); 
$dh = opendir($path); 
while (($file = readdir($dh)) !== false) { 
if($file != &#39;.&#39; && $file != &#39;..&#39;) { 
$fullpath = $path.&#39;/&#39;.$file; 
if(is_link($fullpath)) 
return FALSE; 
elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode)) 
return FALSE; 
elseif(!chmodr($fullpath, $filemode)) 
return FALSE; 
} 
} 
closedir($dh); 
if(chmod($path, $filemode)) 
return TRUE; 
else 
return FALSE; 
} 
?>

디렉토리가 너무 많으면

<?php 
$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($pathname), RecursiveIteratorIterator::SELF_FIRST); 
foreach($iterator as $item) { 
chmod($item, $filemode); 
} 
?>

이 코드를 사용하여 디렉터리의 권한을 수정할 수 있습니다.
하하, 우리는 chmod의 간단한 구문에 대해서만 이야기하는 것이 아니라 복잡한 chmod도 수행합니다. 사용법 예
설명
bool chmod (string $filename, int $mode)
filename으로 지정된 파일의 모드를 mode로 지정된 모드로 변경해 보세요.
모드는 자동으로 8진수 값으로 처리되지 않으며 문자열(예: "g+w")일 수 없습니다. 올바른 작동을 보장하려면 모드 앞에 0을 추가해야 합니다.
모드 매개변수에는 소유자, 소유자 그룹, 모든 사람의 액세스 제한을 순서대로 지정하는 3개의 8진수가 포함되어 있습니다. 각 부분은 필요한 권한을 추가하여 계산할 수 있습니다. 숫자 1은 파일을 실행 가능하게 만들고, 숫자 2는 파일을 쓰기 가능하게 만들고, 숫자 4는 파일을 읽을 수 있게 만듭니다. 필요한 권한을 지정하려면 다음 번호를 추가하세요. UNIX 시스템의 파일 권한에 대한 자세한 내용은 "man 1 chmod" 및 "man 2 chmod" 설명서를 참조하세요.

<?php 
// Read and write for owner, nothing for everybody else 
chmod("/somedir/somefile", 0600); 
// Read and write for owner, read for everybody else 
chmod("/somedir/somefile", 0644); 
// Everything for owner, read and execute for others 
chmod("/somedir/somefile", 0755); 
// Everything for owner, read and execute for owner&#39;s group 
chmod("/somedir/somefile", 0750); 
?>

성공하면 TRUE를 반환하고 실패하면 FALSE를 반환합니다.
참고: 현재 사용자는 PHP를 실행하는 사용자를 나타냅니다. 일반적인 쉘 또는 FTP 사용자와 동일하지 않을 가능성이 높습니다. 대부분의 시스템에서 파일 모드는 파일을 소유한 사용자만 변경할 수 있습니다.
참고: 이 기능은 원격 파일에서는 사용할 수 없습니다. 검사 중인 파일은 서버의 파일 시스템을 통해 액세스해야 합니다.
참고: 안전 모드가 켜져 있으면 PHP는 작업 중인 파일이 실행 중인 스크립트와 동일한 UID(소유자)를 가지고 있는지 확인합니다. SUID, SGID 및 고정 비트는 수정할 수 없습니다.

위 내용은 PHP의 파일 권한 기능 chmod에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.