红联Linux门户
Linux帮助

samba服务器的问题,急!!!

发布时间:2007-10-08 15:18:28来源:红联作者:huran
小弟用FC6架设samba服务器,建立目录/share,用chmod 777 /share 设置用户权限. 在/etc/samba/smb.conf 中 修改代码如下:
workgroup = WORKGROUP
security = user

[public]
path = /share
public = yes
only guest = yes
writable = yes
printable = no
将root用户加入samba用户中.
重启smb : service smb restart.

在windows xp访问samba共享资源的时候出现如下问题: 可一浏览linux共享目录中的内容,可以打开目录中的文件,但是不能在目录中新建文件或文件夹. 可以删除共享目录中的文件,但是刷新一下删除的文件又出现了.

请各位大侠帮帮忙,小弟感激不尽.
文章评论

共有 5 条评论

  1. 寒风冰霜 于 2007-11-17 19:57:19发表:

    查查看你LINUX的IP地址还有一个问题就是你在配置文件中工作组改了吗?workgroup = MYGROUP这是LINUX默认的工作组你要改成和WINDOWS工作组一样啊.你WINDOWS设置了IP吗尽量把WINDOWS和LINUX的IP设在一个网段,

  2. 寒风冰霜 于 2007-11-17 19:53:49发表:

    security = share

  3. huran 于 2007-10-08 18:48:30发表:

    感谢2楼写了那么多帮我,我照着做了,可是还是老问题.以下是我的配置文件和出错信息:

    [global]

    workgroup = MYGROUP
    server string = Samba Server
    security = user

    [public]
    path = /share
    browseable = yes
    guest ok = yes
    writable = yes



    ; hosts allow = 192.168.1. 192.168.2. 127.

    load printers = yes

    ; printcap name = /etc/printcap

    ; printcap name = lpstat

    # It should not be necessary to specify the print system type unless
    # it is non-standard. Currently supported print systems include:
    # bsd, cups, sysv, plp, lprng, aix, hpux, qnx
    ; printing = cups

    # This option tells cups that the data has already been rasterized
    cups options = raw

    # Uncomment this if you want a guest account, you must add this to /etc/passwd
    # otherwise the user "nobody" is used
    ; guest account = pcguest

    # this tells Samba to use a separate log file for each machine
    # that connects
    log file = /var/log/samba/%m.log

    # Put a capping on the size of the log files (in Kb).
    max log size = 50

    # Use password server option only with security = server
    # The argument list may include:
    # password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
    # or to auto-locate the domain controller/s
    # password server = *
    ; password server =

    # Use the realm option only with security = ads
    # Specifies the Active Directory realm the host is part of
    ; realm = MY_REALM

    # Backend to store user information in. New installations should
    # use either tdbsam or ldapsam. smbpasswd is available for backwards
    # compatibility. tdbsam requires no further configuration.
    ; passdb backend = tdbsam

    # Using the following line enables you to customise your configuration
    # on a per machine basis. The %m gets replaced with the netbios name
    # of the machine that is connecting.
    # Note: Consider carefully the location in the configuration file of
    # this line. The included file is read at that point.
    ; include = /usr/local/samba/lib/smb.conf.%m

    # Configure Samba to use multiple interfaces
    # If you have multiple network interfaces then you must list them
    # here. See the man page for details.
    ; interfaces = 192.168.12.2/24 192.168.13.2/24

    # Browser Control Options:
    # set local master to no if you don't want Samba to become a master
    # browser on your network. Otherwise the normal election rules apply
    ; local master = no

    # OS Level determines the precedence of this server in master browser
    # elections. The default value should be reasonable
    ; os level = 33

    # Domain Master specifies Samba to be the Domain Master Browser. This
    # allows Samba to collate browse lists between subnets. Don't use this
    # if you already have a Windows NT domain controller doing this job
    ; domain master = yes

    # Preferred Master causes Samba to force a local browser election on startup
    # and gives it a slightly higher chance of winning the election
    ; preferred master = yes

    # Enable this if you want Samba to be a domain logon server for
    # Windows95 workstations.
    ; domain logons = yes

    # if you enable domain logons then you may want a per-machine or
    # per user logon script
    # run a specific logon batch file per workstation (machine)
    ; logon script = %m.bat
    # run a specific logon batch file per username
    ; logon script = %U.bat

    # Where to store roving profiles (only for Win95 and WinNT)
    # %L substitutes for this servers netbios name, %U is username
    # You must uncomment the [Profiles] share below
    ; logon path = \\%L\Profiles\%U

    # Windows Internet Name Serving Support Section:
    # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
    ; wins support = yes

    # WINS Server - Tells the NMBD components of Samba to be a WINS Client
    # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
    ; wins server = w.x.y.z

    # WINS Proxy - Tells Samba to answer name resolution queries on
    # behalf of a non WINS capable client, for this to work there must be
    # at least one WINS Server on the network. The default is NO.
    ; wins proxy = yes

    # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
    # via DNS nslookups. The default is NO.
    dns proxy = no

    # These scripts are used on a domain controller or stand-alone
    # machine to add or delete corresponding unix accounts
    ; add user script = /usr/sbin/useradd %u
    ; add group script = /usr/sbin/groupadd %g
    ; add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
    ; delete user script = /usr/sbin/userdel %u
    ; delete user from group script = /usr/sbin/deluser %u %g
    ; delete group script = /usr/sbin/groupdel %g


    #============================ Share Definitions ==============================
    [homes]
    comment = Home Directories
    browseable = no
    writable = yes

    # Un-comment the following and create the netlogon directory for Domain Logons
    ; [netlogon]
    ; comment = Network Logon Service
    ; path = /usr/local/samba/lib/netlogon
    ; guest ok = yes
    ; writable = no
    ; share modes = no


    # Un-comment the following to provide a specific roving profile share
    # the default is to use the user's home directory
    ;[Profiles]
    ; path = /usr/local/samba/profiles
    ; browseable = no
    ; guest ok = yes


    # NOTE: If you have a BSD-style print system there is no need to
    # specifically define each individual printer
    [printers]
    comment = All Printers
    path = /usr/spool/samba
    browseable = no
    # Set public = yes to allow user 'guest account' to print
    guest ok = no
    writable = no
    printable = yes

    # This one is useful for people to share files
    ;[tmp]
    ; comment = Temporary file space
    ; path = /tmp
    ; read only = no
    ; public = yes

    # A publicly accessible directory, but read only, except for people in
    # the "staff" group
    ;[public]
    ; comment = Public Stuff
    ; path = /home/samba
    ; public = yes
    ; writable = yes
    ; printable = no
    ; write list = @staff

    # Other examples.
    #
    # A private printer, usable only by fred. Spool data will be placed in fred's
    # home directory. Note that fred must have write access to the spool directory,
    # wherever it is.
    ;[fredsprn]
    ; comment = Fred's Printer
    ; valid users = fred
    ; path = /homes/fred
    ; printer = freds_printer
    ; public = no
    ; writable = no
    ; printable = yes

    # A private directory, usable only by fred. Note that fred requires write
    # access to the directory.
    ;[fredsdir]
    ; comment = Fred's Service
    ; path = /usr/somewhere/private
    ; valid users = fred
    ; public = no
    ; writable = yes
    ; printable = no

    # a service which has a different directory for each machine that connects
    # this allows you to tailor configurations to incoming machines. You could
    # also use the %U option to tailor it by user name.
    # The %m gets replaced with the machine name that is connecting.
    ;[pchome]
    ; comment = PC Directories
    ; path = /usr/pc/%m
    ; public = no
    ; writable = yes

    # A publicly accessible directory, read/write to all users. Note that all files
    # created in the directory by users will be owned by the default user, so
    # any user with access can delete any other user's files. Obviously this
    # directory must be writable by the default user. Another user could of course
    # be specified, in which case all files would be owned by that user instead.
    ;[public]
    ; path = /usr/somewhere/else/public
    ; public = yes
    ; only guest = yes
    ; writable = yes
    ; printable = no

    # The following two entries demonstrate how to share a directory so that two
    # users can place files there that will be owned by the specific users. In this
    # setup, the directory should be writable by both users and should have the
    # sticky bit set on it to prevent abuse. Obviously this could be extended to
    # as many users as required.
    ;[myshare]
    ; comment = Mary's and Fred's stuff
    ; path = /usr/somewhere/shared
    ; valid users = mary fred
    ; public = no
    ; writable = yes
    ; printable = no
    ; create mask = 0765



    建立目录/share,并chmod nobody:nobody /share
    重启smb服务
    结果还是可以浏览共享的文件夹但无法在共享的linux文件夹中写入文件或删除文件,删除时当时文件没了,但刷新后删除的文件又冒出来了

    请各位一帮帮忙

  4. xcwen 于 2007-10-08 16:46:46发表:

    4、由最简单的一个例子说起,匿名用户可读可写的实现;

      第一步: 更改smb.conf

      我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文>件夹;我们要改动一下smb.conf ;首先您要备份一下smb.conf文件;

      [root@localhost ~]# cd /etc/samba

      [root@localhost samba]# mv smb.conf smb.confBAK

      然后我们来重新创建一个smb.conf文件;

      [root@localhost samba]#touch smb.conf

      然后我们把下面这段写入smb.conf中;

      [global]

      workgroup = LinuxSir

      netbios name = LinuxSir05
     server string = Linux Samba Server TestServer

      security = share

      [linuxsir]

      path = /opt/linuxsir

      writeable = yes

      browseable = yes

      guest ok = yes
     注解:

      [global]这段是全局配置,是必段写的。其中有如下的几行;

      workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);

      netbios name 就是在Windows中显示出来的计算机名;

      server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;

      security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

      [linuxsir] 这个在Windows中显示出来是共享的目录;

      path = 可以设置要共享的目录放在哪里;

      writeable 是否可写,这里我设置为可写;

      browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no

      guest ok 匿名用户以guest身份是登录;

      第二步:建立相应目录并授权;

      [root@localhost ~]# mkdir -p /opt/linuxsir

      [root@localhost ~]# id nobody

      uid=99(nobody) gid=99(nobody) groups=99(nobody)

      [root@localhost ~]# chown -R nobody:nobody /opt/linuxsir
     注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户
    组并非是nobody ;

      第三步:启动smbd和nmbd服务器;

      [root@localhost ~]# smbd

      [root@localhost ~]# nmbd

      第四步:查看smbd进程,确认Samba 服务器是否运行起来了;

      [root@localhost ~]# pgrep smbd

      13564

      13568

      第五步:访问Samba 服务器的共享;

      在Linux 中您可以用下面的命令来访问;

      [root@localhost ~]# smbclient -L //LinuxSir05

      Password: 注:直接按回车

      在Windows中,您可以用下面的办法来访问;

      \\LinuxSir05\

  5. yezhulin1982 于 2007-10-08 16:38:59发表:

    把你的整个配置文件贴出来。
    /etc/samba/smb.conf