LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1661|回复: 9

samba配置文件浅谈

[复制链接]
发表于 2003-3-18 23:49:22 | 显示全部楼层 |阅读模式
samba大约超过200个配置参数,所以只选其中常用的参数,请大家多多指导!
[global]
    netbios name = HARDY     #设置服务器的netbios名字
    server string = my server #对samba服务器的描述
    workgroup = DEBIAN_FANS  #samba服务器属于哪个工作组名或域名
    encrypt passwords = yes  #密码需要加密
    message command = /bin/sh -c 'xedit %s ; rm %s' &  #当winpopup向网络用户发消息时,此参数可用来接收消息,可惜没有发送。
    security = user          #用于登陆域,或用户验证登陆
    wins support = yes       #设置本地为wins服务器,当WINS SERVER没有启动,SAMBA利用广播来进行名字解析,而WINS SERVER是通过udp协议来进行包的传送和不同网络中的路由.因此在不同的网络中进行NETbios解析,要打开wins server.
                           samba 利用"remote browse sync" 来和远程的local master browser进行信息的同步
    name resolve order = wins lmhosts hosts bcast # 解析netbios的顺序 (lmhosts-lan manager file)(hosts-unix的/etc/hosts,dns,nis)(wins)(bcast,广播)  
  ; wins server = 192.168.0.22 # 指定wins服务器的网络地址
  ; wins proxy =  yes          # 如果指定的wins服务器在不同的网断,就需要打开
  ;dns proxy = yes           # 当wins服务器在wins中找不到名字的话,就会查找dns.很有用哦
  ; admin users = hardy     #samba的管理用户,默认是root.
    add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false  %u #代替手工的添加计算机账号(看pdc配置文件),我没有试成功。
    prefered master = yes    # 强制使samba成为local master
    local master = yes       # 使nmbd试着在子网中成为master browse(储存子网中所有的netbios name 所对应ip的列表)
    domain master = yes      # 使nmbd成为广域网的netbios name 所对应ip的列表,任务是同步所有子网中local master的列表。因此使各终端
                          得到整个域的浏览列表,如果设置了domain logons = yes 那么domain master默认是yes
    os level = 33            #操作系统级别,winNT4.0服务器-33  如果数值高于33,samba就成为local master browers不管网络中是否存在winNT4.0
                                            winNT3.51服务器-32
                                            winNT4.0客户机-17
                                            winNT3.51客户机-16
                                            win98 - 2
                                            win95 - 1
                                            win3.1- 1  
    time server  = yes # nmbd将会告知windows的客户端自己是作为smb的时间服务器,可以用net time /yes /set 来同步时间
    domain logons = yes      #设置samba为win98/95所登陆的域服务器。
    printer admin = hardy
    username map = /etc/samba/smbusers #用户别名文件。
    logon path = \\%N\profiles\%U      # 看[profiles]的说明
    logon drive = Z:        # 把用户的home目录映射成z:盘,只适用于NT,但我用XP也可以
    logon home = \\%N\%U\  #指定客户端登陆的home目录的位置,当然[homes]目录需要定义哦,为了同时支持9x和nt登陆.该项要设置成为\\%L\%U\.profiles, 并且指定logon path = \\%L\profiles\%U  
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #据说可以提高samba性能
    password server =       # 其他的NT 服务器,或samba服务器但security=server或domain 的ntbios 名字
    hosts allow = 192.168.0. #指定那些主机可以访问
    hosta deny =  192.168.8. #指定那些主机不可以访问
    interfaces = 192.168.0.100/255.255.255.0     #设置samba将对哪些网络接口进行服务。
    bind interface only = yes                    # 如果设置成是,samba只对这几个网络接口服务
    socket address = 192.168.0.10                #强制samba只在该端口监听
    netbios aliases = yao xiao ping              # 设置3个samba虚拟服务器
    include = /etc/samba/smb.conf.another        #包括另外的samba配置文件
    show add printer wizard= yes   # 当用户添加打印机时,显示安装向导.
    printcap name = /etc/printcap
    load printers = yes
    log file = /var/log/samba/%m.log             #日志文件
    max log size = 0                             #日志文件的大小
    log level = 0                                # 日志级别 0 表示没有,3 一般比较合理
    syslog = 2                                   # syslog的日志级(0,err)(1,warning)(2,notice)(3,ifno)(4或以上,debug)
    syslog only = yes                            #只使用系统日志,关闭samba日志
    smb passwd file = /etc/samba/smbpasswd
    unix password sync = yes                     #当用户改变samba加密的密码时,SAMBA会试着更新UNIX用户密码
    passwd program = /usr/bin/passwd %u          #这个就指定更改密码的命令
    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*  #更改密码时的对话
    password level = "数字" 在win9x下密码最多出现大写字母的个数,因为9X是使用平文传送密码的。
    null password = yes      # 是否允许空密码
    pam password change = no  #为samba打开pam改变密码控制机制的支持,
    obey pam restrictions = no #当encrypt passwords = yes 时,samba 会忽略pam的验证,因为pam不支持(挑战/回答)验证机制,他只用来做平文密码的验证。
    nt acl support = yes # 允许NT用户修改unix文件的属性
    announce as = NT         #告诉客户端,samba是以winNT的身份来运行的
    announce version = 4.0   #告诉客户端,samba是以4.0版本来运行的
    remote announce = 192.168.33.33/DEBIAN_FANS #子网和工作组,允许SAMBA和子网同步浏览(local master)
    browse list = yes        #samba将在服务器上生成浏览列表
    remote browse sync = 192.168.222.22 # samba 将会同步在其他子网(local master)的列表,但子网的(LOCAL MASTER)必须是SAMBA服务器
    unix realname #在客户端是否采用unix全文件名
    nis homedir = yes # SAMBA 采用NIS的/etc/nsswitch.conf 文件,而不用/etc/passwd,来找用户的home目录
    logon script = %U.bat  #指定客户端登陆文件名
