[root@server7 ~]# rpm -qa|grep samba
samba-common-3.0.21b-2
samba-client-3.0.21b-2
system-config-samba-1.2.34-1
samba-3.0.21b-2
[root@server7 ~]#


[root@server7 ~]# vi /etc/samba/smb.conf 삼바서버의 설정파일

# workgroup = NT-Domain-Name or Workgroup-Name
#   workgroup = MYGROUP
   workgroup = linux6
#공유그룹 명칭 리눅스6으로했다. Xwindow나 윈도우에서
네트워크 공유를 찾을때 공유그룹이 이거다 ^^

# server string is the equivalent of the NT Description field
   server string = Server7 Samba Server
#그냥 삼바서버 설명

# Security mode. Most people will want user level security. See
# security_level.txt for details.
   security = share   <------------ 중요부분 그냥 공유로되어있다.
#user : 기본보안 정책으로 사용자인증을 삼바서버를 통해서 인증한다 마치 아파치의 .htaccess 처럼
#share : 아무나 들어오게해준다.
#server :기본 적으로 user와 비슷하나 사용자의 인증을 samba프로토콜을지원하는 다른 인증서버에서한다
#domain : 사용자계정 인증을 윈도우NT 도메인에서 처리하는 방식이다.


# Use password server option only with security = server
;   password server = <NT-Server-Name>
#위에 security 를 서버나 도메인으로 할경우 위에 인증할서버의  DPC의 netBIOS 를 적어준다.

# Password Level allows matching of _n_ characters of the password for
# all combinations of upper and lower case.
;  password level = 8
;  username level = 8
#유저이름과 패스 글자수

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation.
# Do not enable this option unless you have read those documents
;  encrypt passwords = yes
;  smb passwd file = /etc/samba/smbpasswd
#삼바서버 사용자 패스워드 암호화및 암호파일 경로

# The following are needed to allow password changing from Windows to
# update the Linux system password also.
# NOTE: Use these with 'encrypt passwords' and 'smb passwd file' above.
# NOTE2: You do NOT need these to allow workstations to change only
#        the encrypted SMB passwords. They allow the Unix password
#        to be kept in sync with the SMB password.
;  unix password sync = Yes
;  passwd program = /usr/bin/passwd %u
;  passwd chat = *New*UNIX*password* %n\n *ReType*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
#클라이언트에서 서버의 삼바사용자 패스워드를 변경할수있도록 설정하는부분


맨아래 부분에 share를 위한 디렉토리 설정이있다

