파일 속성
- 사용자는 자신의 파일과 디렉토리에 접근 권한 설정
- 리눅스는 파일에
무단 접근 방지
+ 보호 기능
제공
파일 종류 | 접근 권한 | 하드 링크 개수 | 파일 소유자 | 소유자 그룹 | 파일 크기(byte) | 마지막 수정 날짜 | 파일명 |
---|
- | rw-r--r-- | 1 | root | root | 158 | 12월 7 2016 | /etc/hosts |
- 접근 권한: 파일을 읽고 쓰고 실행할 수 있음
1. 파일 종류
file [파일]
- 지정한 파일의 종류를 알려준다.
- 문제 : /etc/hosts 파일의 종류를 확인하기
2. 파일 접근 권한 & 접근 권한 변경
접근 권한 종류
권한 | 표기 | 파일 | 디렉터리 |
---|
읽기 | r | 파일 읽기, 복사 | ls 명령, 실행 권한이 있어야 사용 가능 |
쓰기 | w | 파일 수정, 이동, 삭제 | 파일 생성, 삭제 |
실행 | x | 파일 실행 | cd 명령, 파일 디렉터리로 이동, 파일 디렉토리로 복사 |
접근 권한 표기 방법
rw-r--r--
- 소유자 권한:
rw-
- 그룹 권한:
r--
- 기타 사용자 권한:
r--
접근 권한 조합 ==> 해석해보자
chmod [옵션] [권한 모드 파일 or 디렉토리]
- 파일이나 디렉토리의 접근 권한 변경
-R
: 하위 디렉토리까지 모두 변경 가능
기호(심볼릭) 모드
- 문자와 기호를 사용하여 접근 권한 변경
- 거의 안씀
(나중에 필요하면 리눅스(1) 자료 참고)
숫자 모드(중요)
- 숫자를 사용하여 접근 권한 변경
- 권한의 유/무를 0과 1로 표기한 후 10진수로 다시 환산하여 표현
- 카테고리별로 권합 조합에 따라 0~7로 나타냄
구성요소
- 소유자(0~7)/그룹(0~7)/기타 사용자(0~7)
숫자 모드 구성 요소
- 0: 아무 권한도 없음
- 1: 실행 권한
- 2: 쓰기 권한
- 3: 실행, 쓰기 권한
- 4: 읽기 권한
- 5: 읽기, 실행 권한
- 6: 쓰기, 읽기 권한
- 7: 읽기, 쓰기, 실행 권한
- 1,2,4만 외우자!!!
숫자 모드로 접근 권한 변경하기
- chmod (0~7) (0~7) (0~7) 파일명
- 항상 세 자리 수를 사용해야 함
문제 풀기
현재 접근 권한은 (rw-r--r--)
1. 소유자의 쓰기 권한을 제거
[root@localhost 20220511]# chmod 444 test
[root@localhost 20220511]# ls -ld test
-r--r--r--. 1 root root 0 May 11 23:41 test
- 그룹에 쓰기와 실행 권한을 부여
[root@localhost 20220511]# chmod 474 test
[root@localhost 20220511]# ls -ld test
-r--rwxr--. 1 root root 0 May 11 23:41 test
- 기타 사용자에게 실행 권한을 부여
[root@localhost 20220511]# chmod 475 test
[root@localhost 20220511]# ls -ld test
-r--rwxr-x. 1 root root 0 May 11 23:41 test
- 그룹과 기타 사용자의 실행 권한을 제거
[root@localhost 20220511]# chmod 464 test
[root@localhost 20220511]# ls -ld test
-r--rw-r--. 1 root root 0 May 11 23:41 test
- 모두에게 실행 권한 부여
[root@localhost 20220511]# chmod 575 test
[root@localhost 20220511]# ls -ld test
-r-xrwxr-x. 1 root root 0 May 11 23:41 test
- 소유자에게 쓰기 권한 부여 그리고 그룹의 쓰기 권한 제거
[root@localhost 20220511]# chmod 755 test
[root@localhost 20220511]# ls -ld test
-rwxr-xr-x. 1 root root 0 May 11 23:41 test
- 소유자의 권한만 남기고 나머지 사용자의 권한은 모두 제거
[root@localhost 20220511]# chmod 700 test
[root@localhost 20220511]# ls -ld test
-rwx------. 1 root root 0 May 11 23:41 test
5. 기본 접근 권한
- 파일이나 디렉토리는 기본 접근 권한이 자동으로 설정 됨
- 일반 파일 생성시 최대 권한 : rw-rw-rw-(666)
- 디렉토리 파일 생성시 최대 권한 : rwxrwxrwx(777)
umask
- 기본 접근 권한 확인 및 변경
- root 계정 umask 값: 0022
- 일반 사용자 계정 umask 값: 0002
- 파일이나 디렉토리 생성시 부여하지 않을 권한을 지정
==> (root 계정과 일반 사용자 계정에 따라 기본 접근 권한이 다르다!!!)
[root@localhost 20220511]# umask
0022
[root@localhost 20220511]# touch file
[root@localhost 20220511]# ls -ld file
-rw-r--r--. 1 root root 0 May 12 00:07 file
마스크 값 변경하기
- 마스크 값 변경 시 파일 or 디렉토리 생성 때 적용되는 기본 접근 권한 변경
[root@localhost 20220511]# umask 077
[root@localhost 20220511]# umask
0077
[root@localhost 20220511]# touch file2
[root@localhost 20220511]# ls -ld file2
-rw-------. 1 root root 0 May 12 00:09 file2
문제
- 사용자 계정에서 최대 권한을 생각하기 umask를 확인
- 파일과 디렉토리를 생성
- 각 파일의 권한을 확인
6. 특수 접근 권한
종류
- 0 : 일반 접근 권한
- 1 : 스티키 비트
- 2 : SetGID
- 4 : SetUID
SetUID (4)
- 해당 파일 실행시 파일을 실행한 사용자의 권한이 아닌 파일 소유자의 권한 으로 실행
- SetUID 실행시 소유자의 실행 권한이
s
로 표시
- 파일만 설정 가능
[user@localhost 20220511]$ chmod 755 set.exe
[user@localhost 20220511]$ ls -l set.exe
-rwxr-xr-x. 1 user user 0 May 12 00:25 set.exe
[user@localhost 20220511]$
[user@localhost 20220511]$ chmod 4755 set.exe
[user@localhost 20220511]$ ls -l set.exe
-rwsr-xr-x. 1 user user 0 May 12 00:25 set.exe
- passwd 명령도 SetUID 설정이 되었기 때문에 소유자인 root 권한으로 실행 되어야 암호 변경 가능
SetGID (2)
- 해당 파일이 실행되는 동안에는 파일 소유 그룹 권한으로 실행
- SetGID 실행시 그룹 실행 권한이
s
로 표시
- 파일, 디렉토리 설정 가능
(디렉터리에 설정한 경우 해당 디렉터리에서 생성한 파일의 소유그룹은 해당 디렉터리 소유그룹으로 자동 설정됨
)
[user@localhost 20220511]$ chmod 2755 set.exe
[user@localhost 20220511]$ ls -l set.exe
-rwxr-sr-x. 1 user user 0 May 12 00:25 set.exe
스티키 비트
- 디렉토리만 설정 가능
- 스티키 비트가 설정된 디렉토리에는 소유자/root 외에는 다른 사용자가 생성 및 삭제할 수 없음
- 기타 사용자 실행 권한이
t
로 표시
[user@localhost 20220511]$ mkdir dir
[user@localhost 20220511]$ ls -ld dir
drwxrwxr-x. 2 user user 6 May 12 00:42 dir
[user@localhost 20220511]$ chmod 1777 dir
[user@localhost 20220511]$ ls -ld dir
drwxrwxr-t. 2 user user 6 May 12 00:42 dir