본문 바로가기
IT 지식정리/운영체제

[리눅스] Linux에서 chmod와 umask 2014. 12. 8.

by G. Hong 2017. 11. 4.
728x90
반응형

Unix계열의 os에서 파일접근권한과 관련된 커맨드인 chmod와 umask에 관하여 알아보겠습니다.

 

chmod는 파일의 권한을 직접 변경하여주는 커맨드입니다.

아래처럼 test.txt는 순서대로 소유자,그룹,일반 모두 rwx(읽기,쓰기,실행)권한을 가지고 있습니다.

# ls -al test.txt

-rwxrwxrwx. 1 root root 10 Dec 22 21:10 test.txt

 

권한을 000으로 바꾸게 되면 txt의 모든 권한이 사라집니다.

# chmod 000 test.txt

# ls -al test.txt

----------. 1 root root 10 Dec 22 21:10 test.txt

 

권한을 222로 하게되면 소유자,그룹,일반 모두 w(쓰기권한)만을 가지게 됩니다.

# chmod 222 test.txt

# ls -al test.txt

--w--w--w-. 1 root root 10 Dec 22 21:10 test.txt

 

권한을 444로 하게되면 소유자,그룹,일반 모두 r(읽기권한)만을 가지게 됩니다.

# chmod 444 test.txt

# ls -al test.txt

-r--r--r--. 1 root root 10 Dec 22 21:10 test.txt

 

다시 권한을 777로 하여 권한들을 원래대로 돌려 놓습니다..

# chmod 777 test.txt

# ls -al test.txt

-rwxrwxrwx. 1 root root 10 Dec 22 21:10 test.txt

#

 

여기서 chmod뒤에 붙는 숫자의 의미는 쉽게 생각하면 10진수를 2진수로 바꾼다고 생각하면 됩니다.

1 1 1 >> 001 001 001 (--x --x --x)

3 3 3 >> 011 011 011 (-wx -wx -wx)

7 7 7 >> 111 111 111 (rwx rwx rwx)

 

2진수 계산이 힘드신 분들은 윈도우 계산기로도 쉽게 계산할 수 있습니다.

프로그래머용 계산기를 선택합니다.


계산기에서 왼쪽에 bin(2진수)를 선택하고 숫자를 입력한 뒤, oct(8진수)를 선택하면 변환된 숫자가 나타납니다.


반대의 경우도 마찬가지입니다. oct에서 711을 입력하면bin에서 111001001로 변환된 값이 나옵니다.


umask커맨드를 통해서 umask를 설정하면 새롭게 생성되는 파일과 폴더들의 권한을 결정할 수 있습니다. 

umask는 chmod와 다르게 2진수일 경우 0인 부분에 권한이 생기게 됩니다.(chmod의 경우는 1인부분에 권한이 생김)

 

umask커맨드로 umask를 지정하고, 확인을 할 수 있습니다.

# umask 077

# umask

0077

copy를 통해서 새로운 파일 mask1을 만듭니다.

# cp test.txt mask1

 

동일하게 umask를 700바꾼 뒤에, 새로운 파일 mask2를 만듭니다.

# umask 700

# umask

0700

# cp test.txt mask2

 

파일의 권한을 확인하면,  077일때는 rwx------, 700일때는 ---rwxrwx로 새로운 파일이 생성되었습니다. 

# ls -al test.txt mask*

-rwx------. 1 root root 10 Jan  9 17:35 mask1

----rwxrwx. 1 root root 10 Jan  9 17:36 mask2

-rwxrwxrwx. 1 root root 10 Dec 22 21:10 test.txt

#

728x90
반응형