내밥줄/리눅스

[펌][Linux] samba 설치하기

jjoell 2012. 11. 14. 10:50
왜 내가 설치한 ubuntu에서는 관리 -> 공유 폴더 가 없어서 인터넷을 검색을 하여 설치를 하였다.

4.2 samba로 공유 폴더 만들기

 

 

   Windows xp Ubuntu Linux와 폴더를 공유하기 위해서는 samba를 설치를 하여 공유를 할 수가 있는 데 samba를 설정을 하는 방법에 대해서 알아보도록 하자.

 

파일을 공유하려는 서버에서 아래와 같이 삼바 패키지를 설치한다.
sudo apt-get install samba smbfs

이 공유에 접근할 아이디와 비밀번호를 설정한다
.
sudo smbpasswd -a
아이디


접근 아이디를 지울 때는 다음과 같이 한다.
sudo smbpasswd -x system_username

삼바 서버를 설정하기 위해 문서 편집기로 설정파일을 연다
.
sudo vim /etc/samba/smb.conf

그 안에 다음과 같은 내용을 입력한다
.

#
기본적인 설정

[global]
#
워크그룹이름은 맘대로 정한다.
workgroup = WORKGROUP
encrypt passwords = yes
#
접근을 허락할 아이피 범위

hosts allow = 192.168.
#
문자 인코딩 설정, 우분투는 utf-8을 기본적으로 사용하고
#
이것이 윈도우즈에서도 한글이 잘 깨지지 않는다.
unix charset=utf-8
dos charset=utf-8
#
공유할 디렉토리 이름, 이것은 여러개를 만들 수도 있다
.
[MyDoc]
comment = My Documents
path = /
공유할/디렉토리

#
읽기 전용으로 접근할지 여부
read only = no
browsable = yes


삼바의 설정은 매우 다양하게 할 수 있다.
아래에 다양한 삼바 설정을 설명했다
.

삼바 설정이 끝났으면, 설정이 제대로 되었는지 검사한다
.
sudo testparm

문제가 없으면 삼바를 실행한다
.
sudo /etc/init.d/samba restart

우분투에서 패키지로 설치된 삼바는 컴퓨터가 켜질 때마다 실행될 것이다
.

우분트 클라이언트에서 공유에 접근하는 법은 두가지이다
.

첫째
)
위치 메뉴 > 서버에 연결 을 선택한 후
,
서비스 종류는 Windows공유를 지정하고
,
사용자 이름과 연결에 사용할 이름 부분만 위에서 지정한 네트워크사용자아이디를 지정하면 된다
.

둘째
)
mount -t cifs //
삼바서버아이피/삼바공유폴더이름 /공유가/지정될/로컬폴더 -o username=네트워크사용자아이디,password=비밀번호
,iocharset=utf8,file_mode=0777,dir_mode=0777
-o
이후로는 띄어쓰기를 해서는 안된다
.

윈도우즈에서 삼바 서버에 접근하려면
,
네트워크 환경에서 새 연결을 설정하거나
,
net use o: \\
삼바서버아이피\삼바공유폴더이름 비밀번호 /user:네트워크사용자아이디

로 연결하면 되고,
삭제는
net use o: /delete
로 하면 된다
.


====================================================================================

그외의 다양한 삼바 설정법은 다음과 같다
.

▶ 네트워크 사용자 추가/편집/삭제 하는 법


☞ 네트워크 사용자 추가하기

sudo smbpasswd -a
네트워크사용자아이디
sudo vim /etc/samba/smbusers
를 한 후에, 아래의 내용을 추가한다.

네트워크사용자아이디
= "network username"

☞ 네트워크 사용자 편집


sudo smbpasswd -a
네트워크사용자아이디

☞ 네트워크 사용자 삭제

sudo smbpasswd -x
네트워크사용자아이디

----------------------------------------------------------------------------------
▶ 읽기 전용으로 폴더 공유하기 (인증=Yes)

