본문 바로가기
서버/Linux

[Linux] 파일의 권한 (소유권 & 허가권)

by 느링 2017. 10. 11.

파일의 권한

리눅스의 모든 파일에는 권한이 설정되어 있으며, 권한은 소유권허가권으로 구성되어있습니다.

 

1. 소유권 ( Ownership ) - 파일을 소유한 권한

 

① 소유권 확인 명령어

# ls -l or # ll

<예제 1>

ll /bin/ls → /bin/ls 파일의 소유권 확인

root root → 소유권 필드 (소유 계정, 소유 그룹)

/bin/ls → 파일명

 

② 소유권 변경 명령어

# chown (CHange OWNership) [소유계정]:[소유그룹][파일]

<예제 1>

/practice/chown_test 디렉터리에 file1파일 생성 후 소유권 확인

mkdir → 테스트 디렉토리 생성 후

touch file1 → 테스트용 파일 생성해줍니다.
file1의 소유 계정 : root 그룹 계정 : root      
[소유권]  →  root root    [파일명] → file1

※ 기본적으로 파일의 소유권은 해당 파일을 생성한 계정의 UID와 GID값에 의해서 결정됩니다.

<예제 1>

root 계정 UID : 0  GID : 0 

+-----------------------------------------------------------------------------------------------------------+

<문제 1>

1. TEST-ADMIN 그룹 안에 같은 GID를 가지는 test-admin 계정과

TEST-USER 그룹 안에 같은 GID를 가지는 test-user 계정 생성하기

( = TEST-ADMIN 그룹을 대표 그룹으로 가지는  test-admin 계정과

     TEST-USER 그룹을 대표 그룹으로 가지는 test-user 계정 생성하기 ) 

먼저 테스트용 그룹을 생성해줍니다.

첫번째는 그룹명을 이용하여 생성해줍니다.

두번째는 그룹의 GID를 직접 확인하여 (507) GID를 입력해 생성해줍니다.
마지막으로 각 계정의 대표(기본) 그룹을 확인해줍니다.

 

<문제 2>

test-admin 계정으로 전환 후 file1 생성 및 소유권 확인하기

소유 계정 : test-admin    소유 그룹 : TEST-ADMIN

 

<문제 3>

root 계정으로 전환, (한 번에 소유 계정, 그룹을 바꿀 수 있지만)

일단 /practice/chown_test/file1의 소유 계정만 test-admin 으로 변경한 후

소유 그룹을 TEST-ADMIN으로 변경하기

 

file1의 소유 계정 : test-admin    소유 그룹 : TEST-ADMIN

 

<문제 3>

※' : '대신에 ' . '으로 필드를 구분할 수 있습니다.

' . '을 이용하여 file1의 소유 계정, 소유 그룹을 root로 한 번에 변경하기

 

+-----------------------------------------------------------------------------------------------------------+

 

2. 허가권 (Permission)

 

허가권 필드 확인 명령어

# ls -l or # ll

<예제 1>

[ 파일 유형 필드 ] [ 허가권 필드 ] [ 파일명 ]

     -               rwxr-xr-x        /bin/ls

 

허가권 필드는 총 3개의 필드로 구성되어있습니다.

r w x              r - x              r - x

사용자(User)    그룹(Group)    기타 사용자(Other)

 

- 각 필드마다 사용자, 그룹, 기타사용자가 파일을 읽고, 쓰고 실행 할 수 있는 여부를 문자로 표현한 것입니다.

 

※ rwx의미

r  (read) : 읽기 권한

w (write) : 쓰기 권한

x  (eXcute) : 실행 권한

-  (bar) : 해당 권한 없음

ex) 특정 파일의 허가권

rw-r--r--

rw- : 해당 파일을 소유한 사용자(User)는 해당 파일을 읽고 쓸 수 있는 권한이 있다.

r-- : 해당 파일을 소유한 그룹(Group)은 해당 파일을 읽을 수 있는 권한만 있다.

r-- : 해당 파일을 소유한 사용자, 그룹도 아닌 그 외 나머지 사용자는 읽기 권한만 있다.

 

② 허가권 변경 명령어

# chmod ( CHange MODe ) [기호모드+허가권]&[숫자모드] [파일명]

해당 명령어에는 2가지 모드가 있습니다.

 

① [기호모드] (상대값/Symbolic Mode) → 사람이 사용하기 편한 형태

 

+ : 권한 부여    s : SetUID, SetGID    u :User

-  : 권한 제거    t : Sticky                g : Group

= : 권한 유지                               o : Other

        a : All

대상 ( u, g, o, a) 에 대해서 허가권 ( r, w, x ) 을 부여하는 명령어

 

+-----------------------------------------------------------------------------------------------------------+

 

<문제 1>

기호 모드로 허가권 변경하기

/practice/test-file 파일을 만들고 아래 보기와 같이 허가권 변경하기

[보기] rwxr-x---

 

<문제 2>

사용자, 그룹, 기타 사용자 모두 읽고 쓰고 실행할 수 있도록 하기

 

<문제 3>

사용자는 해당 파일을 읽기, 쓰기 권한이 있다.

그룹은 해당 파일을 읽기 권한만 있다.

그 외 사용자는 권한이 없다

 

+-----------------------------------------------------------------------------------------------------------+

 

② [숫자모드]

- 각각의 허가권 필드를 8진수로 표기하는 방법입니다.

- 완전한 표기법은 4자리이나, 보통 3자리만 사용합니다.

 

[허가권 필드]            [사용자]            [그룹]            [기타 사용자]

기호                          rwx                 rwx                rwx

자리수                       421                 421                421

2진수                        111                 111                111

8진수                         7                    7                   7

 

<문제 1>

숫자 모드로 아래와 같이 test_file의 허가권을 변경해라

① rwx rw- r-- → 7 6 4

② r-- r-x --- → 4 5 0

 

+-----------------------------------------------------------------------------------------------------------+

[ 실습 1 ]

/etc/shadow 파일을 test-admin 계정이 읽을 수 있도록 권한을 변경 후

test-admin 계정으로 전환하여 테스트 ( cat /etc/shadow )

단, 기타 사용자 필드 권한은 수정하지 않는다.

 

 

사용자(소유자)만 읽기 권한이 있고 소유 계정이 root여서 root계정으로만 읽기가 가능합니다.

 

 

 /etc/shadow 소유 계정을 test-admin으로 변경해줍니다.