본문 바로가기

라즈베리파이(RPI)

[버섯돌이의 라즈베리 기초] 03 개발을 위한 SAMBA 환경 꾸미기



버섯돌이의 라즈베리 기초
03 개발을 위한 SAMBA 환경 꾸미기
Created Date: 2013.11.14
Modified Date: 2014.04.17
revision 1

키워드 : RPI, Raspberry Pi, 라즈베리 파이, 삼바, SAMBA, 파일공유

안녕하세요 버섯돌이 유재성입니다.
OS설치부터 SAMBA 설치 이전까지의 화면들을 준비하기는 했는데 관련 글들은 많이 있고
세미나 참석전에 설정이 필요한 분들이 있어서 삼바 관련 글을 먼저 작성합니다.
부득이 내용이 길어지더라도 다른 글에서 다룰 내용도 함께 작성 후 향후 옮기거나 하겠습니다.

1. 삼바? 왜 설치하지?
본 글은 별도의 개발 서버를 두지 않고 라즈베리 파이안에 개발 환경을 구축해서 개발하시는 분들이
좀 더 편하게 개발하기 위한 파일 공유 환경을 구축함에 목적이 있습니다.
따라서, 보안 보다는 최대한 이용이 편하도록 루트 권한을 이용해서 모든 폴더에 접근하도록 설정 하도록 되어있으니
가정이나 외부에 파일 공유 서버 목적으로 사용하시려는 분들은 보안에 신경 쓰시기 바랍니다.

삼바는 무엇이며? 설치하면 뭐가 좋을까요?
삼바에 대한 정의는 위키 피디아의 내용을 참고 하시기 바랍니다.

윈도우즈의 경우 네트워크 파일 시스템을 사용 하기 위해서는 SMB 프로토콜을 이용 하는데
삼바가 바로 이 SMB 프로토콜을 이용 할 수 있도록 해줍니다.
윈도우즈의 경우 다른 윈도우즈 컴퓨터와 파일을 손쉽게 공유하기 위해 주소창에 ("\\아이피주소") 형태를 이용하는데
윈도우즈외의 운영체제에서 위와 같은 형태로 사용하기 위해서는 삼바가 필수라고 보시면됩니다.

삼바는 쉽게 생각하시면 윈도우즈와 리눅스간에 파일을 공유 할 필요가 있을 경우 무조건 설치해야 한다고 보시면됩니다.
삼바가 다양한 운영체제를 지원하기 때문에 다양한 컴퓨터간에 파일 공유가 필요한 경우에도 사용이 가능하며,
삼바가 설치되면 윈도우즈의 탐색기에서 로컬 HDD를 이용하듯이 네트워크 드라이브로
라즈베리 파이 컴퓨터를 이용하는게 가능하기 때문에 파일 공유 및 개발이 엄청 편해집니다.


2. 사전 준비 작업
2.1 패키지 정보 업데이트
SAMBA 설치전에 패키지 정보들을 최신 정보로 업데이트하지 않은 경우
SAMBA가 설치되지 않는 분들도 계실테니 설치전에 반드시 업데이트 부터 해주세요~
> sudo apt-get update

시간적 여유가 있는 분들은 업그레이드도 해주세요~
> sudo apt-get upgrade

2.2 root 계정 활성화
아무래도 대 부분은 개인 개발용으로 사용 할 텐데 root 계정을 이용하지 않으면
패키지 설치등 root 권한이 필요 할 때는 "sudo apt-get install"처럼 항상 sudo 명령을 이용해야 합니다.
매번 sudo를 쓰려면 너무~ 불편하죠^^;;
무엇보다 root 권한이 있어야 윈도우즈에서 모든 폴더에 마음대로 접근이 가능합니다.^^
그러니 개발의 편의를 위해 root 계정을 활성화 해주세요.

root 계정은 기본적으로 잠겨있기 때문에 아래와 같은 순서로 활성화 하시면 됩니다.


다음처럼 root 계정의 비번을 설정 하시면 끝입니다.^^
> sudo passwd root

정상적으로 로그인이 가능한지 아래 명령으로 root로 로그인 해보세요
> su - root

정상적으로 로그인이 되었다면 현재 로그인한 계정이 root인지 확인해보시면 됩니다.
> whoami

