윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

< 윈도우에서 리눅스 폴더 사용하기 (samba 사용) >

1. $ apt-get -y install samba system-config-samba 명령으로 삼바 서버와 관련된 패키지를 설치하자

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

2. $ systemctl restart smbd, systemctl enable smbd, systemctl status smbd 명령어를 입력해

     재시작, 활성화, 상태를 본다. active가 보인다면 정상이다.

3. 위와같이 공유할 폴더를 만들고 권한을 변경한다.  ( 공유폴더는 원하는 폴더명으로 알아서 만들자. )

    (주위사항 : 기본적으로는 하위폴더의 권한을 바꾸더라도 상위 폴더의 권한이 안되어 있으면 안된다.

                   하위 폴더를 읽고/쓰기로 사용하기 위해선 부모폴더도 읽고/쓰기를 할수 있는 권한이어야한다.)

4. touch 명령어로 해당 파일을 미리 만들어 놓는다.

5. $system-config-samba 명령어를 이용하여  samba 서버 설정 창을 띄운다.

    (참고사항 : system-config-samba 를 이용하지 않고 직접 /etc/samba/smb.conf 파일을 직접 수정할 수 있다.

                   이는 system-config-samba 를 이용하여 설정하는것과 같다.)

6. 그림과 같이 공유할 디렉터리를 고르고 쓰기가능, 보이기를 채크 한후 접근을 클릭한다.

7. 접근에서 모든사용자에 접근허가를 채크하고 확인을 누르면 새로운 공유디렉토리가 추가 된것을 볼 수 있다.

% 추가적으로 force user = 계정명 을 적어주면 강제로 파일권한을 쓰기로 바꿀필요가 없어진다.  -  2018. 05. 08 수정

Anonymous Write 권한 설정시 force user를 설정해야 Anonymous로 파일을 변경할 수 있다

sambashare 그룹에 계정추가

8. 6~7번 작업으로 인하여 /etc/samba/smb.conf 파일 마지막에 ubunt가 생성된것을 볼 수 있다.

   이는 system-config-samba 를 이용하지 않고 직접 할 수 있다는것을 의미한다.

9. $ ufw disable 명령어로 방화벽을 잠시 끈다.

10. $ systemctl restart smbd 명령어로 재시작 한다.

11. 공유 폴더를 사용할 컴퓨터 윈도우에서 네트워크 드라이브 연결을 실행한다

12. 원하는 드라이브를 선택후 \\[서버의 아이피주소]\[공유폴더별칭] 을 입력후 마침을 누른다.

13. ubunt가 설치된것을 볼 수 있다.

     (원래 우분투는 철자가 ubuntu 입니다. 오타입니다. 오해 마시길....)

Ubuntu 20.04가 설치된 컴퓨터와 Windows 10이 설치된 컴퓨터간 파일 공유를 위해 삼바 설정 하는 방법을 설명합니다. 

SMB (Server Message Block) 

윈도우가 설치된 컴퓨터가 파일 공유, 프린터 같은 리소스에 연결하는데 사용합니다. 

Samba는 SMB 프로토콜을 리눅스에서 구현한 것입니다.

윈도우와 리눅스가 설치된 컴퓨터 사이에 파일과 프린터 정보를 전송할 수 있도록 해줍니다.

2014.  7.  16  최초작성

2021. 11. 13 최종작성

1. 윈도우에서 공유 폴더 만들기

2. Samba 설치 및 설정

3. 윈도우에서 Ubuntu의 공유폴더 접근

4. Ubuntu에서 윈도우의 공유 폴더 접근

1. 윈도우에서 공유 폴더 만들기

윈도우에서 해야하는 네트워크 설정 및 공유폴더 생성 방법에 대해서 설명합니다.

1. 윈도우 키 + R을 누르고 다음 명령을 입력하여 실행합니다.

control /name Microsoft.NetworkAndSharingCenter

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

2. 고급 공유 설정 변경을 선택합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

3.  네트워크 검색 켜기와 파일 및 프린터 공유 켜기를 체크합니다.

윈도우에 따라 홈 그룹 연결 항목은 안 보일 수 있습니다. 

(윈도우 업데이트를 했는지 여부에 따라서도 달라집니다.)

아래 화면처럼 선택하고 변경 내용 저장을 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun
윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

4. 공유할 폴더를 선택하고 마우스 우클릭 후, 메뉴에서 속성을 선택합니다.

공유 탭을 선택하고 고급 공유를 클릭합니다. 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

5. 선택한 폴더 공유를 체크하고 권한을 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

6. 추가를 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

7. 선택할 개체 이름에 라즈베리파이에서 공유폴더에 접근시 사용할 윈도우에 등록된 사용자 이름을 적어주고 확인을 클릭합니다. 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

8. 방금 추가된 사용자를 선택하고 모든 권한의 허용을 체크해줍니다.  

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

9. 추가한 사용자외에 다른 사람들은 공유폴더에 접근할 수 없도록 Everyone을 선택하고 제거를 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

10. 파일 공유시 방어벽이 문제가 안되도록 설정을 변경해줘야 합니다.

제어판에서 시스템 및 보안 > Windows 방어벽에서 앱 허용을 선택합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun
윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

11. 설정 변경을 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

12. 목록에서 파일 및 프린터 공유를 찾아서 개인 항목을 체크하고 확인을 클릭합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

제어판\프로그램\프로그램 및 기능 에서 Windows 기능 켜기/끄기를 선택합니다.

SMB 1.0/CIFS 파일 공유 지원을 체크합니다.

재부팅이 필요합니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

컴퓨터 이름을 사용하기 쉬운 것으로 변경하고 윈도우 계정에 패스워드를 추가해야 합니다.

2. Samba 설치 및 설정

1. samba 패키지를 설치합니다.