[netlogon]
    path = /home/samba/netlogon  # 该目录中存放用户登陆脚本(logon script = %U.bat)
  
  writable = no
    guest ok = yes
    share modes = no        # 打开dos的锁全文件的方式,在比较繁忙的服务器上关闭它,会提高性能。
    ;write list = hardy,root  # 指定哪些用户可以在该只读共享文件上有写的权限
[profiles]            # 设置每个登陆用户的环境,包括桌面的属性,开始菜单上应用程序,以及其他项目。它是储存在服务器的。
    path = /home/samba
    writable = yes    #允许些操作
    browsable = yes   #允许该目录被显示在系统资源中
    create mask = 0600
    directory mask = 0700
[printers]
    path = /var/spool/samba
    guest ok = yes
    browseable = yes
    printable = yes
    read only = yes
[cdrom]
    path = /mnt/cdrom
    read only = yes
    gue  st ok = yes
    locking = no      #由于是只读文件
    public = yes
    preexec = /bin/mount /dev/cdrom   #在链接共享文件之前,要执行的命令
    postexec = /bin/umount /dev/cdrom  #在断开共享文件之前,要执行的命令  但我不知道什么时候才算断开。
[homes]
   comment = Home
   magic script = hardy.sh  #当用户打开该共享文件hardy.sh将被执行,结果将被重定向到客户端
   magic output = /var/log/magicoutput #指定结果输出到该文件
   volume = user-at-home  # dos的盘符卷标
   read list = badguy    # 限制这些用户在可写文件上的些操作权限
   valid users = %S      # 可登陆用户
   invalid users = root   #不可登陆用户
   max connections = 0    # 最大连接数
   read only = no
   writable = yes
   create mode = 0777
   directory mode = 0775
   browseable = no
