[시스템] 리눅스파일과 디렉토리의 속성 이해

리눅스 파일과 디렉토리의 속성에 대한 이해

리눅스나 유닉스 파일들은 다음과 같은 형식의 속성을 가지게 됩니다.

-rw-r–r–    1 alang    users        4068  9월  6 10:30 test.php3

이는 이는 공백으로 구분이 되어지는데 차례로 다음과 같은 속성을 나

타냅니다.

-rw-r–r–  : 파일의 허가권

1           : 링크수

alang       : 파일의 소유자

users       : 파일의 허가 그룹

4068        : 파일의 용량

9월         : 파일의 최종 수정달

6           : 파일의 최종 수정일

10:30       : 파일의 최종 수정 시간

test.php3   : 파일명

차례로 설명하겠습니다.

1. 파일 디렉토리의 허가권

파일의 허가권은 8진수의 2진수 변환으로 그 속성을 나타내는데 그 형식

은 다음과 같습니다.

허가권값    2진수       허가권 속성

———————————–

  0         000             —

  1         001             –x

  2         010             -w-

  3         011             -wx

  4         100             r–

  5         101             r-x

  6         110             rw-

  7         111             rwx

———————————-

위 표에서 허가권 속성은 rwx 로 표시 되는데 r(읽기허가),w(쓰기허가),

x(실행허가) 입니다. 하나의 파일에 대한 허가권 속성은 위에서 보듯이

디렉토리,사용자(소유자),그룹,일반유저로 나누어 지는데, 다음 예제로

설명을 하겠습니다.

-rw-r–r–    1 alang    users        4068  9월  6 10:30 test.php3

위의 예문은 test.php3 파일의 허가권이 -rw-r–r– 와 같다는 의미인데

허가권 속성으로 나누어 보면 다음과 같습니다.

      –       rw-      r–     r–

즉 차례로 디렉토리 , 소유자의 권한 , 그룹의 권한 , 일반 유저의 권한

으로 나누어 집니다.

풀이해서 설명하면 – ( 디렉토리가 아닌 파일이다 ), rw- (파일 소유자

에게 읽기와 쓰기의 권한) , r– (그룹에겐 읽기의 권한) , r– (일반

유저들에겐 일기의 권한) 이 있다는 뜻이다.

drwxrwxr-x    2 alang    alang        4096 10월  4 18:43 www/

위의 예문은 test.php3 파일의 허가권이 -rw-r–r– 와 같다는 의미인데

허가권 속성으로 나누어 보면 다음과 같습니다.

      –       rw-      r–     r–

즉 차례로 디렉토리 , 소유자의 권한 , 그룹의 권한 , 일반 유저의 권한

으로 나누어 집니다.

풀이해서 설명하면 – ( 디렉토리가 아닌 파일이다 ), rw- (파일 소유자

에게 읽기와 쓰기의 권한) , r– (그룹에겐 읽기의 권한) , r– (일반

유저들에겐 일기의 권한) 이 있다는 뜻이다.

drwxrwxr-x    2 alang    alang        4096 10월  4 18:43 www/

위와 같은 거는 www 는 디렉토리 이며 이 디렉토리는 소유자에게 일기

쓰기,실행의 권한이.. 그룹에겐 읽기,쓰기,실행의 권한이.. 일반 유저

에겐 읽기,실행의 권한이 있다는 말이다.

허가권에 대해 이해 했을거라 생각하고 이런 허가권은 변경 할수가 있는

데 이는 “chmod” 라는 명령어를 사용하여 “허가권 값” 을 변경할수가

있습니다.

다음 예제를 통해서 “허가권 값”에 대해 알아보도록 하겠습니다.

test.php3 에 파일의 소유자에게 읽기,쓰기,실행의 권한을..그룹에게

읽기와 실행의 권한을 ..일반유저에게 읽기와 실행의 권한을 주겠다면

허가권 속성은 -rwxr-xr-x 입니다. 이 허가권 속성을 허가권 값으로

변경하면 0755 가 됩니다. 잘 생각하시면 이해가 되실거라 여겨집니다.

그럼 대표적인 허가권 값과 특수 허가권 값에 대해 알아보도록 하죠.

0400(-r——–) : 파일의 소유자에게만 읽기의 권한이 있음

0440(-r–r—–) : 파일의 소유자와 그룹에게 일기의 권한이 있음

0444(-r–r–r–) : 모두에게 읽기 권한만 주어짐..

0644(-rw-r–r–) : 파일의 소유자에게 일기,쓰기 권한이 있고 나머지에겐

                   읽기 권한만 주어진다.