$ sudo apt-get update

$ sudo apt-get install samba

2. 홈 디렉토리에 공유할 디렉토리를 생성합니다.

$ mkdir ~/sambashare/

3. 공유할 디렉토리에 대한 설정을 추가합니다.

$ sudo nano /etc/samba/smb.conf

마지막줄에 다음 내용을 추가합니다. username은 사용자 이름으로 바꾸세요

[sambashare]

    comment = Samba on Ubuntu

    path = /home/username/sambashare

    read only = no

    browsable = yes

    public = no

Ctrl + O 눌러 파일을 저장후, Ctrl-X 눌러 nano를 종료합니다.

4. 설정을 적용하기 위해 삼바 서비스 재시작합니다.

$ sudo service smbd restart

방어벽을 사용중인 경우  규칙을 추가합니다. 

sudo ufw allow samba

5. samba를 위한 계정을 추가합니다. 이 계정을 사용하여 외부에서 공유 폴더에 접근합니다. 

username은 사용자 이름으로 바꾸세요.

$ sudo smbpasswd -a username

3. 윈도우에서 Ubuntu의 공유폴더 접근

1. Ubuntu에서 공유한 폴더에 파일을 하나 생성해둡니다.

$ touch ~/sambashare/test

ifconfig 명령을 사용하여 Ubuntu가 사용하는 IP를 확인합니다. 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

2. 윈도우의 탐색기에 Ubuntu의 IP를 다음 형식으로 입력합니다. 

\\Ubuntu의 IP

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

3. Ubuntu에서 공유한 디렉토리가 보입니다. 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

4. 해당 디렉토리로 이동하면 Ubuntu에서 생성했던 파일이 보입니다. 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

5. 이 디렉토리에 파일을 하나 생성해보면 

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

Ubuntu에서 해당 파일이 보입니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

4. Ubuntu에서 윈도우의 공유 폴더 접근

1. smbclient 패키지를 설치해야 합니다.

$ sudo apt-get install smbclient

윈도우에서 공유한 폴더를 마운트할 디렉토리를 생성해줍니다.

$ sudo mkdir /media/windows

2. -L 다음에 윈도우 컴퓨터의 이름을 적고, -U 다음에 윈도우 컴퓨터 사용자 계정 이름을 적습니다. 엔터를 누르면 보이는 Enter WORKGROUP\사용자이름’s password : 에서 윈도우 사용자의 비밀번호를 입력해줘야 합니다.

윈도우 사용자에 아이디가 부여되어 있어야 진행가능합니다. 

컴퓨터 이름으로 할때 다음과 같은 에러가 발생한 경우에는

webnautes@webnautes-VirtualBox:~$ sudo smbclient -L webnautes-laptop -U webnautes

do_connect: Connection to webnautes-laptop failed (Error NT_STATUS_UNSUCCESSFUL)

다음처럼 IP를 사용하여 진행하세요. 

윈도우에서 생성해둔 공유폴더가 보입니다. 여기에선 공유폴더 이름이 공유폴더입니다.

webnautes@webnautes-VirtualBox:~$ sudo smbclient -L 172.20.10.2 -U webnautes

Enter WORKGROUP\webnautes's password: 

Sharename       Type      Comment

---------       ----      -------

ADMIN$          Disk      원격 관리

C$              Disk      기본 공유

D$              Disk      기본 공유

IPC$            IPC       원격 IPC

공유폴더    Disk      

SMB1 disabled -- no workgroup available

3.  앞에서 찾은 윈도우의 공유 폴더를 마운트하려면 cifs-utils 패키지가 필요합니다.

$ sudo apt-get install cifs-utils

4. 다음처럼 윈도우 폴더를 마운트합니다. 컴퓨터 이름이 안되는 경우 IP를 사용하세요.

참고로 WSL에선 이 방법으로 안됩니다. 

$ sudo mount -t cifs -o user=사용자이름,file_mode=0777,dir_mode=0777 //컴퓨터이름/공유폴더이름   Ubuntu에서 마운트할 경로

정상적으로 진행되었다면 윈도우 계정 패스워드를 물어봅니다. 

webnautes@webnautes-VirtualBox:~$ sudo mount -t cifs -o user=webnautes,file_mode=0777,dir_mode=0777 //172.20.10.2/공유폴더 /media/windows

Password for webnautes@//172.20.10.2/공유폴더:  **************          

webnautes@webnautes-VirtualBox:~$ 

윈도우 10에 SMB 1.0을 설치 안해주었다면 다음과 같은 에러가 발생합니다. 

“1. 윈도우에서 공유 폴더 만들기”  마지막에 나온대로 SMB 1.0을 설치해주세요. 

webnautes@webnautes-VirtualBox:~$ sudo mount -t cifs -o user=webnautes,file_mode=0777,dir_mode=0777 //172.20.10.2/공유폴더 /media/windows

Password for webnautes@//172.20.10.2/공유폴더:  **************    

mount error(112): Host is down

Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

Permission denied 에러 발생시 비밀번호를 잘못 입력했을 가능성이 높습니다. 

webnautes@webnautes-VirtualBox:~$ sudo mount -t cifs -o user=webnautes,file_mode=0777,dir_mode=0777 //172.20.10.2/공유폴더 /media/windows

Password for webnautes@//172.20.10.2/공유폴더:  **************    

mount error(13): Permission denied

Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)

6. 윈도우의 공유폴더에 파일을 생성해주고

$ touch /media/windows/테스트

윈도우에서 확인해보면 해당 파일이 보입니다.

윈도우에서 리눅스 폴더 접근 - windoueseo linugseu poldeo jeobgeun

다음 명령으로 마운트를 해제합니다.

webnautes@webnautes-VirtualBox:~$ sudo umount /media/windows