# 파일 속성
ls -l
* ls 명령 사용시 파일 이름이
> 빨간색: 바이너리
> 파란색: 디렉터리
> 초록색: txt파일 또는 x권한이 있는 파일
# 파일 유형
디렉터리 | d |
일반적인 파일 | - |
블록 디바이스 | b |
문자 디바이스 | c |
링크 | l |
* 'b'나 'c'는 디바이스(장치)를 뜻함
ls -l /dev | more
> 실행해서 확인해보면 b나c가 많이 보일 것
> b는 블록 디바이스를 의미하며 대표적인 것으로 하드디스크, 플로피 디스크, CD/DVD 등의 저장장치가 있음
> c는 문자 디바이스를 의미하며 대표적인 것으로 마우스, 키보드, 프린터 등의 입출력장치가 있음
> l은 링크를 뜻함. 링크란 Windows의 '바로 가기 아이콘'과 비슷한 개념으로 연결된 파일을 의미하며
실제 파일은 다른 곳에 존재함
# 파일 허가권
- "rw-", "r--", "r--" 3개씩 끊어서 읽음
r: read
w: write
x: execute
* 디렉터리에서 x의 의미: 디렉터리로 진입할 수 있는가?
- 첫 번째 "rw-"는 소유자(User)의 파일 접근 권한
- 두 번째 "r--"는 그룹(Group)의 파일 접근 권한
- 세 번째의 "r--"는 그 외의 사용자(Other)의 파일 접근 권한
- 숫자로도 표시 가능(8진수)
> 소유자의 허가권인 6이라는 숫자는 2진수 110이므로 rw-로 표현 가능
> 그룹의 허가권인 4는 2진수로 100이므로 r--로 표현 가능
- 숫자 표현의 예시
> 파일 허가권이 754라는 것은 rwxr-xr--가 됨
> 소유자는 읽고/쓰고/실행할 수 있음
> 그룹은 읽고/실행할 수만 있음
> 그 외 사용자는 읽을 수만 있다는 것을 의미
- 파일 확장명
> 리눅스는 확장명에 별 의미를 두지 않음
> 파일의 종류를 판단하는 절대적인 의미가 아님
> 해당 파일이 어떤 파일인지 알려면 file 명령을 사용해야 함
- 파일 허가권 변경
chmod 777 sample.txt
> chmod: root 사용자 또는 해당 파일의 소유자만 실행 가능
> 위의 명령어를 실행하면 모든 사용자가 읽고, 쓰고, 실행할 수 있는 파일이 됨
> 파일의 허가권을 실행할 수 있도록 설정해도, 파일이 실제로 실행 가능한 코드가 아니라면
실행 시 오류가 날 수 있음
ex) image.jpg를 image.exe로 확장명을 변경할 수는 있지만 image.exe 파일이 실제로는 실행되지 않음
- chmod의 상대 모드
> chmod u+x 파일 이름: 소유자에게 실행 권한을 허가(+)하라
> chmod u-wx 파일 이름: 소유자에게 쓰기와 실행 권한을 제거(-)하라
> chmod g+rx 파일 이름: 그룹에게 읽기와 실행 권한을 허가하라
> chmod o+rwx: 그 외 사용자에게 읽기/쓰기/실행 권한을 허가하라
# 파일 소유권
- 파일 소유권: 파일을 소유한 사용자와 그룹을 의미
> 파일의 소유권을 바꾸는 명령어는 chown / 그룹은 chgrp
chown 새로운사용자이름(.새로운그룹이름) 파일이름 # 사용자와 그룹 이름 모두 변경
chown 새로운사용자이름 파일이름 # 사용자 이름 변경
chgrp 새로운그룹이름 파일이름 # 그룹 이름 변경
# 특수한 형태의 파일 권한
- 파일 허가권은 앞에서 배운 rwx외에도 특수한 용도의 setuid, setgid, stiky bit가 있음
- 파일의 허가권은 실제로 8진수 0000(8) ~ 0777(8)까지 4자리로 표현 할 수 있음
- setuid
> 8진수 네 자리 중 첫 번째 값을 100(2)로 표현하는 것을 setuid라 부름
> 리눅스의 파일 중 비밀번호를 지정하는 /bin/passwd가 이에 해당함
> /bin/passwd의 속성
> 원칙적으로는 root만 접근할 수 있으나 4755(8)(=rwsr-xr-x)로 설정되었기 때문에 일반 사용자도 실행 가능
> setuid로 설정하려면 chmod u+s 파일명 명령을 사용
- setgid bit
> 네 자리 중 첫 번째 값을 010(2)로 표현
> 사용자가 아닌 그룹에 대해서 적용된다고 생각
- stiky bit
> 네 자리 중 첫 번째 값을 001(2)로 표현하는 것
> sticky bit로 설정한 디렉터리는 회사 업무상 공유할 내용들을 업로드 시키는 목적으로 주로 사용
> chmod o+t 파일명
> 바이너리 파일에 적용하면 실행 파일을 실행했을 때 주메모리에 계속 상주하게 함 (swap out이 X)
[출처]
- 숙명여자대학교 서버운영및보안 수업 - 이종우 교수님
- 이것이 우분투다 (개정판) - 우재남 지음
'Study > Linux' 카테고리의 다른 글
[Linux] RPM (0) | 2021.10.23 |
---|---|
[Linux] 링크 (0) | 2021.10.22 |
[Linux] 사용자와 그룹 (0) | 2021.10.11 |
[Linux] 리눅스 기본 명령어 (0) | 2021.10.11 |
[Linux] 마운트와 CD/DVD/USB의 활용 (0) | 2021.10.11 |