[Server7's Samba]
#폴더 이름
   comment = Server7's SambaDir
#마우스를 올려놓으면 뜨는이름
   path = /smb
#실제 시스템에 공유해줄 디렉토리
   public = yes
   writable = yes
   printable = no
   create mask = 0765


설정파일이 제대로 됫는지 구문을 확인하는방법은
testparm 이라고 치면 /etc/samba/smb.conf 파일을 체크한다. syntax에러가 없는지 -0-

share 일경우 위에같이 하고 설정후 service smb start
누군가 내 컴퓨터에 10.10.64.7 로 접속하면
공유폴더 하나가뜰껏이다.

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

USER 모드

[root@server7 smb]# vi /etc/samba/smb.conf

# Security mode. Most people will want user level security. See
# security_level.txt for details.
   security = user
#이부분을 user로 바꾸고 나온다

그외 아래 주석되어있는것들은 안해도 기본적으로되는가보다. - -
passwd파일의 경로나 암호화하겠다는설정이나 그런것들 --

service smb restart하고
계정을 만들어주는데
주의할점은 localsystem 에 존재하는 계정이름이여야된다.

[root@server7 smb]# smbpasswd -a test1
New SMB password:
Retype new SMB password:
Added user test1.
테스트1 추가

[root@server7 smb]# smbpasswd -a test2
New SMB password:
Retype new SMB password:
Failed to initialise SAM_ACCOUNT for user test2. Does this user exist in the UNIX password database ?
Failed to modify password entry for user test2

[root@server7 smb]#
로칼에 그 계정이 없으면 저렇게 페일이 떨어진다.
계정추가후다시

[root@server7 smb]# smbpasswd -a test2
New SMB password:
Retype new SMB password:
Added user test2.
[root@server7 smb]# cat /etc/samba/smbpasswd
nobody:99:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:[DU         ]:LCT-00000000:
test1:500:E88D94D6EBD10FC7AAD3B435B51404EE:AACD12D27C87CAC8FC0B8538AED6F058:[U         ]:LCT-489121D2:
test2:501:E3FDADCB358C2967AAD3B435B51404EE:0E8231621F574D3636255FF36DD86C9C:[U         ]:LCT-48912245:

이제 클라이언트에서 접속을 하면 user모드이무로
아이디와 패스를 물어본다.

그리고 설정을 보면 여기아래 [homes]라고 있는데 사용자 계정 홈디렉토리가 자기자신에게
공유가 된다. 아깐 share모드라 안됫는데 user모드라 되는가보다. 주석처리하면안되겟지 ^^

[homes]
  comment = Home Directories
  browseable = no
  writable = yes


그리고 맨아래 share에 하나더 추가

[Server7's Samba]
   comment = Server7's SambaDir
   path = /smb
   public = yes
   writable = yes
   printable = no
   create mask = 0765

[Server7's Samba2]
   comment = Server7's SambaDir
   path = /smb2
   public = yes
   writable = yes
   printable = no
   valid users = test2
#테스트 2만 들어갈수있는 공유폴더를 하나만들었다.


testparm 으로 에러체크하고 -0-

service smb restart 하고
하면 이제 부터 비번을 쳐서 나의 삼바에 접속해야되고
test1은 자신의 공유폴더하나와  Server7's Samba, Server7's Samba2 이렇게 3개가 다 보인다.
하지만 test1사용자는 Server7's Samba2에는 아예들어갈수가없다.
test2 tes1과 같이다 보이고 Samba2에도 들어갈수있다.


공유할때 쓴는 옵션들
comment : 공유디렉토리마우스를 올려놓으면 뜨는 이름
browseable : 공유폴더그림을 브라우저에 표시할것인지를 지정
writable : 접속하는 사용자에게 쓰기를 허용한다
create mask : 쓰기 퍼미션을 설정 숫자로 쓴다.
invalid users : 사용불가능한 유저를 지정
valid users : 사용가능한 유저를 지정
path : 공유할 디렉토리 지정
public : 누구나 접근 가능 여부를 지정
printable : 프린터 공유 디렉토리일때 설정한다.
guest ok : guest 접근 가능 여부를 지정하낟.
write list : 쓰기가능한 자또는 그룹을 지정 그룹자는 앞에 @를 붙인다
read only : 읽기만 가능하게 디렉토리를 지정



다른 삼바 서버에 접속하는 방법

[root@server7 ~]# smbclient //10.10.64.8/sm1 -U test1
Password:
Domain=[SERVER8] OS=[Unix] Server=[Samba 3.0.24-7.fc5]
smb: \> ls
  .                                   D        0  Thu Jul 31 10:48:44 2008
  ..                                  D        0  Thu Jul 31 12:38:07 2008
  100.txt                             A        0  Thu Jul 31 10:38:17 2008
  README.txt                                   5  Thu Jul 31 10:43:44 2008

                38752 blocks of size 262144. 34421 blocks available
smb: \> exit
[root@server7 ~]#



다른서버의 공유리스트를 보는방법
anonymous로
[root@server7 ~]# smbclient -L 10.10.64.8
Password:
Anonymous login successful
Domain=[LINUX6] OS=[Unix] Server=[Samba 3.0.24-7.fc5]

        Sharename       Type      Comment
        ---------       ----      -------
        public          Disk
        insa            Disk      smb2
        edu             Disk
        IPC$            IPC       IPC Service (Samba Server)
        printer1        Printer
        printer         Printer   printer
Anonymous login successful
Domain=[LINUX6] OS=[Unix] Server=[Samba 3.0.24-7.fc5]

        Server               Comment
        ---------            -------
        SERVER100            server100 Samba Server
        SERVER8              Samba Server

        Workgroup            Master
        ---------            -------
        LINUX6               SERVER100
[root@server7 ~]#




과제겸

test1 test2 test3 test4 test5 sajang alba 추가

공유
/public  누구나 접속가능하게, alba만 쓰기가능
/insa      test1 test2 sajang 만 접속가능 쓰기가능
/edu       test3 test4 test5 sajang 만 접속 가능하고 쓰기가능
/sec       sajang만 접속 및 쓰기가능 누구에게도 보이지안게 설정

그리고 각자 개인 공유홈 보이도록 설정



[homes]
   comment = Home Directories
   browseable = yes
   writable = yes
#사용자 홈디렉토리 공유설정에 관한설정으로 browseable yes로만 두면된다.

[public]
   comment = Server7's Public SambaDir
   path = /public
   public = yes
   writable = no
   write list = alba
   create mask = 0765
#public   yes로 보이고 들어올수있으나 writalbe no 로 글쓰기가안된다
#alba만 글쓰기 리스트에 합류 글쓰기가 가능

[insa]
   comment = Server7's Insa SambaDir
   path = /insa
   public = no
   writable = yes
   create mask = 0765
   valid users = test1 test2 sajang
#public no로 되어있으니까 밖에서 폴더는 보이나 클릭하면 들어올수가없다.
#들어오게되면 writable로 누구나 사용가능한데 들어올수있는사람이 valid users에 명시되어있다.

[edu]
   comment = Server7's Edu SambaDir
   path = /edu
   public = no
   writable = yes
   create mask = 0765
   valid users = test3 test4 test5 sajang
#위와 마찬가지다

[sec]
   comment = Server7's Sec SambaDir
   path = /sec
   browseable = no
   writable = yes
   create mask = 0765
   valid users = sajang
#browseable no 로 누구에게나 보이지안고
#들어오면 글쓰기가능하게 writalble 이긴하나
#접속가능자가 사장하나임
[root@server7 ~]#


그리고 웹에서 SAMBA관리할려면 SWAT 이라는 패키지를 이용한다
xinetd 방식으로 이용되므로 xinetd가 필요하다

암튼 swat을 성공적으로 깔고

[root@server7 var]# vi /etc/xinetd.d/swat
# default: off
# description: SWAT is the Samba Web Admin Tool. Use swat \
#              to configure your Samba server. To use SWAT, \
#              connect to port 901 with your favorite web browser.
service swat
{
        port            = 901
        socket_type     = stream
        wait            = no
        only_from       = www.server7.co.kr    <-- 접속될 주소
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no         <--- 서비스 하게끔 no로 설정
}

service xinetd start 해주고
http://www.server7.co.kr:901/ 하면 들어간다

Keep on following dream!