umask와 chmod의 차이점은 무엇입니까


13

나는 umask와 chmod를 완전히 혼동합니다. 둘 다 파일에 권한을 부여하는 데 사용됩니다. 그러나 정확히 차이점과 사용시기는 어디입니까?

온라인 설명서를 읽었지만 둘 다 나에게 동일하게 보입니다.

umask : umask는 기본 파일 권한을 설정하는 데 사용됩니다. 이러한 권한은 생성하는 동안 모든 후속 파일에 사용됩니다. chmod : 파일 및 디렉토리 권한을 변경하는 데 사용됩니다.

예를 들어 test.doc 파일이 생성되는지 이해합니다.

기본적으로 유닉스는 파일 022 umask 코드를 제공합니다.

이제 chmod 666 test.doc로 변경하면이 파일의 권한 수준을 변경할 수 있습니다.

이제 동일한 파일에 umask 666 을 사용하면 어떻게 됩니까 ?

chmod 666과 umask 666을 사용할 때 어떤 차이가 있습니까?


2
umask새로 작성된 파일에 대한 파일 권한을 자동으로 설정하는 환경 변수를 설정 합니다 . 기존 파일chmod 의 권한을 변경 합니다 .
DavidPostill

1
@DavidPostill. 아니오, umask"환경 변수"를 설정하지 않습니다. 현재 쉘 실행 환경의 파일 모드 작성 마스크를 설정합니다.
fpmurphy

@ fpmurphy1
설명해

답변:


11

차이점은 새 파일umask 만 수반 한다는 것 입니다. 언급 한대로 umask는 파일 / 디렉토리가 작성 시간에 갖게되는 기본 권한을 설정하지만 나중에 더 이상 영향을 미치지 않습니다.umask

chmod그러나 실행하기 전에 파일을 작성해야합니다.

따라서를 실행하면 umask기존 파일에는 전혀 영향을 미치지 않습니다.


2
umask파일 에는 사용할 수 없으며 file인수 가 없습니다 .
DavidPostill

맞습니다, 그 부분을 다시 썼습니다.
nKn

4

umaskchmod실제로 와는 매우 다릅니다 .

  1. 중요한 차이점은 아직 언급되지 않았지만 chmod, 권한 비트 는 설정하지만 umask 지 웁니다 (제한). 그것이 "마스크"라고 불리는 이유입니다 ( "비트 마스크"에서와 같이).

  2. 다윗으로 , umask(반대가 특정 파일에 적용되지 그래서, A (프로세스 수준) 구성 설정입니다 chmod).

  3. 또 다른 중요한 점 umask은 파일에만 국한되지 않습니다. 디렉토리를 만들 때도 적용됩니다. ( 이 답변 도 참조하십시오 .)

  4. 또한 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

0

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

그런 것.


0

디렉토리 / 파일에 대한 기본 권한은 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.