IT story

PHP umask (0) 목적은 무엇입니까

hot-time 2020. 12. 31. 22:53
반응형

PHP umask (0) 목적은 무엇입니까


umask(0);PHP에서 사용하는 목적은 무엇입니까 ?

나는 이것을 몇 번 보았지만 문서에서 정확히 무엇을하는지 알 수 없습니다.

누군가 이것을 설명하고 언제 사용하는 것이 유용할까요?


설정 umask0000(또는 0새로 파일을 생성 또는 디렉토리가 초기 취소 아무런 권한이 없습니다 생성) 수단을. 즉, a umask가 0 이면 모든 파일이 작성 0666되거나 쓰기 가능하게됩니다. 동안 생성 된 디렉토리 umask0입니다 0777.

일반적으로 볼 때 새로 생성 된 파일이나 디렉토리에 필요한 권한을 명시 적으로 설정 umask(0)하는 호출이 바로 뒤에 와야합니다 chmod().

umask를 0으로 설정할 때주의하십시오! 이것은 위험 할 수 있으며 생성 된 파일을 수정할 수 있어야하는 "실제"사용자와 웹 서버가 다른 사용자로 실행될 때 나중에 웹 서버에서 작성해야하는 파일을 만드는 데만 유용합니다. 웹 서버에 의해. 그렇지 않으면 시스템의 기본 umask는 0022파일 소유자가 쓸 수 있지만 다른 사람은 쓸 수없는과 같은 것일 수 있습니다 . 이 경우 일반 사용자 계정으로 시스템에 로그인하면 PHP에서 웹 서버에서 생성 한 파일에 쓰기 불가능 합니다.

세계에서 쓸 수있는 파일을 작성하는 것보다 일반적으로 웹 서버가보다 명시 적으로 작성하는 디렉토리를 관리하는 것이 더 좋습니다. 디렉터리 내부에 생성 된 파일에 특정 그룹 권한이 있어야하는 경우 디렉터리에 sgid 비트를 설정하여 그 내부의 새 파일이 그룹 소유권을 상속하도록하는 것이 좋습니다. 파일에 대한 액세스 권한이 필요한 사용자는 파일에 대한 액세스 권한이있는 그룹의 구성원이어야합니다. 이것은 세계에서 읽을 수 있고 쓸 수있는 파일을 만드는 것보다 훨씬 더 안전합니다.

php > umask(0);
// Should get created as 666
php > touch('file1.txt');

// "2" perms revoked from group, others, gets created as 644
php > umask(022);
php > touch('file2.txt');

// All revoked (2,4) from group, others, gets created as 600
php > umask(066);
php > touch('file3.txt');

-rw-rw-rw-   1 me  group     0 Aug 24 15:34 file1.txt
-rw-r--r--   1 me  group     0 Aug 24 15:35 file2.txt
-rw-------   1 me  group     0 Aug 24 15:37 file3.txt

umask는 기본적으로 파일 생성을위한 기본 설정입니다. 본질적으로 기본 chmod를 켜고 파일을 작성한 다음 chmod하는 것보다 파일을 쓰는 것이 더 안전합니다. 하루가 끝나면 파일 작성을 마치고 chmod를 실행하는 사이의 시간은 기껏해야 밀리 초가 될 것이므로 이에 대해 회의적입니다.

umask() sets PHP's umask to mask & 0777 and returns the old umask

기본적으로 Linux와 같은 OS에 입력 한 모든 항목에 기본 쓰기 권한을 설정 한 다음 다시 재설정 할 수 있도록 이전 권한을 반환합니다. 이것은 PHP 프로세스 자체에 적용됩니다.

문서 페이지의 주석 : http://php.net/manual/en/function.umask.php 는 예제를 통해 설명합니다.

참조 URL : https://stackoverflow.com/questions/12116121/php-umask0-what-is-the-purpose

반응형