Samba实际是一个网络服务器,用于linux与windows之间共享文件。Samba既可以用于windows与linux之间的文件共享,也可以用于linux与linux之间的文件共享,不过对于linux与linux之间的文件共享有更好的文件网络服务器NFS。
Samba有两个服务器组成:smb、nmb;smb用来说明使用samba的机器共享了什么;nmb用来解析域名。
Samba常用的命令:(假设ubuntu 中root登陆)
1、启动samba
#/etc/init.d/samba start
2、停止samba
#/etc/init.d/samba stop
或者
#/etc/init.d/samba restart
3、查看samba是否运行起来
#pgrep smbd
Samba在linux中常用的工具有:
smbd,nmbd,smbpasswd 这些是服务器使用,例如:
查看samba是否启动,可以利用smbd工具
#pgrep smbd
对设置好的共享目录,设置密码:
#smbpasswd –a XXX(-a adduser的意思 后面跟上需要添加的用户名)
Password:XXXXXX (输入密码)
作为客户端常用的工具:
smbclient,smbmount。这两个工具很重要,可以利用这两个工具访问或者挂载windows下的共享目录。例如:windows ip:172.16.10.42; 当前登陆用户:Administrator;共享文件夹 abc;linux ip:172.16.10.43;当前登陆用户:root;
访问windows下共享文件夹abc
#smbclient -L //172.16.10.42 -U Administrator
#smbclient //172.16.10.42/abc -U Administrator
输入windows中Administrator的登陆密码
可以看到在 sharename 下寻找到了abc 类型是 disk,说明我们已经与windows建立联系:
输入密码后:
利用ls可以浏览共享文件夹。
还可以利用smbmount来挂载windows下的共享目录,这样我们可以利用sourceinsight在windows下编写代码,然后利用挂载的方式直接在linux中交叉编译。例如:
smbmount //ip地址 /linux中要挂载的目录 [-o] username=windows下登陆的用户,password=XXXXXX
在linux下就可以操作windows共享目录中的文件了。
如果需要卸载挂载的目录,可以直接调用umount,但是试验发现有的时候是无法卸载掉的会报错
unmount error 16 = Device or resource busy
这个时候,需要使用 umount –l 命令来卸载,在man手册中注释是启用了umount lazy模式,在需要卸载的对象不忙的情况下卸载。
Ubuntu 下,下载安装samba:
1.下载samba
sudo apt-get install samba
sudo apt-get install smbfs
root登陆的话,可以省略sudo
2.创建共享目录
mkdir /home/XXX/share
sudo chmod 777 /home/XXX/share
XXX是用户名,当然可以自由选择目录和文件夹。
3.修改samba的配置文件
1、备份配置文件
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak 先做一个备份
2、创建新的samba配置文件
sudo vi /etc/samba/smb.conf
[global]
workgroup=MYGROUP(创建工作组,随便写个名字就可以了)
security=share(不能缺省)
[share]
path = /home/XXX/share
browseable = yes(可以加空格)
writeable = yes
guest OK = yes(不能缺省)
注解:
[global]这段是全局配置,是必写的。其中有如下的常用参数:
workgroup 就是Windows中显示的工作组;在这里我设置的是MYGROUP(用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[share] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
guest ok 匿名用户以guest身份是登录;
3、存盘退出。
4.测试文件
testparm
5.重启samba服务
/etc/init.d/samba restart
XP下右键“我的电脑”==》映射网络硬盘
输入IP及共享文件夹,OK。Ex:/172.16.10.42homeXXXshare,可以直接copy windows下的文件到 linux 共享的 share目录。
也可以利用smbmount 将windows下的共享目录挂载到linux,在linux中使用。
samba就是这么简单。