solaris环境samba的安装和配置


一。 关于Samba是什么,我就只讲一句了:提供Unix和Windows之间的文件和打印机共享服务,也能作为client访问网络中其它Windows
系统上的共享文件.Solaris8默认并没有安装SAMBA,而Solairs10  Jan/2006之后的都已经默认安装了Samba3.0,只要简单的配置就可以成为
Samba Server。Samba 服务器包含两个Daemon,smbd和nmbd。smbd是 samba的内核,是建立对话,验证客户和提供文件系统和打印服务
的基础;nmbd则处理所有的名字注册和解析请求,实现了网络浏览的功能;它的任务是向局域网广播Samba服务器所提供的服务;
nmbd使Samba服务器显示在windows操作系统的网络邻居中,允许用户浏览可以通过samba使用的资源。

二。SAMBA服务关联文件结构
目录&文件                              说明                             其它
/etc/sfw/smb.conf-example    Samba 配置文件示例        系统自带,是smb.conf的示例文件
/etc/sfw/smf.conf                  Samba 配置文件             系统自己没有这个文件,
                                           需要从/etc/sfw/smb.conf-example拷贝或者手工创建这个文件
/usr/sfw/bin/smb(*)               Bin工具                        smbcacls,  smbcontrol
                                                                 smbpasswd smbtar
                                                                 smbtree,  smbsh smbclient
                                                                 smbspool,  smbstatus,  smbcquotas
/var/samba/log                     默认samba日志目录    
/etc/init.d/samba                  samba管理命令               Solaris10已改为更简便的SVC服务管理方式