이제부턴 root 계정으로 로그인이 가능합니다.

2.3 hostname 설정
저희는 최대한 모니터 없이도 개발이 가능한 환경을 구축해야 하기 때문에
가능하면 hostname을 필요한 이름으로 설정하셔서 사용하시기 바랍니다.

참고로, 인터넷은 IP라는 주소 체계로 되어있는데 106.10.165.51 라는 숫자를 외우기 보다는
www.yahoo.co.kr같은 도메인 명이 직관적이고 외우기도 쉬울 것입니다.
hostname은 같은 맥락으로 이해하시면 되는데 라즈베리에 할당된 ip주소를 모르는 경우에
hostname으로 접속하면 되기 때문에 유용하게 사용 할 수 있습니다.
(회사나 공용망의 경우 구성에 따라서 hostname이 인식이 안되는 경우도 있으니 참고 하시기 바랍니다.)

가정 집에서는 같은 이름이 겹칠 확률이 거의 없지만 고정 IP를 할당하는 것 보다는 편하리라 보며,
오로카의 세미나등에 참석하시면 라즈베리의 기본 설정으로는 hostname이 중복되서
hostname으로 접속 할 수 없기에 자신만의 이름으로 설정하시는게 좋습니다.^^

저는 라즈베리 파이가 몇 대 있어서 "dev4unetpi1"으로 설정했습니다.
설정 방법은, 편하게는 raspi-config의 라즈베리 설정 화면에서 hostname을 설정 하셔도 되고
리눅스에서 호스트명은 아래의 파일들에 저장되니 각 파일을 적절히 수정후 재부팅 하시기 바랍니다.

> sudo vi /etc/hostname
각자 원하는 호스트명으로 변경 하세요. (제 경우에는 "dev4unetpi1")

> sudo vi /etc/hosts
맨 마지막에 있는 라즈베리파이 호스트명을 /etc/hostname과 동일하게 변경 (제 경우에는 "dev4unetpi1")

아래는 다른 라즈베리 파이에 설정한 "dev4unetpi2"의 예시이니 참고하세요.
root 계정으로 로그인하지 않았으면 sudo 명령 붙이고 작업하세요.

/etc/hosts 파일을 열어서 원하는 호스트명으로 변경


vi가 힘든 분들은 "sudo nano /etc/hosts"로 작업 하세요.

/etc/hostname 파일에서 호스트명 변경


역시 vi가 힘든 분들은 "sudo nano /etc/hostname"으로 작업 하세요.

제 경우 위 처럼 "dev4unetpi2"로 변경


변경된 호스트명 반영을 위해 재부팅

재 부팅 후 최종적으로 "hostname" 명령을 이용해서 호스트명이 제대로 반영되었는지 확인

외부에서 호스트명이 제대로 인식되는지 확인하기 위해 윈도우즈의 콘솔창에서 테스트


윈도우즈에서 ping 명령으로 위 처럼 호스트명을 입력시 응답이 와야 정상입니다.
참고로, 호스트명 변경 관련 추가 내용을 작성하느라 호스트명이 "dev4unetpi2"가 되었는데
삼바 강좌에서는 "dev4unetpi1"을 이용하니 오해 없으시기 바랍니다.


3. 설치
패키지 설치에는 root 권한이 필요하니 반드시 root로 로그인 해서 진행 하시기 바랍니다.
다른 계정으로 로그인했으면 쉘에서 "su - root" 명령으로 root 계정으로 로그인이 가능합니다.


SAMBA 패키지와 의존성 패키지들을 설치합니다.
> apt-get install samba samba-common-bin


정상적인 경우 위 처럼 설치가 진행되지만 만약, 이 부분에서 설치가 안되고 404등의 에러가 발생하는 분들
패키지 정보가 오래되서 그러니 2. 사전 준비 작업 내용을 참고하시기 바랍니다.


4. 환경 설정(라즈베리 파이)

윈도우즈에서 파일 공유 기능을 이용한 분들은 아시겠지만..
파일 공유는 어떤 폴더를 누구에게 어떤 권한으로 공유 할 지를 설정해야 합니다.

