임베디드/리눅스(Linux)

리눅스 파일의 종류와 권한 Linux File

마달랭 2024. 9. 11. 13:30
반응형

개요

리눅스에서 파일의 종류에 대해 학습한다.

리눅스는 모든 것을 파일로 관리한다.

 

 

리눅스 파일의 종류

Reguler File

일반 파일

 

Directory File

리눅스 커널 내부에서는, 디렉토리도 파일로 취급

 

Link File

윈도우의 바로가기와 비슷한 파일

 

Device File

새로운 장치 (마우스 등) 연결하면, 상징물과 같은 파일이 하나 생긴다.

이 파일을 건드리면, 장치를 제어할 수 있다.

 

 

파일 종류 확인하기

ls –al 명령어로 확인할 수 있다

cd /, ls –al를 순차적으로 명령어로 입력하면 root에 존재하는 파일 정보를 확인할 수 있다.

 

 

가장 앞 한 글자를 확인해 주면 해당 파일의 종류를 알 수 있다.

  • - : regular file
  • d : directory file
  • l : link file
  • c, b : device file

 

파일 권한

파일 권한 관리란? 특정 파일에 대한 read/write/execute 권한을 부여하는 것을 의미

다중 사용자 시스템에서 굉장히 중요한 내용

ex) 인사팀의 인사고과 파일을 개발팀, 설계팀은 존재까지는 알 수 있어도 볼 수 없다.

 

파일의 종류 다음으로 나오는 9개의 글자는 권한을 의미한다.

  • r : read 읽기
  • w : write 쓰기
  • x : execute 실행
  • - : 없음

그 다음 나오는 정보는 파일의 소유자와 소유 그룹에 대한 정보이다.

 

  • 해당 파일의 owner 와 owner group을 의미
  • 앞서 설명한 권한이 owner 와 owner group을 의미
  • 파일의 권한은 owner 와 owner group이 다를 수 있다.

other 란, owner 도 owner group도 아닌 user 들이다.

 

 

파일의 소유자/그룹 변경하기

chown [owner]:[ownergroup] [파일명]

당연하게도, 관리자의 권한이 필요하다.

 

현재 사용자의 home 디렉토리에서 test 디렉토리를 생성하였고 그 안에 abc 라는 이름의 파일을 추가했다.

abc 파일의 정보를 보면

  •  - : 일반 파일이면서
  •  rw- : 기재된 사용자는 읽기와 쓰기가 가능하고
  •  rw- : 기재된 그룹의 사용자들은 읽기와 쓰기가 가능하고
  •  r-- : 그 외의 사용자들은 읽기만 가능하다.

 

sudo chown inho:embeddedteam abc

 

위의 명령어를 통해 abc파일의 소유자를 inho로, 소유 그룹을 embeddedteam으로 바꾸어 주었다.

 

 

파일 권한 변경하기

chmod [mode] [파일명]

파일 권한을 file mode 라고 한다, 당연히, 관리자의 권한이 필요하다.

 

 

sudo chmod u=rwx abc

 

위 명령어를 통해 소유자의 권한을 rwx 모두 가능하게 변경해 주었다.

u가 소유자의 권한을 뜻하고, rwx가 읽기, 쓰기, 접근 권한을 모두 부여한다는 의미이다.

 

user / group / other / all 에 권한을 부여할 수 있다.

  • sudo chmod u=rx abc
  • sudo chmod g=wx abc
  • sudo chmod o=r abc
  • sudo chmod a=x abc

부여할 때 기존에 있던 권한에 +,- 하거나 = 지정할 수 있다

  • sudo chmod u+r abc
  • sudo chmod g+r abc
  • sudo chmod o+r abc
  • sudo chmod a+w abc

2진수로 권한을 부여할 수 있다.

user / group / other 의 각각 3자리를 0-7로 표현한다.

  • r-- -w- --x = 421
  • rwx rwx rwx = 777
  • rw- rw- r-- = 664

 

권한 테스트하기

 

sudo chmod 770 abc

관리자 권한으로 abc 파일에 대해 소유자는 rwx, 소유자 그룹은 rwx, 다른 사용자는 ---의 권한을 부여했다.

소유자 및 소유자 그룹은 읽기, 쓰기, 접근이 가능하지만 다른 유저는 접근할 수가 없다.

 

즉, inho 및 embeddedtream은 해당 파일에 읽고, 쓰고, 접근할 권한이 있다.

현재 로그인 된 계정은 ssafy로 해당 파일에 접근하려고 하자 허가 거부 error가 노출되었다.

 

디렉토리 또한 권한을 부여할 수가 있다.

 

 

  1. 관리자 권한을 사용하여 ssafy의 home에 있는 test 디렉토리의 소유자를 inho로, 소유 그룹을 embeddedteam으로 변경했다.
  2. ls -al로 살펴본 결과 정상적으로 소유권이 넘어간 점이 확인되었다. (제일 상위 내용)
  3. 관리자 권한을 사용하여 test 디렉토리의 권한을 770으로 변경하였다.
  4. 이후 ls -al을 사용하자 허가 거부 error가 노출된다. ssafy는 해당 디렉토리를 읽을 권한이 없기 때문이다.
  5. touch abcd 역시 허가 거부되었다, ssafy는 해당 디렉토리에 쓸 권한이 없기 때문,
  6. 마지막으로 상위 폴더로 갔다가 다시 test에 접근하려고 하자 허가 거부되었다, 접근 권한이 없기 때문

 

728x90
반응형