三。SAMBA設定                                            

  Solaris 10

        Solaris10的samba服务默认不会启动
    a    查看SAMAB是否已经启动?                                        
         #svcs -l samba                                         
        …                 
        state: online                    
                ... 
        如果是offline的话,#svcadm enable samba                

    b    SAMBA配置文件设定                
        #vi /etc/sfw/smb.conf                
    (没有的话就:#cp /etc/sfw/smb.conf-example /etc/sfw/smb.conf复制sample过来修改)    

********************************************                
        SMB.CONF                
********************************************                                        
[global]

workgroup = WORK1 --> (1)

server string = Samba Server --> (2)

security = user --> (3)

encrypt passwords = yes --> (4)

socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 --> (5)

 ; interfaces = 192.168.12.2/24 192.168.13.2/24 --> (6)

map to guest = Bad User --> (7)

guest ok = Yes

coding system = euc --> (8)

client code page = 932 --> (9)

(1) 工作组指定,自己按要求看着弄吧.

(2) Windows 的网上邻居,或者我的网络里,用来表示这个共享目录的comment,property.

(3) samba工作模式.
user:   用户模式,也就是Samba是用户连入模式,连接到samba的时候需要密码验证
share: 共享模式,对任何访问这个samba地址的client来说,都是完全开放的.  这次我就弄这个
domain: domain认证模式,我没用过...

(4) 不显示真实密码设置. 就是*****的方式显示密码

(5) 网络性能设置.socket参数,buffer大小等.

(6) 通常不用管这个,当服务器启动了2个 NIC (俗称网卡)的时候,需要指定哦! “; “注释掉.

(7) 当(3)的值为share以为的时候,才有效。sguest用户访问设置,有3个选项
Never :密码不正确的login都拒绝  (默认值是Never!)
Bad User: 密码不正确的登陆被拒绝,如果这个用户不存在则会指定guest accout的用户来登陆
Bad Password:密码不正确的登陆被拒绝而且指定guest accout的用户来登陆
                          要小心哦,这个时候只要是密码不对都被用guest accout登陆哦!

(8) Encoding,不再详细介绍了。。。 euc,sjis, cap, utf8 etc...

(9) Windows code page 指定,比如中文是2312,日語是932
        
        下面是共享目录设定:                                        
        #=========== Share Definitions ============                                        
        # Un-comment the following and create the netlogon directory for Domain Logons                    
        [samba]                                ; [SAMBA Dir Name]                    
        comment = Sun T2K Samba Dir            ; comment                    
        browseable = yes                            ; browseable = yes/no                     
        writable = yes                            ; writable = yes/no                     
        path = /export/home2/ws                ; path = 服务器本地要共享路径                    
        guest ok = yes                            ; guest ok = yes/no 是否无IP限制,可以随意访问                    
        create mask = 0777                        ; create mask = 上传或创建文件的属性                    
        directory mask = 0777                    ; directory mask = 上传或创建文件目录的属性                    
        … …                                         
        ********************************************                                        


    c    设置好了就,重新启动SAMBA服务,使得上面的smb.conf的修改内容得以刷新                                        
         #svcadm restart samba                                         


    Solaris 8                                            
         由于Solairs8默认没有安装samba,那就比较恶心要手动自己装了,而且还少了很多必要的软件。
     具体请参考:
     
     a    http://www.sunfreeware.com这里,把下面的软件都下载了先!(很多吧?!可以没办法!一个字:慢慢下!)
        coreutils-8.2-sol8-sparc-local db-4.7.25.NC-sol8-sparc-local
        gcc-3.4.6-sol8-sparc-local ,         gmp-4.2.1-sol8-sparc-local
        krb5-1.7-sol8-sparc-local,         libiconv-1.13.1-sol8-sparc-local
        libintl-3.4.0-sol8-sparc-local,         libtool-2.2.6b-sol8-sparc-local
        ncurses-5.6-sol8-sparc-local,         openldap-2.4.16-sol8-sparc-local
        openssl-0.9.8l-sol8-sparc-local,         popt-1.14-sol8-sparc-local
        readline-5.2-sol8-sparc-local,          samba-3.4.2-sol8-sparc-local
        sasl-2.1.21-sol8-sparc-local,         zlib-1.2.3-sol8-sparc-local                        

        上面是2010。1。18日的文件状况,如果有最新版本就下最新版本,脑子不要太死哦!
        samba的下载说明请参考: (!请注意x86和sparc版本!)                    
        http://www.sunfreeware.com/programlistsparc8.html#samba

    b    把刚才下好的软件安装!                        
        注意其中有依赖关系,方正gcc要先装。而gcc安装需要:libiconv and libintl.                        
                我大概列举下:

        libintl-3.4.0-sol8-sparc-local.gz  needs  libiconv                        

        krb5-1.7-sol8-sparc-local.gz  needs openssl and ncurses                        

        openldap-2.4.16-sol8-sparc-local.gz  needs openssl, libtool, sasl, db-4.7.25.NC                        

        libtool needs coreutils                        

        coreutils-8.2-sol8-sparc-local.gz  needs gmp                            

        gcc-3.4.6 needs  libiconv and libintl.                             

        samba-3.4.2以外的都装好了,再装samba!
        为了方便不知道gz怎么解压,pkgadd不会的人,例举下:
        #gunzip libiconv-1.13.1-sol8-sparc-local.gz                            
        #pkgadd -d libiconv-1.13.1-sol8-sparc-local (-d 是指定当前目录的pkg安装,否则你就都放在sfw/spool里巴)                            

    c    SMB.CONF修改,修改内容参见solaris10的 这部分,这里只讲solaris8下,
         安装好samba,smb.conf-exmple的路径:                        
         #cp /usr/local/doc/samba/example/smb.conf.default /usr/local/samba/lib/smb.conf                            
         然后请参看前面solaris10下的smb.conf的配置

    d.    配置swat(Samba Web Administration Tool)不?需要的话就设个端口号让OS认识swat                                                                                   
        # vi /etc/services                                            
        最后一行添加以下内容:                                            
         swat    901/tcp    # swat on samba                                             
                                                    
        再设置inetd,好让swat通过inetd来启动                                            
        # vi /etc/inet/inetd.conf                                            
        最后一行添加以下内容:                                            
         swat   stream  tcp   nowait.400    root    /usr/local/samba/sbin/swat   swat                                             
                                                    
        services和inetd.conf文件修改保存后,重新启动inetd服务:
       
  #pkill -HUP inetd                                             
                                                    
    e    制作SAMBA起動脚本,
            
        可以简单:  我推荐这个                                  
        # vi /etc/rc3.d/S99samba                                            
        /usr/local/samba/sbin/smbd -D -s/usr/local/samba/lib/smb.conf && echo "smbd started."                                            
        /usr/local/samba/sbin/nmbd -D -l/usr/local/samba/logs -s/usr/local/samba/lib/smb.conf && echo "nmbd started."                                            
                
        也可以稍微复杂:
#####################################
#!/bin/sh

if [ ! -d /usr/bin ]
then                    # /usr not mounted
        exit
fi

killproc() {            # kill the named process(es)
        pid=`/usr/bin/ps -e |
             /usr/bin/grep -w $1 |
             /usr/bin/sed -e "s/^  *//" -e "s/ .*//"`
        [ "$pid" != "" ] && kill $pid
}

# Start/stop processes required for samba server

case "$1" in
"start")
#
# Edit these lines to suit your installation (paths, workgroup, host)
# Add the following parameters to nmbd, smbd, winbindd if needed
#  (this may be needed for custom file locations)
#  -D -s$BASE/lib/smb.conf
#
   BASE=/usr/local/samba
   $BASE/sbin/nmbd
   $BASE/sbin/smbd

   ;;
"stop")
   killproc nmbd
   killproc smbd

   ;;

"restart")
   killproc nmbd
   killproc smbd
   BASE=/usr/local/samba
   $BASE/sbin/nmbd
   $BASE/sbin/smbd
   ;;

*)
   echo "Usage: /etc/init.d/samba { start | stop | restart }"
   ;;
