PHP umask (0) 목적은 무엇입니까
umask(0);
PHP에서 사용하는 목적은 무엇입니까 ?
나는 이것을 몇 번 보았지만 문서에서 정확히 무엇을하는지 알 수 없습니다.
누군가 이것을 설명하고 언제 사용하는 것이 유용할까요?
설정 umask
에 0000
(또는 0
새로 파일을 생성 또는 디렉토리가 초기 취소 아무런 권한이 없습니다 생성) 수단을. 즉, a umask
가 0 이면 모든 파일이 작성 0666
되거나 쓰기 가능하게됩니다. 동안 생성 된 디렉토리 umask
는 0
입니다 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
'IT story' 카테고리의 다른 글
node.js 비동기 라이브러리 (0) | 2020.12.31 |
---|---|
사용자 정의 녹아웃 바인딩을 위해 초기화와 업데이트 사이에 상태를 저장하는 선호하는 방법은 무엇입니까? (0) | 2020.12.31 |
Google Map Api v2가 로그에 'V / GoogleSignatureVerifier : 서명이 유효하지 않습니다'오류 메시지를 표시 함 (0) | 2020.12.31 |
"COM Interop 등록"은 실제로 어떤 역할을합니까? (0) | 2020.12.31 |
`--squash`와`--no-ff --no-commit`의 차이점은 무엇입니까? (0) | 2020.12.31 |