따라서, 삼바도 사용 할 계정과 폴더 및 권한 설정이 필요 합니다.
다음 처럼 smbpasswd 명령으로 삼바에서 사용 할 계정을 추가 합니다.

일반적인 목적으로는 그림처럼 라즈베리 파이의 기본 계정인 pi를 추가 하셔서 이용하시면 되지만..


저희는 편한 개발 환경이 목적이니 그림과 달리 root를 추가 하도록 하겠습니다.
> smbpasswd -a root

root 계정을 추가 하셨으면 해당 계정으로 로그인 할 때 사용 할 폴더 및 권한을 설정 합니다.
/etc/samba/smb.conf 파일에 내용을 추가하면 됩니다

저는 nano 편집기 보다는 vi가 편해서 vi로 진행하지만 vi 사용법이 어려운 분들은 nano를 이용하시면 됩니다.
즉, 아래 명령의 vi 부분을 nano로 바꾸셔서 실행 하시면 조금은 이용하기 쉬운 편집기 화면이 나옵니다.
(예)
nano /etc/samba/smb.conf

환경 설정을 위해 아래 명령을 실행 하시면 아래와 같은 화면이 나옵니다.
> vi /etc/samba/smb.conf



위와 같은 화면이 나왔으면 대문자 G키를 누르시면 파일의 제일 끝으로 이동됩니다.
그 상태에서 소문자 i키를 누르시면 문서를 편집 할 수 있는 편집 상태로 변경 됩니다.
편집 상태가 되었으면 내용을 추가 할 수 있는데 아래 내용을 추가 합니다.

"smbpasswd -a root" 명령으로 root 계정을 추가한 사람들은 아래 내용을 추가 합니다.
(저희는 root 계정을 이용하니 root로 설정 합니다.)

[root]

comment = raspberry pi samba server

path = /

valid user = root

writable = yes

browseable = yes


만약, "smbpasswd -a pi" 명령으로 pi 계정을 추가한 사람들은 그림처럼 아래 내용을 추가 합니다.
[pi]

comment = raspberry pi samba server

path = /home/pi

valid user = pi

writable = yes

browseable = yes





여기서 중요한 부분은 path와 writable입니다.
path는 해당 계정으로 로그인시 보여질 홈 폴더입니다.
윈도우즈에서는 이 폴더 하위로만 접근이 가능한데 저희는 윈도우즈에서 라즈베리 파이 컴퓨터의
모든 폴더에 접근이 가능해야하니 최상위 폴더를 지정 해 줍니다.

writable은 편집및 폴더 생성등의 권한을 부여 할지 결정합니다.
당연히 저희는 모든 폴더의 파일을 자유 자재로 삭제및 추가해야 하니 yes죠^^

이제 설정이 끝났으니 설정 내용을 반영하기 위해 samba 서비스를 재 실행합니다.



> service samba restart

이제 삼바 설치는 끝났으며 외부 컴퓨터에서 편하게 사용하시면 됩니다.^^


5. 환경 설정(윈도우즈)
라즈베리 파이에 할당된 ip주소를 알아야 하니 라즈베리 파이 쉘에서 "ifconfig" 명령을 실행합니다.
(윈도우즈의 ipconfig가 아닌 ifconfig니까 혼동이 없으시기 바랍니다.)

확인 할 사항은 ip주소와 hostname입니다.
ip주소는 항상 바뀌지만 hostname은 바뀌지 않기 때문에 hostname이 더 편하고 좋습니다.^^
대 부분은 같은 망을 이용 할 테니 문제가 없겠지만 사용하는 망에 따라서는 hostname이 안되는 경우가 있습니다.
(예:회사의 윈도우즈 컴퓨터에서 집에 있는 라즈베리 컴퓨터에 접속 등..)

보통 유선 랜카드는 eth0이고 무선은 wlan0 등의 이름을 사용하니 참고하시기 바랍니다.



저희가 사용 할 라즈베리 파이의 ip주소는 "192.168.1.3"이며, 호스트명은 "dev4unetpi1"입니다.


윈도우즈 컴퓨터에서 "시작>실행"이나 탐색기의 주소창에 "\\192.168.1.3"을 입력 후 엔터키를 누릅니다.
여기서 중요한건 처음에 나오는 역슬래쉬 2개("\\") 입니다.
윈도우즈에서 "\\"는 네트워크 파일 공유를 의미 합니다.