esac
#########################################
                                                    
    f    测试samba起動,结果出现:                                            
         # /etc/rc3.d/S99samba start                                                                                        
        ld.so.1: smbd: fatal: libtalloc.so(!这里的库文件可能是别的!): open failed: No such file or directory
        Killed   

        爬文很久,发现需要重新更新下solaris8的动态连接库文件路径,让samba的依赖软件和库文件重定位:

        参考了http://bwachter.lart.info/solaris/solfaq.html                                                                                        
        # crle -c /var/ld/ld.config -l /usr/local/lib:/usr/local/ssl/lib:/usr/local/BerkeleyDB.4.7/lib:/usr/local/samba/lib:/opt/sfw/lib:/usr/lib:/lib\                                            
    e    最后再测试下启动,终于无错误:                                            
        # /etc/rc3.d/S99samba start                                            
        $ps -ef | grep smbd                                            
        $ps -ef | grep nmbd            
        
搞定!

本文实践成功,Solairs8是sun blade 150 ,  Solaris10是Sun Enterprise T2000


补充我在配置samba发现确实so文件:

 补充一:         ldd -r /usr/sbin/nmbd   

          

bash-2.03# ldd -r /usr/sbin/nmbd
        libthread.so.1 =>        /usr/lib/libthread.so.1
        libldap-2.4.so.2 =>      /usr/local/lib/libldap-2.4.so.2
        liblber-2.4.so.2 =>      /usr/local/lib/liblber-2.4.so.2
        libgssapi_krb5.so.2 =>   /usr/local/lib/libgssapi_krb5.so.2
        libkrb5.so.3 =>  /usr/local/lib/libkrb5.so.3
        libk5crypto.so.3 =>      /usr/local/lib/libk5crypto.so.3
        libcom_err.so.3 =>       /usr/local/lib/libcom_err.so.3
        libresolv.so.2 =>        /usr/lib/libresolv.so.2
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libpam.so.1 =>   /usr/lib/libpam.so.1
        libsec.so.1 =>   /usr/lib/libsec.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
        libaio.so.1 =>   /usr/lib/libaio.so.1
        libpopt.so.0 =>  /usr/local/lib/libpopt.so.0
        libtalloc.so =>  /usr/local/samba/lib/libtalloc.so
        libtdb.so =>     /usr/local/samba/lib/libtdb.so
        libwbclient.so =>        /usr/local/samba/lib/libwbclient.so
        libz.so =>       /usr/lib/libz.so
        libc.so.1 =>     /usr/lib/libc.so.1
        libgen.so.1 =>   /usr/lib/libgen.so.1
        libsasl2.so.2 =>         /usr/local/lib/libsasl2.so.2
        libgss.so.1 =>   /usr/lib/libgss.so.1
        libssl.so.0.9.8 =>       /usr/local/ssl/lib/libssl.so.0.9.8
        libcrypto.so.0.9.8 =>    /usr/local/ssl/lib/libcrypto.so.0.9.8
        libgcc_s.so.1 =>         /usr/lib/libgcc_s.so.1
        libkrb5support.so.0 =>   /usr/local/lib/libkrb5support.so.0
        libmp.so.2 =>    /usr/lib/libmp.so.2
        libcmd.so.1 =>   /usr/lib/libcmd.so.1
        libintl.so.8 =>  /usr/local/lib/libintl.so.8
        libxfn.so.2 =>   /usr/lib/libxfn.so.2
        /usr/platform/SUNW,UltraAX-i2/lib/libc_psr.so.1

这个命令主要是查看nmbd的依赖关系,查看是否缺少其他依赖包,判断下载更新依赖包。

补充2:

下载依赖包地址:

ftp://ftp.twaren.net/Sun/sunfreeware.com/sparc/8/


补充三: 修改启动shell脚本 

samba server 服务是 由 3 个守护进程组成:

nmbd 进程  Netbios 名称服务器 , 该进程使用 UDP 协议提供 Netbios 名称服务和浏览支持,处理命名注册和决策请求。该进程应当是被首先启 动。

smbd 进程  SMB 服务器,使用 TCP 协议给 SMB 客户提供文件和打印服务;应当在 nmbd 进程后立即启动。

Winbindd 进程 当 Samba 服务器是 windows NT 或 ADS 域中的成员时,此时当启动该守护进程。

修改配置文件路径和服务器应用程序进程为正确的位置,并加入启动 / 停止成功的信(注意启动的先后顺序):

将 /etc/init.d/samba 文件中 start 和 stop 部分:

start)

        [ -f /etc/sfw/smb.conf ] || exit 0

        /usr/sfw/sbin/smbd -D

        /usr/sfw/sbin/nmbd -D

        ;;

stop)

         pkill smbd

        pkill nmbd

修改为:

start)

         [ -f / usr/local/samba/lib/ smb.conf ] || exit 0

        /usr/local/samba/sbin/smbd -D   && echo "smbd started."

        /usr/local/samba/sbin/nmbd – D  && echo "nmbd started."

            /usr/local/samba/sbin/winbindd  && echo "winbindd started."

         ;;

stop)

         pkill smbd  && echo "smbd stoped."

        pkill nmbd  && echo "nmbd stoped."

pkill winbindd   && echo "winbindd stoped."

   启动/停止samba服务器

执行下面的命令来启动Samba服务器:

# /etc/init.d/samba start

执行下面的命令来停止Samba服务器:

# /etc/init.d/samba stop


补充5:我的配置文件:


smb.conf



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值