服务器之家

专注于服务器技术!
当前位置:首页 > 服务器系统 > Linux

Debian Linux系统使用samba实现Windows与Linux的文件共享

发布时间:2014-04-09 来源:服务器之家

1. 相关组件的安装
#apt-get install openssh-client    <-------------------------安装ssh服务
#apt-get install samba samba-common    <-------------------------安装samba服务器
#apt-get install smbclient smbfs   <-------------------------安装samba客户端

2. 开启/关闭/重启samba服务
debian:~# /etc/init.d/samba start/stop/restart       <----------------重新启动samba服务类似的有start stop
       关掉Samba服务器,也可以用下面的办法,大多是通用的;要root权限来执行;
debian:/home/weimen# pkill smbd
debian:/home/weimen# pkill nmbd
debian:/home/weimen# pgrep smbd    <----------------查看smbd和nmbd是否工作
7931
7934
debian:/home/weimen# pgrep nmbd
7929
       查询samba的工作端口:
debian:/home/weimen# netstat -tlnp | grep smb   
tcp6       0      0 :::139                  :::*                    LISTEN      7931/smbd      
tcp6       0      0 :::445                  :::*                    LISTEN      7931/smbd

3. samba配置
3.1 检查当前配置
       我们的samba现在已经运行了,那么,它正在提供哪些服务呢?我们可以用:testparm。这个命令来让我们检查smb.conf的配置是否正确,而且还可以列出一个实际上有效的smb.conf的内容:
# testparm
    通过这个命令,我们可以看到,实际上发挥作用的配置,就是那么几行。

3.2使用smbpasswd命令,添加samba用户:
debian:/home# smbpasswd -a root    <----------------这里的用户名必须是系统中已有的,如root等,可以不写密码,直接按回车
    注:删除用户使用命令smbpasswd -x fantity
New SMB password:
Retype new SMB password:
Added user root.

# smbpasswd -a test
New SMB password:
Retype new SMB password:
Failed to add entry for user test.
    解决办法:
    这是因为没有加相应的系统账号所以会提示Failed to add entry for user的错误,只需增加相应的系统账号test就可以了:
# pw groupadd test -g 6000
# pw useradd test -u 6000 -g 6000 -s/sbin/nologin -d/dev/null
    这时就可以用smbpasswd -a test增加test这个samba账号了!为了增加系统的安全性,所以加的系统账号不要给shell它,也不给它指定目录,到时在/home目录给test账号建个文件夹,该文件夹只有test有读写权限即可!如:
# mkdir /home/test
# chown -R test:test /home/test
    若不想让另人访问,只让test用户可以访问,只需执行命令:
# chmod u+rwx,g+rwx,o-rwx /home/test
    这时可以用smbpasswd命令增加samba账号test了
# smbpasswd -a test
New SMB password:
Retype new SMB password:
Added user test.

3.3在windows下的浏览器下或运行里输入:\192.168.206.129    <----------------即虚拟机的IP地址
       即可访问Linux下的共享目录了。

3.4/etc/samba/smb.conf文件内容
debian:/home# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak    <----------------先备份原始原来的配置文件
debian:/home# vim /etc/samba/smb.conf    <----------------再重新建立smb.conf
    最简单的共享加入如下内容即可:



[global]         
    log file = /var/log/samba/log.%m        
    wins support = no[share]
    comment = shared file space
    path = /home/share
    browsable = yes
    writable = yes
    valid users = fantity


3.5在Linux下查看共享文件
debian:/home# smbclient -L //192.168.206.129
Enter root's password: 
Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5]

 Sharename       Type      Comment
 ---------       ----      -------
 share           Disk      Temporary file space
 IPC$            IPC       IPC Service (Samba 3.2.5)
Domain=[DEBIAN] OS=[Unix] Server=[Samba 3.2.5]

 Server               Comment
 ---------            -------

 Workgroup            Master
 ---------            -------
 WORKGROUP            DEBIAN

debian:/home# smbtree    <----------------显示共享目录的树状图

Password:
WORKGROUP
 \WWW-B12606289FA 
cli_rpc_pipe_open: cli_nt_create failed on pipe srvsvc to machine WWW-B12606289FA.  Error was NT_STATUS_ACCESS_DENIED
 \DEBIAN           Samba 3.2.5
  \DEBIANIPC$            IPC Service (Samba 3.2.5)
  \DEBIANshare           Temporary file space

debian:/home# findsmb    <----------------查找本网段内有共享服务的机器

                                *=DMB
                                +=LMB
IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION
---------------------------------------------------------------------
192.168.206.1   WWW-B12606289FA [WORKGROUP] [Windows 5.1] [Windows 2000 LAN Manager]
192.168.206.129 DEBIAN        +[DEBIAN] [Unix] [Samba 3.2.5]