이번 포스트에는 Linux 파일과 디렉토리 구조와 소유권 및 허가권에 대해서 알아보도록 하겠습니다.
아래와 같은 내용을 알아보도록 하겠습니다.
01 파일과 디렉토리의 구조와 형태
02 허가권 및 소유권 : chmod. chown, chgrp
03 기본 소유권한 : umask
우선 파일과 디렉토리의 구조를 살펴보도록하겠습니다.
1.1. Linux 파일의 구조 : 파일 유형+파일의 허가권 / 링크 수 / 소유자 / 그룹 / 크기 / 날짜 / 시간 / 파일명으로 구성됩니다.
1.2. 파일 유형 : ls -l 명령어를 통해 파일의 리스트를 확인할 시 가장 앞에 붙은 문자는 파일의 유형을 의미합니다.
1.3. 파일허가 : 리눅스의 파일허가는 3개씩 끊어서 읽으면 됩니다. 파일에 따른 사용자 별로 나뉘어집니다. 개별 권한은 문자, 8진수, 2진수 모두 필수적으로 알고 있어야 합니다.
각 자리마다 2^2, 2^1, 2^0의 값으로 이를 모두 더하면 8진수의 값 7의 값이 되어, 각 사용자별 최대 권한은 7을 부여할 수 있습니다. 가령 특정 파일의 소유자나 그룹의 사용자가 아닌 그 외의 사용자들에게 Read 권한만 부여했다면 해당 권한은 r--로 표시되며 8진수로 4로 표현할 수 있습니다.
이제 개별 파일과 디렉토리에 허가권과 소유권을 부여하는 방법에 대해서 알아보도록 하겠습니다.
테스트 예제를 위해 user A와 B와 텍스트 파일 HelloGoal.txt, 디렉토리 Todays를 생성해 보도록 하겠습니다.
[root@ ~]# useradd A // user A 생성 [root@ ~]# useradd -G A B // user B 생성 및 그룹 A에 할당 [root@ ~]# tail -2 /etc/passwd // tail -2 문서의 끝 두줄을 출력 A:x:1000:1000::/home/A:/bin/bash B:x:1001:1001::/home/B:/bin/bash [root@ ~]# tail -2 /etc/group // User B의 그룹 A 할당 확인 A:x:1000:B B:x:1001: [root@ ~]# su - A // User A 접속 |
2.1. chmod : 소유자가 파일 및 디렉토리의 허가 권한을 설정할 수 있습니다. 사용자별로 8진수로 권한을 주는 방식을 통해 가장 간단하게 허가권을 설정할 수 있습니다. 8진수는 1.3. 파일허가를 참고하시면 됩니다. 추가적으로 문자를 통한 심볼릭 방법이 있습니다.
ex) 숫자: chmod 775 test: test파일에 소유자 및 그룹은 Read, Write, eXcute 권한, 그외 사용자들은 Read, eXcute권한부여. Apache 설정으로 많이 사용합니다.
문자: chmod u+x: user에게 eXcute 권한을 부여 / chmod g-x: 그룹의 Write 권한을 삭제 / chmod a-r: 그외 사용자에게 Read 권한 부여 / chmod a+rw: 사용자별로 Read, Wirte 권한을 부여합니다.
HelloGoal.txt[A@ ~]$ ls -l /home // user A의 홈디렉토리는 그룹 A user들이 실행 및 읽기가 가능합니다. drwxr-x---. 3 A A 118 2월 12 20:03 A drwx------. 2 B B 62 2월 12 20:05 B [A@ ~]$ chmod 640 HelloGoal.txt // 그룹 user가 "HelloGoal.txt" 파일을 변조할수 없도록 Read 권한만 부여합니다. |
2.2. chown/chgrp : 슈퍼유저가 파일 및 디렉토리의 소유권 및 그룹 권한을 변경할 수 있습니다.
chown은 소유권 및 그룹권한 모두를 변경할 수 있으며, chgrp 그룹 권한만 변경할 수있습니다.
[A@ ~] $ chown B HelloGoal.txt |
다음으로는 기본 소유권한을 부여하는 방법에 대해서 알아보도록 하겠습니다.
문서를 만들 때마다 개별 권한을 부여하는 일은 굉장히 귀찮고 어려운 일입니다. 따라서 해당 user가 만드는 파일의 기본권한을 설정하는 방법을 살펴보겠습니다.
3. umask : user의 기본 권한을 부여합니다.
user의 기본 umask는 0002로 형성됩니다. 해당 사항을 확인하기 위해서 -S 옵션을 사용하면 문자로 내용을 확인할 수 있습니다. umask의 적용은 간단하게 계산해볼 수 있습니다. umask를 활용한 권한은 뒤의 세자리와 일반파일의 생성권한은 실행권한이 없기 때문에 666, 디렉토리의 생성권한은 777이 기준으로 계산합니다.
기준 - umask
ex3_1) 일반파일 기준 666 - umask 0002 = 권한 664 = -rw-rw-r--입니다.
그렇다면 기준보다 umask 값이 큰 권한의 값은 출력이 어떻게 될수 있을까요?
ex3_2) 일반파일 기준 666 - umask 0077= 권한 600 = -rw-------입니다.
[A@ ~] $ umask // user A의 기본 권한을 확인할 수 있습니다. [A@ ~]$ ls -l |
이상 Linux 파일과 디렉토리 구조와 소유권 및 허가권에 대해서 알아봤습니다. 감사합니다.
'ITStudy > Linux' 카테고리의 다른 글
xrdp 설치를 통한 GUI 환경 구축하기(+포트변경) (0) | 2021.06.12 |
---|---|
virsh로 VM 시스템 관리하기 (0) | 2021.06.10 |
VMware 상 CentOS8 최소 설치 후 네트워크 고정IP 설정 (0) | 2021.02.11 |
Linux 사용자와 그룹 관리 기본 02 (0) | 2021.02.10 |
Linux 사용자와 그룹 관리 기본 01 (0) | 2021.02.09 |