Categories
Linux

디스크 파티션을 자동으로 마운트하기 위한 /etc/fstab 파일 설정

파티션을 마운트하기 전에 시스템에 설치된 디스크 및 파티션 정보를 확인해 보아야 한다. 이때 사용하는 명령이 lsblk 이다.

lsblk

이 명령은 시스템에 설치된 블록 디스크에 관한 정보를 출력한다. 마운트된 파티션이 있으면 어느 디렉토리에 마운트됐는지도 알려준다. 파티션이 마운트된 디렉토리를 마운트 포인트라고 부른다.

/dev/sdb1 파티션을 /mnt/sdb1 디렉토리에 마운트하도록 해 보자.

디렉토리를 생성한다.

sudo mkdir /mnt/sdb1

파티션 마운트를 위한 설정 파일은 /etc/fstab 이다. 이 파일을 편집한다.

sudo vi /etc/fstab

파일의 맨끝에 아래와 같은 내용을 추가한다.

/dev/disk/by-uuid/686593dd-45a0-4108-a883-b4f3b871820d /mnt/sdb1 ext4 defaults 0 2

/dev/disk/by-uuid/686593dd-45a0-4108-a883-b4f3b871820d 는 해당 파티션의 UUID 이다. UUID는 다음 명령으로 확인할 수 있다.

lsblk -o name,uuid

/mnt/sdb1 은 파티션을 마운트할 디렉토리이다.

ext4 는 파티션의 파일 시스템 타입이다. 윈도우에서 NTFS 타입으로 포맷된 파티션을 사용할 경우에는 ntfs 를 적어주면 된다.

defaults 는 마운트할 때 디폴트 옵션값을 사용한다는 뜻이다.

옵션값이 defaults 일 때는 옵션값을 아래와 같이 지정한 것과 같다.

rw,suid,dev,exec,auto,nouser,async

rw 는 파일시스템을 읽기/쓰기용으로 마운트한다는 뜻이다.

suid 는 파일시스템에서 set-user-ID 와 set-group-ID 를 사용한다는 뜻이다.

dev 는 파일시스템에서 문자 디바이스 및 블록 디바이스를 사용한다는 뜻이다.

exec 는 파일시스템에서 바이너리 파일의 실행을 허용한다는 뜻이다.

auto 는 파일시스템이 mount 명령의 -a 옵션에 의해 자동으로 마운트된다는 것을 의미한다.

nouser 는 일반 사용자가 파일시스템을 마운트하지 못하도록 한다.

async 는 파일시스템의 입력 및 출력 처리가 비동기적으로 이루어짐을 의미한다.

0 은 파일 시스템을 덤프하지 않는다는 뜻이다.

2 는 부팅 시에 파일 시스템을 검사하는 순서를 의미한다. 루트 파일 시스템일 경우는 1 로 지정하고 다른 파일 시스템일 경우는 2 로 지정한다. 0 으로 지정하면 부팅 시에 파일 시스템 검사를 하지 않는다.

내용을 추가했으면 파일을 저장하고 편집기를 닫는다.

아래 명령을 실행하면 /etc/fstab 파일에 등록된 파티션이 마운트된다.

sudo mount -a

시스템을 부팅할 때마다 이 명령을 실행할 필요는 없다. /etc/fstab 파일에 등록된 파티션은 부팅 시에 자동으로 마운트되기 때문이다.

다시 lsblk 명령을 실행해 보자.

lsblk

/mnt/sdb1 파티션이 /mnt/sdb1 디렉토리에 마운트된 것을 확인할 수 있을 것이다.

Categories
Linux

screen: 리눅스용 터미널 에뮬레이터

우분투에서 screen 패키지를 설치해 보자.

sudo apt install screen

screen 명령으로 여러 개의 screen 세션을 생성할 수 있다. 그리고 하나의 screen 세션 안에 여러 개의 윈도우를 생성할 수 있다.

커맨드 라인에서 screen 명령을 내려보자.

screen

화면에 버전 정보, 저작권 정보 등이 출력될 것이다. 여기서 엔터 키를 친다. 그러면 명령 프롬프트가 나타난다. 새로운 세션이 생성된 것이다. 처음 세션이 생성됐을 때는 세션 안에 윈도우가 하나 밖에 없다. 필요에 따라 여러 개의 윈도우를 추가로 생성할 수 있다.

세션 내부에서 사용할 수 있는 명령 키들을 알아 보자.

‘Ctrl + a’, ?