[public]
   path = /var/ftp
   dont descend = etc bin lib # 指定这些在/var/ftp目录下的目录是不可访问的。
   follow symlinks = yes      # 指定是否允许文件的链接
   wide links = yes           # 指定是否可以链接到/var/ftp以外的文件或目录
   hide dot files = yes           # 是否隐藏点文件
   hide files = /*.java/*.cpp/  #  隐藏指定文件
   veto files = /*config/*secret/ # 完全隐藏文件,比隐藏要强硬。重要文件使用
   delete veto files = no        # 当用户删除有veto files的目录时, 是否允许删除veto files以及目录.
   delete readonly = no          # 是否允许dos用户删除只读文件
   security mask = 0777 # 0 表示允许修改,1 表示不允许
   create mask = 0777  # 如果上面的(security mask)没设,则按照这个模式
   force security mode = 0 # 当修改文件的属性,指定哪些模式必须设置
   force create mode = 0 # 如果上面的(force security mode)没设,则按照这个模式
   directory security mask = 0777 # 目录,同上.
   directory mask = 0777
   force directory security mode = 0777
   force directory mode =0777
   case sensitive = no # 是否区分文件名的大小写(windows 是不区分的)
   default case = upper/lower   #设置默认的是大写还是小写
   preserve case = yes          #不进行大小写的转换,不转换成默认(default case)
   short preserve case = yes    #将文件名转成8.3的dos端文件名
   locking = yes            #由于文件只能同时被打开一次,当文件打开时,samba会自动让其他访问守候,为了文件不被破坏  
   oplocks = no            #本地缓存,如果设置成yes,会提高samba的速度,据说在linux-2.5以前的版本有bug,所以在2.4中还是设置成no
   level2 oplocks = no     # 同上
作者:姚小平 (hardy_yao@163.com)

参考文档:
   using_samba
   man smb.conf
   samba-howto-collection
   samba-unofficial
 楼主| 发表于 2003-3-18 23:52:33 | 显示全部楼层

pdc配置文件

samba域服务器样本,这个在我机器上执行成功:
                 关闭防火墙
           首先:添加一台计算机账号
                 #useradd -g 100 -d /dev/null -s /bin/false 计算机名$
                 #passwd -l 计算机名$
                 #smbpasswd -a -m 计算机名  (这里计算机名没有$)
           然后:让windows登陆该域(输入的账号必须是ROOT或SAMBA管理员的密码)
                 在linux上创建SAMBA用户
                  #useradd -m hardy
                  #passwd hardy
                  #smbpasswd -a hardy
           最后:用hardy用户在windows上登录samba域就ok.(成功后,查看/HOME/SAMBA下是否有hardy目录
差错工具:
          linux:
                 nmblookup -B 192.168.0.255   #通过广播来查找主机
                 nmblookup -MT debian_fans    # 搜索master browser的ip地址并通过dns反解析主机名
                 wbinfo   -g 查看PDC上组的信息
                 wbinfo   -u 查看PDC上用户信息
                 tcpdump -ln -vv host 192.168.0.10  用来对samba的察错
          windows:
                 net
                 nbstat -A ip地址
打印机工具:
           rpcclient  用来查看以及设置共享打印机驱动程序
          rpcclient debian -U root%111111 -c "enumprinters"  查看打印机
          rpcclient debian -U root%111111 -c "enumdrivers"   查看打印机驱动
          rpcclient debian -U root%111111 -c "setdriver hp-printer \"HP destjet 656c series\"" 设置打印机驱动

Imprinter 服务,需要下载
          1,能提供关于WINNT和98/95打印机驱动的信息
     2,提供必要的工具来生成打印机驱动包
     3,提供客户端一个能得到并且安装打印机到远程


[global]
    netbios name = POGO
    workgroup = DEBIAN_FANS
    encrypt passwords = yes
    security = user
    wins support = yes
   ; admin users = hardy
    add user script = /usr/sbin/useradd -d /dev/null -g 100 -s /bin/false  %u
    prefered master = yes
    local master = yes
    domain master = yes
    os level = 33
    domain logons = yes
  ;printer admin = hardy
    username map = /etc/samba/smbusers
    logon path = \\%N\profiles\%U
    logon drive = Z:
    logon home = \\%N\%U\.profiles
    share modes = no
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
    password server = *
#additional
    printcap name = /etc/printcap
    load printers = yes
    log file = /var/log/samba/%m.log
    max log size = 0
    smb passwd file = /etc/samba/smbpasswd
    unix password sync = yes
    passwd program = /usr/bin/passwd %u
    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
    pam password change = yes
    obey pam restrictions = yes
    dns proxy = no
[netlogon]
    path = /home/samba/netlogon
    writable = no
    guest ok = yes
    share modes = no
    ;write list = hardy,root
[profiles]
    path = /home/samba
    writable = yes
    browsable = yes
    create mask = 0600
    directory mask = 0700
[printers]
    path = /var/spool/samba
    guest ok = yes
    browseable = yes
    printable = yes
    read only = yes
[cdrom]
    path = /mnt/cdrom
    read only = yes
    guest ok = yes
    locking = no
    public = yes
    preexec = /bin/mount /dev/cdrom
    postexec = /bin/umount /dev/cdrom
[homes]
   comment = Home
   valid users = %S
   read only = no
   writable = yes
   create mode = 0777
   directory mode = 0775
   browseable = no

作者:姚小平 (hardy_yao@163.com)
发表于 2003-3-18 23:53:04 | 显示全部楼层
难得~~~
收藏!!!
发表于 2003-3-21 10:21:16 | 显示全部楼层

求肋

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = mygroup
# server string is the equivalent of the NT Description field
   server string = Samba Server
hosts allow = 192.168.4.  127.
printcap name = /etc/printcap
    load printers = yes
printing = lprng
guest account = pcguest
log file = /var/log/samba/%m.log
max log size = 0
    security = share
encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd

Share Definitions
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no

[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   printable = no
   write list = @staff
上面的是我的SMB。CONF文件内容,我不知是哪有问题的,在WIN98 2000的网上邻居中找不到我这台机子,用查找计算机也找不到,还请帮帮忙,为谢!
发表于 2003-3-21 10:42:38 | 显示全部楼层

求肋

# workgroup = NT-Domain-Name or Workgroup-Name
   workgroup = mygroup
# server string is the equivalent of the NT Description field
   server string = Samba Server
hosts allow = 192.168.4.  127.
printcap name = /etc/printcap
    load printers = yes
printing = lprng
guest account = pcguest
log file = /var/log/samba/%m.log
max log size = 0
    security = share
encrypt passwords = yes
    smb passwd file = /etc/samba/smbpasswd

Share Definitions
[homes]
   comment = Home Directories
   browseable = no
   writable = yes
   valid users = %S
   create mode = 0664
   directory mode = 0775

[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = no

[public]
   comment = Public Stuff
   path = /home/samba
   public = yes
   writable = yes
   printable = no
   write list = @staff
上面的是我的SMB。CONF文件内容,我不知是哪有问题的,在WIN98 2000的网上邻居中找不到我这台机子,用查找计算机也找不到,还请帮帮忙,为谢!
发表于 2003-3-26 00:10:37 | 显示全部楼层
少了一个主机名,如
netbios name=freesmb
发表于 2003-3-26 08:24:10 | 显示全部楼层
楼上的热心兄弟,我加了一句NETBIOS NAME =RDLINUX 可是还是不行啊!和没有加的时候是一样的,还请帮帮忙啊!
发表于 2003-3-26 13:50:05 | 显示全部楼层
发表于 2003-3-27 17:08:25 | 显示全部楼层

求助,我好急

[root@mengxiang root]# smbclient -L 192.168.4.188
added interface ip=192.168.4.111 bcast=192.168.4.255 nmask=255.255.255.0
session request to 192.168.4.188 failed (Called name not present)
session request to 192 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)



192.168.4.111 是linux服务器 192.168.4.188是win98客户机,出现上面的错误是什么原因呢
发表于 2003-3-28 09:26:59 | 显示全部楼层

怎么没有人来告诉我啊

我现在能在win98中的机子中看到我的linux 工作组,我可是我双击它的时候,总是说找不到机器或共享名,我在的安全级别是share啊,这是怎么一回事
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表