[php]umask

umask 함수

umask 함수는 PHP에서 파일 및 디렉토리 생성 시 기본 파일 모드(퍼미션)를 설정하는 함수입니다. 기본적으로 파일 생성 시 퍼미션은 시스템의 기본 설정에 의해 결정되지만, umask 함수를 사용하여 이를 변경할 수 있습니다.

사용법:

int umask ([ int $mask ] )
  • $mask: 새로 설정할 파일 모드(퍼미션)를 나타내는 정수 값입니다. 기본값은 null로 현재 설정된 파일 모드를 반환합니다.

예제:

// 기본 파일 모드 설정 변경
$oldUmask = umask(0022);

// 새로운 파일 생성
$file = fopen('example.txt', 'w');
fwrite($file, 'Hello, umask!');
fclose($file);

// 기본 파일 모드 설정 복원
umask($oldUmask);

umask 함수를 응용한 코드

1. 특정 디렉토리에만 적용되는 파일 모드 설정하기

$targetDir = './data/';
$oldUmask = umask(0000);

// 새로운 디렉토리 생성
mkdir($targetDir, 0777);

// 새로운 파일 생성
$file = fopen($targetDir . 'example.txt', 'w');
fwrite($file, 'Hello, umask in data directory!');
fclose($file);

// 기본 파일 모드 설정 복원
umask($oldUmask);

umask 함수와 다른 함수 사용하여 응용하는 코드

2. 특정 디렉토리에만 적용되는 임시 파일 생성하기

$targetDir = './tmp/';
$oldUmask = umask(0000);

// 새로운 디렉토리 생성
mkdir($targetDir, 0777);

// 새로운 임시 파일 생성
$tempFile = tempnam($targetDir, 'temp_');
file_put_contents($tempFile, 'This is a temporary file.');

// 기본 파일 모드 설정 복원
umask($oldUmask);

umask 함수와 조건문, 반복문 사용하는 샘플 코드

3. 여러 디렉토리에 대한 기본 파일 모드 설정하기

$directories = ['./data/', './tmp/'];
$oldUmask = umask(0000);

foreach ($directories as $dir) {
    mkdir($dir, 0777, true);
    echo 'Directory created: ' . $dir . PHP_EOL;
}

umask($oldUmask);

성능 향상을 위한 팁

  • umask 함수는 파일 모드 설정에 영향을 주므로 필요한 경우에만 변경하는 것이 좋습니다. 불필요한 설정 변경을 피하여 시스템 오버헤드를 줄일 수 있습니다.
  • umask 함수를 사용하여 파일 모드를 설정하는 경우, 사용자 권한과 그룹 권한을 적절하게 설정하여 보안을 강화할 수 있습니다.

게시됨

카테고리

,

작성자