0755(-rwxr-xr-x) : 파일의 소유자에게 일기,쓰기,실행 권한이 주어지고

                   나머지에겐 읽기,실행의 권한이 주어진다.

4755(-rwsr-xr-x) : setUID 허가권이 지정되었다는 의미를 제외하곤 그냥

                   755의 권한과 같은 의미 이다. (setUID 는 밑에서..)

2755(-rwxr-sr-x) : setGID 허가권이 지정되었다는 의미를 제외하곤 그냥

                   755의 권한과 같은 의미 이다. (setGID 도 밑에서..)

setUID는 파일을 실행할때 프로세서는 파일을 실행한 사용자의 권한이 아

닌 파일의 소유자의 권한으로 프로세서를 생성하고 실행한다는 의미이다.

setGID 역시 실행한 사용자의 권한이 아닌 소유그룹의 권한으로 실행을 한

다는 의미이다. setUID 가 지정된 파일의 소유자가 root 일 경우 이 파일이

root 가 아닌 다른 사용자에 의해 변경될경우 보안상 중대한 틈이 생기므로

관리시 주의해야 할것이다.

2. 허가권 변경 및 소유권 변경

파일및 디렉토리의 허가권에 대해 대략 이해를 하셨을거라 생각 됩니다.

이런 허가권을 변경하는데 사용되는 명령어로는 chmod 가 있습니다.

chmod [허가권 값] [파일,디렉토리]

위의 형식으로 허가권 값을 변경할수가 있지요.

[alang@zzang911 alang]$ ll test.php3

-rw-r–r–    1 alang    alang        4068  9월  6 10:30 test.php3

[alang@zzang911 alang]$ chmod 755 test.php3

[alang@zzang911 alang]$ ll test.php3

-rwxr-xr-x    1 alang    alang        4068  9월  6 10:30 test.php3*

위의 예문에서 644 허가권 값을 가진 test.php3 이 755 허가권 값으로

변경됨을 알수 있을것입니다.

이밖에 -R 옵션을 붙이면 해당 해당디렉토리와 하위디렉토리의 모든 허가

권 값이 변경되어진다.

[alang@zzang911 alang]$ chmod -R /home/alang/www

소유자와 소유그룹 변경은 chown 과 chgrp 로 바꿀수 있다.

chown [소유자.소유그룹] [파일,디렉토리]

chgrp [소유그룹] [파일,디렉토리]

3. 생성 파일의 기본 허가권 설정

시스템 관리자들은 시스템에 존재하는 모든 사용자 파일에 대한 기본허가권

을 어떻게 해야할지 정해야 합니다. 새로운 파일의 기본허가권을 정할땐

umask 라는 명령어를 사용합니다.

파일 생성 함수인 open 은 새파일에 대해 666의 허가권을 요청하는데 umask

가 022 로 지정되어있으면 644 ( 666 – 022 = 644 ) 의 허가권 값이 새 생성

파일의 주어지게 된다. 디렉토리일 경우는 처음 요청시 777 의 허가권을 요

청하게 되고 umask 가 022 일때는 755 ( 777 – 022 = 755 ) 로 주어지게 됩

니다.  이런 umask 는 각 사용자의 환경설정 파일인 .bashrc 나 .bash_profie

에 ‘umask 022’ 이런 형식으로 지정하면 됩니다.

이밖에 FTP 를 통해 생성되는 파일일 경우에는 FTP 데몬이 inet 데몬의 제어

를 받을땐 /etc/inetd.conf 파일의 ftp 설정부분을 다음과 같이 고쳐주시면

됩니다.

ftp    stream  tcp nowait  root    /usr/sbin/tcpd  in.ftpd -l -a -u022

inet 데몬 제어가 아니고 독립적으로 운영될 경우는 FTP 설정 파일에 umask

부분을 변경해 주시면 됩니다.

이밖에 파일의 유형을 알고 싶을땐 file 이란 명령어를 사용하여 알수 있습

니다.

[alang@zzang911 alang]$ file young.mpeg

young.mpeg: MPEG system stream data

그리고 파일의 접근 통계를 알고 싶으시면 stat 명령어를 사용하시면 쉽게

알수가 있지요..

[alang@zzang911 alang]$ stat young.mpeg

  File: “young.mpeg”

  Size: 843328       Filetype: Regular File

  Mode: (0666/-rw-rw-rw-)     Uid: (504/alang) Gid: (504/alang)

Device:  3,66  Inode: 64520   Links: 1

Access: Thu Nov 23 19:54:00 2000(00000.00:00:59)

Modify: Fri Oct 13 16:15:47 2000(00041.03:39:12)

Change: Mon Oct 23 16:16:05 2000(00031.03:38:54)

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.