나는 umask와 chmod를 완전히 혼동합니다. 둘 다 파일에 권한을 부여하는 데 사용됩니다. 그러나 정확히 차이점과 사용시기는 어디입니까?
온라인 설명서를 읽었지만 둘 다 나에게 동일하게 보입니다.
umask : umask는 기본 파일 권한을 설정하는 데 사용됩니다. 이러한 권한은 생성하는 동안 모든 후속 파일에 사용됩니다. chmod : 파일 및 디렉토리 권한을 변경하는 데 사용됩니다.
예를 들어 test.doc 파일이 생성되는지 이해합니다.
기본적으로 유닉스는 파일 022 umask 코드를 제공합니다.
이제 chmod 666 test.doc로 변경하면이 파일의 권한 수준을 변경할 수 있습니다.
이제 동일한 파일에 umask 666 을 사용하면 어떻게 됩니까 ?
chmod 666과 umask 666을 사용할 때 어떤 차이가 있습니까?
답변
차이점은 새 파일umask
만 수반 한다는 것 입니다. 언급 한대로 umask는 파일 / 디렉토리가 작성 시간에 갖게되는 기본 권한을 설정하지만 나중에 더 이상 영향을 미치지 않습니다.umask
chmod
그러나 실행하기 전에 파일을 작성해야합니다.
따라서를 실행하면 umask
기존 파일에는 전혀 영향을 미치지 않습니다.
답변
umask
chmod
실제로 와는 매우 다릅니다 .
-
중요한 차이점은 아직 언급되지 않았지만
chmod
, 권한 비트 는 설정하지만umask
지 웁니다 (제한). 그것이 “마스크”라고 불리는 이유입니다 ( “비트 마스크”에서와 같이). -
다윗으로 쓴 ,
umask
(반대가 특정 파일에 적용되지 그래서, A (프로세스 수준) 구성 설정입니다chmod
). -
또 다른 중요한 점
umask
은 파일에만 국한되지 않습니다. 디렉토리를 만들 때도 적용됩니다. ( 이 답변 도 참조하십시오 .) -
또한
chmod
명령 자체는 현재 구성된의 영향을받지 않습니다umask
.
이제 무엇을할지 예를 들어 보자 umask 666
.
현재 프로세스 (예 : 셸)에 R
+ W
비트 (4 + 2 = 6)를 제거하고 (생성 할 때 암시 적 또는 명시 적으로 요청 된 모든 권한에서 ) 새 파일 시스템 객체를 만들어야한다고 알려줍니다 . (따라서 666은 X
(실행) 비트 만 설정할 수는 있지만 읽을 수없는 파일 이기 때문에 매우 실용적인 값은 아닙니다 .)
예 :
$ touch foo; ls -la foo
-rw-r--r-- ... foo <-- default permissions
$ umask 666
$ touch bar; ls -la bar
---------- ... bar <-- perms. after the new umask (restriction) is set
$ mkdir foodir; ls -la | grep foodir
d--x--x--x ... dir <-- not very practical for dirs, either
$ chmod 777 bar; ls -la bar
-rwxrwxrwx .... bar* <-- chmod happily ignores the current umask
$ umask 022
$ touch bong; ls -la bong
-rw-r--r-- ... bong <-- (so, it seems this was the default umask)
$ chmod 666 bong; ls -la bong
-rw-rw-rw- ... bong <-- no surprise of any kind here
답변
UMASK = chmod 777-umask 권한
umask 022 => 777 - 022 => chmod 755
umask 077 => 777 - 077 => chmod 700
umask 002 => 777 - 002 => chmod 775
umask 007 => 777 - 007 => chmod 770
umask 027 => 777 - 027 => chmod 750
umask 177 => 777 - 177 => chmod 600
그런 것.
답변
디렉토리 / 파일에 대한 기본 권한은 umask 022이고, 디렉토리는 기본적으로 권한 755 ( drwx-rw-rw
)로 설정되고 파일은 644 ( -rw-r--r--
) 로 설정됩니다 . 기본적으로 디렉토리의 경우 777에서 파일의 경우 666에서 원하는 권한의 8 진수 값을 뺍니다. 위의 예에서 :
(directory) umask 022 => 777 - 022 = 755
(file) umask 022 => 666 - 022 = 644
8 진수와 파일인지 디렉토리인지에 따라 umask를 사용할 때umask octal
소스 에서 명령 결과를 찾을 수 있습니다 .
그러나chmod 022 <file>
디렉토리를 사용 한다면 다음 과 같은 결과를 얻을 수 d----w--w-
있습니다.
아래에, 당신은 당신이 검색 할 수 있습니다 진수 값의 좋은 설명을 찾을 수 있습니다 여기 뿐만 아니라 훌륭한 소스와 Somnath Muluk으로합니다.
N Description ls binary
0 No permissions at all --- 000
1 Only execute --x 001
2 Only write -w- 010
3 Write and execute -wx 011
4 Only read r-- 100
5 Read and execute r-x 101
6 Read and write rw- 110
7 Read, write, and execute rwx 111