‘Ctrl + a’ 키를 치고 나서 물음표 키를 쳐 보자. ‘Ctrl + a’ 키를 누른 상태에서 물음표 키를 치면 안 된다. ‘Ctrl + a’ 키를 누른 상태에서 손을 뗀 후에 물음표 키를 쳐야 한다. 화면에 명령 키의 리스트가 나타날 것이다. 명령 키가 생각나지 않을 때 이 리스트를 참고하면 된다.

‘Ctrl + a’, c

세션 안에 새로운 윈도우 하나를 추가한다.

‘Ctrl + a’, “

세션 안에 있는 윈도우들의 목록을 출력한다. 화살표 키를 이용해서 윈도우를 선택할 수 있다.

‘Ctrl + a’, k

현재 윈도우를 닫는다. 현재 윈도우에서 수행 중인 작업도 종료된다.

‘Ctrl + a’, \

모든 윈도우를 닫는다. 세션 안에 윈도우가 없는 상태가 되므로 세션도 종료된다.

‘Ctrl + a’, d

d는 detach의 머리글자이다. 현재 세션으로부터 떨어져 나온다는 뜻이다. 세션을 종료하지 않고 screen 명령을 실행했던 쉘로 복귀한다.

세션으로 돌아가는 방법을 알아보자. screen 명령을 실행했던 쉘에서 아래 명령을 입력한다.

screen -r

디태치 (detach) 되었던 세션으로 돌아갈 것이다.

여러 개의 세션이 실행 중일 때는 그중 하나를 선택해야 한다. screen 명령을 실행했던 쉘에서 아래 명령을 입력한다.

screen -ls

세션 아이디들이 출력될 것이다. 아래와 같이 원하는 세션 아이디를 지정한다.

screen -r 1623.pts-0.pc-1

세션 아이디는 이처럼 긴 문자열인 경우가 많다. 앞부분의 몇 글자만 입력하고 탭 키를 누르면 자동 완성되므로 전부 입력할 필요가 없다.

Categories
Linux

scp 명령으로 네트워크 상에서 파일 및 디렉토리 복사하기

scp 명령의 형식을 보자.

scp [옵션] [[사용자이름@]호스트이름:]원본파일경로 [[사용자이름@]호스트이름:]사본파일경로

대괄호 안에 있는 부분은 생략 가능하다.

다음은 원격 컴퓨터로부터 로컬 컴퓨터로 파일 하나를 복사하는 명령이다.

scp username@hostname.com:sample.txt .

username은 원격 컴퓨터의 사용자이름이고 hostname.com은 원격 컴퓨터의 호스트이름이다. 여기서는 경로를 지정하지 않고 sample.txt라는 파일 이름만 지정했다. 이처럼 경로가 생략되면 접속한 사용자의 홈디렉토리가 경로가 된다. 명령의 맨 끝에 있는 ‘.’은 이 명령을 수행한 컴퓨터의 현재 디렉토리를 의미한다.

사본 파일이 저장될 경로를 지정할 수도 있다.

scp username@hostname.com:sample.txt /xtmci/tmp

scp 명령을 내리면 암호를 입력하는 프롬프트가 출력된다. 암호를 입력하면 파일 전송이 시작된다.

다음은 로컬 컴퓨터로부터 원격 컴퓨터로 파일 하나를 복사하는 명령이다.

scp index.html root@hostname.com:/home/username/html

index.html 파일이 복사할 파일이다. 이 파일은 로컬 컴퓨터의 현재 디렉토리에 있다. 이 파일은 원격 컴퓨터의 /home/username/html 디렉토리로 복사될 것이다.

파일 이름을 바꾸어 복사할 수도 있다.

scp index.html root@hostname.com:/home/username/html/index-2.html

이렇게 하면 파일의 이름이 index-2.html 로 바뀌어 복사된다.

scp 명령에서 자주 사용되는 옵션은 -P 옵션과 -r 옵션이다.

SSH 포트 번호의 디폴트 값은 22번이다. SSH 포트 번호가 22번이 아닐 때 -P 옵션을 사용한다.

scp -P 2424 username@hostname.com:sample.txt /xtmci/tmp

-r 옵션은 디렉토리를 복사할 때 사용한다.

scp -r /xtmci/backup root@hostname.com:/home

이 명령은 로컬 컴퓨터의 /xtmci/backup 디렉토리를 원격 컴퓨터의 /home 디렉토리 밑에 복사한다.

Categories
Computer Network

파일 공유를 위한 우분투 삼바 서버 설치 및 설정