sudo vim /etc/samba/smb.conf
로 설정파일을 열고


아래의 내용을 찾아서
security = user

아래처럼 바꾼다
security = user
username map = /etc/samba/smbusers

아래 내용의 앞에 있는 주석 표시를 제거한다.

;[homes]
;comment = Home Directories
;browseable = no
;valid users = %S
;writable = yes

삼바설정을 확인한다
.
sudo testparm

삼바를 다시 시작한다
.
sudo /etc/init.d/samba restart

----------------------------------------------------------------------------------
▶ 읽기/쓰기 권한으로 폴더 공유하기 (인증
=Yes)

설정파일 안의 지정된 폴더에 아래의 옵션을 넣어준다
.

(
보기
)

[MyFolder]
path = /home/my_id/my_shared_folder
writable = yes


----------------------------------------------------------------------------------
▶ 그룹 폴더들을 읽기 전용으로 공유하기 (인증
=Yes)

sudo mkdir /home/group
sudo chmod 777 /home/group/
sudo vim /etc/samba/smb.conf

설정파일에서 아래의 내용을

security = user

아래처럼 바꾸고
security = user
username map = /etc/samba/smbusers

설정파일의 끝에 아래의 내용을 추가한다.

[Group]
comment = Group Folder
path = /home/group
public = yes
writable = no
valid users = system_username1 system_username2
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup


----------------------------------------------------------------------------------
▶ 그룹 폴더를 읽기/쓰기 권한으로 공유하기 (인증
=Yes)

설정파일의 끝에 추가된 그룹 설정을 아래처럼 바꾼다
.

[Group]
comment = Group Folder
path = /home/group
public = yes
writable = yes
valid users = system_username1 system_username2
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup

----------------------------------------------------------------------------------
▶ 공개 폴더를 읽기 전용으로 공유하기 (인증
=Yes)

[global]
security = share

[public]
comment = Public Folder
path = /home/public
public = yes
writable = no
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup

아래처럼 nobody 계정을 만든다
.

sudo smbpasswd nobody

----------------------------------------------------------------------------------
▶ 공개 폴더를 읽기/쓰기 권한으로 공유하기 (인증
=Yes)

[global]
security = share

[public]
comment = Public Folder
path = /home/public
public = yes
writable = yes
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup

----------------------------------------------------------------------------------
▶▶▶ 네트워크 프린터에서 인쇄하기


삼바 설정파일에 다음의 내용을 추가하고

printing = cups
printcap name = cups

프린터 관리 서비스를 다시 시작한다.

sudo /etc/init.d/cupsys restart


----------------------------------------------------------------------------------
▶▶▶ 웹을 통해 삼바 설정 관리하기
: SWAT : Samba Web Administration Tool

INETD SWAT 를 설치한다
.

sudo apt-get install netkit-inetd
sudo apt-get install swat


inetd daemon 설정을 편집한다
.

sudo vim /etc/inetd.conf

☞ 아래의 내용을 찾아서


<#off#> swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat

☞ 아래처럼 바꾸어 준다.

swat stream tcp nowait.400 root /usr/sbin/swat swat

☞ 대몬을 재시작한다
.

sudo /etc/init.d/inetd restart

☞ 만일, root비밀번호를 설정하지 않았다면, 아래처럼 설정한다
.



sudo passwd root

http://localhost:901 주소로 접속한다.

출처 : [기타] 인터넷 : http://ubuntuguide.org/wiki/Ubuntu:Feisty#Samba_Server

 

난 이것을 만들기 위해서 /mnt/sharefolder라는 것을 만들어서 설정을 해 주었다.

뭐 다시 하라면 이제 간단하게 할 수 있겠지만 삽질....

 

sudo mkdir /mnt/sharefoloder
sudo chmod 777 /mnt/sharefoloder
sudo vim /etc/samba/smb.conf

/// 아래처럼 해도 되고..

