Fascination
article thumbnail

# 파일 속성

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
profile

Fascination

@euna-319

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!