시스템에 삼바가 이미 설치되어 있는 경우도 있다. 아래 명령으로 확인해 보자.

smbd –version

삼바가 설치되어 있지 않다면 아래 명령으로 삼바를 설치한다.

sudo apt install samba samba-common-bin

삼바는 설치 후에 자동으로 작동을 개시한다. 아래 명령으로 작동 여부를 확인할 수 있다.

sudo systemctl status smbd nmbd

출력 결과를 보면 ‘Active:’로 시작하는 줄이 있을 것이다. 이 줄에 ‘active (running)’으로 표시되어 있다면 삼바가 작동 중인 것이다. 만약 작동 중이 아니라면 아래 명령으로 삼바를 작동시킨다.

sudo systemctl start smbd nmbd

삼바를 설치했다고 해서 곧바로 삼바 서비스를 이용할 수 있는 것은 아니다. 삼바 셰어 (share) 디렉토리를 만들고 이것에 관한 몇가지 설정을 해주어야 한다. 이 글에서는 사용자 인증이 필요없는 퍼블릭 (public) 셰어를 사용하는 방법을 알아보겠다.

삼바의 설정 파일은 /etc/samba/smb.conf 이다. 편집기로 이 파일을 연다.

sudo vi /etc/samba/smb.conf

파일을 열면 [global] 섹션에 workgroup 항목이 있을 것이다. 이 항목을 아래와 같이 지정한다.

workgroup = WORKGROUP

대문자로 된 ‘WORKGROUP’은 작업 그룹의 이름이다. 독자는 이것을 자신의 윈도우 네트워크 환경에 맞게 수정해야 한다. 작업 그룹 이름을 모른다면 아래 절차에 따라 찾아 내도록 하자.

‘윈도우키 + R’ 키를 눌러서 실행 창을 띄우고 아래 명령을 입력한다.

sysdm.cpl

‘확인’을 클릭하면 ‘시스템 속성’ 창이 뜬다. ‘컴퓨터 이름’ 탭에서 작업 그룹 이름을 확인할 수 있을 것이다.

/etc/samba/smb.conf 파일의 [global] 섹션에서 security 항목을 찾아 아래와 같이 지정한다.

security = user

/etc/samba/smb.conf 파일의 [global] 섹션에서 ‘map to guest’ 항목을 찾아 아래와 같이 지정한다.

map to guest = bad user

이렇게 지정하면 삼바 서버에 계정이 없는 사용자도 게스트 계정으로 삼바 서버를 사용할 수 있게 된다. 게스트 계정으로 로그인할 경우에는 암호를 입력할 필요가 없다.

/etc/samba/smb.conf 파일의 끝 부분에 아래와 같은 내용을 추가한다.

[public-share]    # 삼바 셰어의 이름
comment = public samba server
path = /public-share    # 삼바 서비스로 공유할 디렉토리
browseable = yes
writable = yes
guest ok = yes    # 게스트 계정 사용 가능

파일을 저장하고 편집기를 닫는다.

삼바 셰어 디렉토리를 만든다. 디렉토리 이름은 /etc/samba/smb.conf 파일에서 지정한 디렉토리 이름과 일치해야 한다.

sudo mkdir /public-share

디렉토리 사용 권한을 지정한다.

sudo chmod -R a+rwx /public-share

공유 디렉토리에서 모든 사용자가 읽기, 쓰기, 실행 작업을 수행할 수 있도록 했다.

모든 준비가 끝났다. 마지막으로 삼바 서비스를 재시작한다.

sudo systemctl restart smbd nmbd

윈도우 컴퓨터에서 삼바 서버의 공유 디렉토리를 사용하는 방법을 알아보자.

윈도우의 파일 탐색기를 실행시킨다. 주소창에 아래와 같이 입력하고 엔터 키를 친다.

\\192.168.0.101\public-share

‘192.168.0.101’은 삼바 서버의 IP 주소이고 ‘public-share’는 삼바 셰어의 이름이다.

아래와 같이 삼바 서버의 IP 주소만 입력해도 된다.

\\192.168.0.101

그러면 탐색기 창에 공유된 디렉토리의 아이콘이 나타날 것이다. 아이콘을 더블클릭하면 디렉토리가 열린다.

게스트 계정으로 접속할 때도 로그인 창이 뜰 수 있다. 이런 경우에는 계정 이름으로 아무 계정이나 입력하고 로그인하면 된다. 예를 들면 ‘guest’, ‘abc’ 등이다.