1. 우분투의 파일시스템 구조
운영체제는 적절한 저장 장치에 설치된다. 또한 운영체제가 설치된 공간 외에 사용자가 자료를 저장하거나 프로그램을 설치할 수 있는 공간도 필요하다.
사용자가 데이터를 저장하기 위해서는 파일시스템을 사용할 수 있도록 영역을 설정해야하는데, 이를 저장 장치를 포맷한다고 한다. MS윈도우의 경우 C: 드라이브 또는 D: 드라이브 등을 만드는 것이다. 저장 장치를 두 개 연결하거나, 하나의 저장 장치에 파티션을 나누어 구현할 수 있다.
윈도우와 리눅스는 서로 다른 파일시스템을 쓰기 때문에 다른 형식으로 저장 장치를 포맷한다. 즉 윈도우는 리눅스의 파일시스템을 인식할 수 없고 리눅스는 윈도우의 파일시스템을 인식할 수 없다(리눅스의 경우 업데이트 되면서 윈도우의 파일시스템을 인식할 수 있게 되었다고 함).
윈도우와 리눅스 파일시스템의 가장 큰 차이는 리눅스는 드라이브라는 개념이 없고, 단 하나의 파일시스템으로 구성되어야 한다는 것이다. 리눅스 파일시스템의 최상위는 루트 디렉토리(/)라고 부르는 공간이다. 우분투에 드라이브라는 개념이 없다면 아래와 같은 질문이 생긴다.
1. 저장 장치가 2개이면 어떻게 해야하나?
2. USB 메모리 스틱은 또 어떻게 읽고 쓰나?
질문에 대한 답은 "리눅스는 모든 저장 장치를 디렉토리 형태로 관리한다"이다.
리눅스는 저장 장치가 여러 개 존재할 경우 각각의 저장 장치를 각각의 디렉토리에 연결하게 된다. 이를 우분투는 "마운트 한다"라고 표현한다.
예를 들어, 저장 장치 하나는 운영체제가 설치되어 부팅이 되는 주 저장 장치일 테니 반드시 루트(/) 디렉토리에 마운트되어 있게 된다. 이후 다른 저장 장치를 사용하려면 루트 디렉토리에서 /other_disk 라는 디렉토리를 만들고 다른 저장 장치를 이곳에 마운트 하면 된다.
결론적으로 리눅스에서 드라이브를 사용하기 위한 방법의 핵심은 마운트이다.
추가적으로 CDROM이 마운트되는 디렉토리는 /media/cdrom이고, USB 메모리 스틱은 /media/[usb명] 디렉토리에 마운트된다. 이러한 방식의 장점은 파일시스템의 저장 공간을 늘리기에 매우 용이하다는 점이고, 단점은 저장 장치가 어떻게 파일시스템과 연동되고 있는지 직관적으로 알기가 어렵다는 점이다.
마운트 관련 명령어
명령어 | 기능 |
df | 마운트 정보를 간략하게 나타냄 |
mount | df보다 더 세부적인 내용을 보여줌. (읽기 전용, 쓰기 전용 등의 정보까지) |
2. 윈도우의 디렉토리 구조
디렉토리 | 역할 |
C:\Windows | 운영체제에 관한 모든 파일과 데이터를 저장 |
C:\Program Files | 프로그램 설치시 주로 이곳에 데이터를 저장 |
C:\Users | 사용자의 데이터를 담고 있는 폴더 |
윈도우의 폴더 구조에서 가장 중요한 폴더는 이렇게 3개 정도이며, 그 역할이나 용도가 정확하게 구분되어 있어서 어렵지 않다.
3. 리눅스(우분투)의 디렉토리 구조
디렉토리 | 역할 | 상세 |
bin | User Binaries | 실행파일들을 모아놓은 곳. cp, rm 등이 존재. 모든 실행파일이 이곳에 있는 것은 아님. |
sbin | System Binaries | 시스템 관리자용 실행파일들을 모아놓은 곳. |
etc | Configuration Files | 환경설정 파일들을 모아놓은 곳. 윈도우의 경우 레지스트리나 프로그램 개별 폴더에 저장. |
dev | Device Files | 장치를 접근할 수 있는 파일들이 있는 곳. 리눅스는 장치를 파일로 표현하기 때문. |
lib | System Labraries | 시스템에서 사용하는 라이브러리 파일들이 있는 곳. 윈도우에선 DLL이란 파일 사용. |
home | Home Directories | 사용자 데이터를 저장하고 있는 디렉토리. 다중 사용자를 구분하기 위한 디렉토리. |
usr | User Programs | 사용자가 사용하는 프로그램들이 있는 디렉토리. 운영체제에 설치되는 대부분의 응용프로그램들이 이곳에 설치됨. |
proc (sys) | Process Information | 실제로 존재하는 파일을 담고 있는 디렉토리가 아닌 현재 시스템의 상태나 정보들을 알려주는 파일들을 담고 있음. |
위의 표에서 모든 디렉토리를 다룬 것은 아니다. 추후에 필요할 때마다 하나씩 살펴봐도 무방한 것들이므로 우선 넘어간다. 위에서 설명한 디렉토리 중 가장 자주 참고하게 될 디렉토리는 home과 etc 디렉토리다.
4. 사용자 권한
리눅스 시스템들은 최초에 개발될 때부터 다수의 사용자가 동시에 한 컴퓨터를 같이 쓰는 환경을 고려해서 개발되었다. 다수의 사용자가 같이 하나의 컴퓨터를 사용할 때 가장 중요한 것은 파일의 소유권과 사용권한이다.
사용자 | |
소유자 | 파일의 주인. 파일을 생성하면 자동으로 해당 계정이 파일의 주인이 됨 |
소유그룹 | 계정들은 특정 그룹으로 묶여 있을 수 있다. groups 라고 입력하면 자신이 속한 그룹을 확인할 수 있음 |
제3자 | 파일의 소유자도 아니고, 소유그룹도 아닌 모든 계정은 제3자 계정에 속함 |
이를 자세히 알아보기 위해 root 디렉토리에서 ls -l 명령어를 입력한다.
bin 폴더의 경우 앞에 drwxr - xr - x 라고 나와있는데 이것이 의미하는 바는 다음과 같이 구분하여 확인할 수 있다.
0 123 456 789
d rwx r - x r - x
0번 영역
디렉토리를 의미한다. 파일은 -로 표시가 된다.
123 영역
소유자의 사용권한을 의미한다. rwx 이므로 소유자는 읽고, 쓰고, 실행할 수 있는 모든 권한을 부여 받았다.
456 영역
소유 그룹의 사용권한을 의미한다. r - x 이므로 소유그룹은 읽고, 실행할 수 있는 권한을 부여 받았다.
789 영역
제 3자의 사용권한을 의미한다. r - x 이므로 제 3자는 읽고, 실행할 수 있는 권한을 부여 받았다.
디렉토리는 리눅스에서 파일의 일종으로 분류된다. 하지만 디렉토리 안쪽으로 이동해서 들어가려면 반드시 디렉토리가 실행권한을 가지고 있어야 한다. 따라서 위 예제에서 모든 디렉토리가 실행권한을 가지고 있는 것이다.
권한을 제대로 설정하지 않는다면, 아무리 자기 소유의 파일이라도 '권한 없음' 오류를 만날 수 있음에 유의해야 한다.
5. 권한 바꾸기
권한을 바꾸는 명령어는 chmod인데 이를 사용하는 방법은 2가지가 있는데, 그 중 영문자를 이용해서 옵션을 주는 방법을 살펴보면 다음과 같다.
$ chmod u-x Music
위 명령은 Music 디렉토리의 소유자 권한 중에서 실행권한을 제거하라는 명령이다.
u는 소유자를 의미하고 -x는 실행권한 제거를 의미하기 때문이다.
다른 옵션은 다음과 같다.
권한 구분 | 권한 종류 | ||
u | 소유자 | +r 또는 -r | 읽기 권한 추가 또는 삭제 |
g | 소유 그룹 | +w 또는 -w | 쓰기 권한 추가 또는 삭제 |
o | 제 3자 | +x 또는 -x | 실행 권한 추가 또는 삭제 |
'Linux' 카테고리의 다른 글
[워드프레스 설치] 우분투 리눅스 입문편 - 리눅스의 신 (6) (0) | 2021.01.03 |
---|---|
[APM 설치] 우분투 리눅스 입문편 - 리눅스의 신 (5) (0) | 2021.01.03 |
[시스템 관리] 우분투 리눅스 입문편 - 리눅스의 신 (4) (0) | 2021.01.02 |
[루트 계정] 우분투 리눅스 입문편 - 리눅스의 신 (3) (0) | 2021.01.02 |
[기초 명령어] 우분투 리눅스 입문편 - 리눅스의 신 (1) (0) | 2021.01.01 |