파일의 권한
리눅스의 모든 파일에는 권한이 설정되어 있으며, 권한은 소유권과 허가권으로 구성되어있습니다.
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으로 변경해줍니다.
'서버 > Linux' 카테고리의 다른 글
[Linux] 사용자 패스워드 관리 (chage) & 파일속성설정 (0) | 2017.10.11 |
---|---|
[Linux] UMASK & 특수 허가권 (SetUID, SetGID, StickyBit) (0) | 2017.10.11 |
[Linux] 사용자 계정 관리 (2) (0) | 2017.10.11 |
[Linux] 사용자 계정 관리 (1) (0) | 2017.10.11 |
[Linux] 쉘 스크립트 (0) | 2017.09.28 |