세이박스

'권환'에 해당되는 글 1건

  1. PHP 파일 업로드시 권한 설정

PHP 파일 업로드시 권한 설정

웹프로그램

if(!is_dir($saveDir)) {
$oldumask = umask(0);
mkdir($saveDir, 0777); // or even 01777 so you get the sticky bit set
umask($oldumask);
}

이때...

umask란 file이 생성될 때 사용할 file의 권한에 대해 mask를 인코딩하는 system 변수이다.

보통 3자리로 표현이 되며 각각의 자리는 user, group, other의 권한을 나타낸다.

umake의 값은 3자리의 8진수의 값이며 각각의 값은 1,2,4의 값은 AND 연산한 결과이다.

0 : 사용자에게 모든 권한을 혀용.
4 : 사용자에게 읽기 권한은 주지 않음.
2 : 사용자에게 쓰기 권한을 주지 않음.
1 : 사용자에게 실행 권한을 주지 않음.

간단하게 예를 들어서 설명을 해 보면 umask 022 는 user에게는 모든 권한을 주며, group과 other에는 실행 권한과 읽기 권한만 주는 것이다.

즉 -rwxr-xr-x의 퍼미션을 나타낸다.

그러면 하나의 예를 더 들어 보면 -rxw--x--x 의 퍼미션을 지정하려면 group과 other에게 읽기와 쓰기의 권한을 주지 않는 2,4를 지정하는데 위에서 AND연산의 결과값이기 때문에 6이 된다. 즉 umask 066이 되는 것이다.