ubuntu samba 服务器设置


安装 SAMBA 组件



sudo apt-get install samba smbfs smbclient



ubuntu 14.04 使用以下方式安装:



若之前有安装过相关软件包,先卸载之:           
            sudo apt-            get             autoremove samba samba-common           
            sudo apt-            get             autoremove system-config-samba           
                        
            按如下方式安装软件包           
            sudo apt-            get             install samba samba-common           
            sudo apt-            get             install system-config-samba cifs-utils




 

配置相关参数



sudo gedit /etc/samba/smb.conf



文件中相关属性如下

1.全局设置部分

security = user
    这行设置了samba的安全等级,Samba一共可以设置四个安全登记,由底到高分别为:
    share        这个选项表示任何人都可以不需要输入密码登录。 
    user          这个是Samba的默认级别,要求每个用户必须输入密码才能登录。
    server      user级别的密码都是保存在本机上,而server级别的密码和用户名都保存在另一台主机上。
    domain    这个级别要求网络里必须有一台Windows的域控制器,验证工作由域控制器来完成。
    需要注意,只要输入用户名和密码的级别,其用户名一定首先也是Linux系统内的用户

workgroup = MSHOME
    这部分是Windows主机的工作组明,Windows主机必须在同一个工作组中
server string = %h server(Samba,Ubuntu)
    这个选项是显示在Windows上的信息,可以自定义,其中%h为Samba配置文件中的变量,代表了主机名,即使用hostname命令得到的主机名

map to guest = bad user

 map to guest = bad user

2.共享设置部分

[share]

    共享文件名,不需要与实际文件名一致
comment = my share directory

    对这个共享分支的描述
path = /share

    系统的共享目录,必须为绝对路径
public = yes

    是否允许所有人都能够看到此目录,no为看不到
writable = yes

    是否允许用户在此目录下可写,no为不可些,如果可写,还需要目录具有写权限
read only = yes

    设置用户是否只读
vaild users = username

    设置只有 username 用户有效

SAMBA 用户管理

在需要密码登录时有效,在设置用户密码时,此用户必须是LINUX系统的用户,如下面的指令 user 必须先是系统的用户



sudo smbpasswd -a user



接下来根据提示输入两次密码即可

smbpasswd 指令相关参数如下:

-a    新添加一个Samba用户。
-d    禁用一个Samba用户。
-e

启动 SAMBA 服务



# 停止 SAMBA 服务
sudo /etc/init.d/smbd stop
# 启动 SAMBA 服务
sudo /etc/init.d/smbd start
# 重新启动
sudo /etc/init.d/smbd restart



在 WINDOWS 下访问共享目录



# 在资源管理器,或浏览器中直接输入即可, “192.168.1.10” 为服务器 IP
\\192.168.1.10




注意:有时会出现无法访问的情况:

 无法访问。您可能没有权限使用网络资源,请与这台服务器的管理员联系以查明您是否有访问权限。
指定的网络名不再可用

通过 Samba的log, /var/log/samba/log.{计算机名} - 计算机名是你的windows主机名称
可以看到,访问出错时会产生大量的 err log



  1.  [2016/09/22 23:26:18.333436,  0] ../source3/lib/util.c:809(smb_panic_s3)
      64   smb_panic(): action returned status 0
      65 [2016/09/22 23:26:18.333568,  0] ../source3/lib/dumpcore.c:318(dump_core)
      66   dumping core in /var/log/samba/cores/smbd
      67 Please install an MTA on this system if you want to use sendmail!
      68 [2016/09/22 23:26:21.085401,  0] ../source3/lib/popt_common.c:                  68(popt_s3_talloc_log_fn)
      69   talloc: access after free error - first free may be at ../source3/smbd/       open.c:3715
      70 [2016/09/22 23:26:21.085457,  0] ../source3/lib/popt_common.c:                  68(popt_s3_talloc_log_fn)
      71   Bad talloc magic value - access after free
      72 [2016/09/22 23:26:21.085474,  0] ../source3/lib/util.c:789(smb_panic_s3)
      73   PANIC (pid 2450): Bad talloc magic value - access after free


原因是talloc的版本不匹配导致的!安装 libtalloc解决,apt-get install libtalloc2



ubuntu 12.04 安装samba

sudo su 进入root用户:
第一步:安装samba服务器

Samba服务在Ubuntu12.04版本中中默认安装,对于其他没有默认安装的版本来说,可以通过一

下命令来安装所需要的软件:

         1:sudo apt-get install samba

sudo apt-get install smbfs

第二步:配置samba服务器

 (1)创建共享目录:

        mkdir /home/share

 (2)更改目录权限:

         chmod 777 /home/share

 (3)  配置Samba服务
     

保存现有的配置文件



sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak



       /etc/samba/smb.conf是Samba服务器的配置文件,我们设置共享目录均是在这个文件中进



行配置。



   在Windows系统中不用输入密码访问Linux共享目录:在Linux共享一个目录,将建立好的目录



的设置信息写入/etc/smb.conf文件即可。



      修改samba配置文件smb.conf:



     // #security=user 修改为:security=share



      在文件最后添加如下:



      [share]


      comment=share


      path=/home/share


      public=yes


      writeable=yes


      browseable = yes



      保存退出。


  (4) 创建samba帐户



sudo touch /etc/samba/smbpasswd
   sudo smbpasswd -a sam(此处的用户必须是你已经在本机创建的用户,否则无效)



然后会要求你输入samba帐户的密码

[如果没有第四步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]



/etc/init.d/smbd restart



        在windows命令行中输入\\192.168.1.141(虚拟机ip)