sudo mkdir /home/group
sudo chmod 777 /home/group/
sudo vim /etc/samba/smb.conf

 

출처: http://yuihorie.tistory.com/trackback/50








security user 모드와 share 모드는 확실히 다릅니다.
보통 윈도우 삼바클라이언트 중에서 windows 98이 많으면
share 모드로, windows NT 계열이 많다면 user 모드로
설정합니다.
security = user :
------------------------------------------------
windows  ----+    samba server
(user1)      |    (user1)
             |
             `--> [user1 login]
                    |
                    |--> user1 디렉토리 접근
                    `--> guest 용 디렉토리 접근
------------------------------------------------
이 보안 설정은 예를들어, 1:1 로그인 형식입니다.
즉 삼바서버 사용자(/etc/passwd, smbusers)와 윈도우 사용자(로그온이름)
가 동일 매치될때 사용하는 방법입니다.
따라서 user 모드에서 guest 용으로 특정 디렉토리를 공유해 놓았다고
하더라도 반드시 윈도우 사용자가 삼바서버의 삼바유저로 로그인을 거쳐야
합니다.(반드시 매치되는 삼바유저가 있어야 함)
로그인을 거친 다음 guest 용 디렉토리를 볼 수 있습니다.
반면 security = share 모드는 1:1 로그인 형식이 아니므로 guest 용
디렉토리를 바로 접근할 수 있습니다.
------------------------------------------------
windows  ----+    samba server
(user1)      |    (user1)
             |
             |--> guest 용 디렉토리 접근
             `--> [user1 login]
                    |
                    `--> user1 디렉토리 접근
------------------------------------------------
정리하면,
user 모드냐 share 모드냐의 결정은 삼바서버의 용도에 맞게 설정해야
하는데 NT 계열이 많다면 user 모드로, 98 계열이 많다면 share 모드로
설정하는 것이 좋습니다.
user 모드인 경우는 반드시 삼바서버에 윈도우 NT 유저를 등록해주어
매치시켜야 합니다.
[편법: user 모드인 경우 guest 용 디렉토리 로그인 없이 접근하기]
-----------------------------------------
securiyt = user
...
guest account = nobody
...
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
...
[public]
   comment = Public Stuff
   path = /home/samba ## <-- 디렉토리를 만드어 줌
   public = yes
   writable = yes
   printable = no
------------------------------------------
1. 먼저 삼바서버에서 guest 용 유저를 nobody로 설정함
(반드시 nobody일 필요는 없습니다.)
만약 /etc/passwd 파일에 nobody가 없다면,
-- /etc/passwd ------------
...
nobody:x:99:99:Nobody:/:
--------------------------- 
이와 같이 추가함(반드시 확인필요)
2. nobody 용 패스워드를 empty 로 설정
# smbpasswd -a nobody
New SMB password: <-- 그냥 엔터
Retype new SMB password: <-- 그냥 엔터
#
이렇게 설정하면 /etc/samba/smbpasswd 파일에 nobody 항목이
추가됩니다.
3. /etc/samba/smbusers 파일을 열어 윈도우 사용자
모두를 등록함
-- /etc/samba/smbusers -------------
nobody = guest pcguest smbguest lcn kim park
------------------------------------
lcn, kim, park 등이 윈도우 사용자 이름입니다.
(가능한 영어로)
4. guest 용 디렉토리를 공유설정하고
삼바서버를 재가동후 guest 용 디렉토리로 접근 테스트해 봄

'내밥줄 > 리눅스' 카테고리의 다른 글

[펌]잘못푼 압축파일(tar.gz) 지우는 방법  (0) 2013.01.23
vmlinuz를 vmlinux로 바꾸기  (0) 2012.11.21
[펌] Intel 80386 Protected Mode  (0) 2012.11.14
리눅스 보안 프로그램들...  (0) 2012.10.23
vim Tex 명령  (0) 2012.10.22