pi계정을 추가하신 분들은 위처럼 pi로 보여질 테고..
root로 설정하신 분들은 root로 보여질 것입니다.
위 공유 폴더를 더블 클릭하세요~


해당 폴더의 내용을 보기 위해서는 권한이 필요한데 삼바에 pi 계정을 추가하신 분들은
추가한 pi 계정으로 로그인 하시고..
root를 추가하신 분들은 root로 로그인 하시기 바랍니다.


정상적으로 로그인이 되었다면 위처럼 라즈베리 파이의 최상위 폴더(/) 내용이 보일 것입니다.

세미나 장소나 평소 사용하던 곳이 아닌 장소에서는 ip 주소가 바뀔 수 있는데..
그럴때는 아래 처럼 hostname을 이용해서 접근하시면 됩니다.



ip주소 대신에 자신이 설정한 호스트명을 이용하시면 됩니다.


ip주소와 동일하게 나오죠^^
참고로, 좀 더 편하게 사용하고 싶은 분들은 위 공유 폴더에서 우 클릭 후 "네트워크 드라이브 연결"을 선택하셔서
z드라이브 등에 마운트를 걸어 주시면 일반 HDD를 이용하듯 이용이 가능합니다.^^


참고로, root가 아닌 pi 계정을 이용하는 경우에는 권한상 pi 계정으로는 작업이 불가능한 폴더들이 많습니다.
예를들어, pi 계정으로 로그인 후 /home 폴더에 들어가셔서 폴더 만들기를 해보세요.^^



그럼 이렇게 권한 오류가 발생합니다.*^^*
pi계정은 /home/pi 폴더의 하위에서만 작업이 가능하기 때문입니다.

개발을 위한 환겨에서는 이런 불 필요한 문제들 때문에 root에 최상위 권한을 부여 했습니다.
이런 복잡한 방법보다 크로스 케이블로 연결하는게 더 편할지도 모르겠군요.^^

root 계정의 화면들도 일일이 캡춰했었는데 새벽에 시스템 점검이라 글을 쓸 수 없어서
부득이 파일들을 스마트폰에 옮겨왔는데 이상하게 파일이 안 보이는군요.ㅜㅜ;;
나중에 시간이 되면 추가 해 놓겠습니다.


참고로, 윈도우즈의 네트워크 공유 기능을 이용하면 자잘한 문제들이 많이 발생합니다.^^
이런 경우 위 명령을 알아두시면 조금은 도움이 될 거라 봅니다.

예를들어, 라즈베리 파이의 공유 폴더에 pi 계정으로 접속 하신 뒤..
samba 설정을 변경 후 다시 root로 접속하려고 하면 로그인 할 수 있는 인증창이 나오지 않습니다.^^
이때 그림처럼 콘솔창에서 "net use"를 실행하시면 네트워크 드라이의 연결 상태를 확인 할 수 있습니다.
접속된 원격이름을 참고하셔서 /delete 옵션으로 삭제하신 후 다시 접속하시면 잘 될거라 봅니다.
참고로, 저기에 보이는 목록들은 리부팅하면 다시 복구되니 편하게 모두 삭제하셔도 됩니다.

제가 잘 못 알고있는 지식도 있고 회사에서 급하게 작성하다보니 틀린 부분도 있을텐데 양해 바랍니다.^^;;
그럼 개발에 조금이라도 도움이 되셨길 바랍니다.

[Tip] 특정 드라이브(예:Z)에 마운트해서 사용하기










기본은 root 계정이지만 일반 사용자 계정을 희망하는 분들이 계실지 몰라서 내용을 섞다보니 좀 복잡해 보이는군요.^^
이미지도 틈틈이 다른 파이로 캡춰해서 더 혼동 스럽고..
다음에 쉽게 따라할 수 있도록 간단히 요약된 내용을 따로 올려야겠네요.


[참고자료]


[1]
[2]
[3]



End.

written by 버섯돌이

이 저작물은 크리에이티브 커먼즈 저작자표시-비영리 3.0 Unported 라이선스에 따라 이용할 수 있습니다.