主题:【原创】gentoo linux文件共享samba经验点 -- 瓦斯
在西西河最早系统地介绍linux的大概要算请尽量了,他的大作是我的启蒙教材,后来的朋友不妨看看这个系列文章:
请尽量:【原创】基于Linux内核的开放源代码操作系统的组成:第四篇
请尽量在结尾时很谦虚地写道:
瓦斯最近也开始学Samba了,没有班门弄斧的资格,只有一点傻大胆,把点滴经验写在这里。
在MS-Windows中的文件共享相对比较容易设置,在linux中要实现文件共享需要一个samba的服务程序。如果是在gentoo中,需要首先安装samba:
emerge samba
安装之后可以手动启动dsamba:
/etc/init.d/samba start
也可以让系统在每次启动时自动启动samba:
rc-update add samba default
如果内核还没有支持samba,这是后会提示需要重新编译一下内核,例如:
genkernel all --menuconfig
其中的--menuconfig选项就是让你有机会进入一个选择菜单,在里面把想要的东西都打上勾。在这里面有很多有用的东西可以做,例如对于中文文件名的支持、对于多用途读卡器的支持等等。
samba服务启动之后,就可以设置共享目录了。
电脑之间的文件共享,大致可以分为几类:
1、MS-Windows之间的共享(不是本文的讨论范围);
2、linux之间的共享;
3、Linux与MS-Windows之间的共享。
每一类之中,又可以分为服务器端和客户端的设置两部分。
瓦斯的水平还很有限,现在只做到了作为客户端的linux访问:
1、服务器端的Linux samba共享目录
2、MS-Winodws的共享目录
其实Linux作为客户端访问哪种服务器,没有什么区别,无论服务器端是Linux还是MS-Windows。
假设有一台服务器叫src1的上面有一个共享目录叫pub1,我的linux上有一个目录叫/mnt/mypub,我要把pub1挂接到我的/mnt/mypub上就可以访问了:
mount -t smbfs -o username=myname,workinggroup=mygroup,passwd=mypasswd //src1/pub1 /mnt/mypub
把其中的mynamemy、groupmy和passwd 换成你在那台服务机器上的用户面、口令和用户组就行了。passwd可以省略,输入命令之后会提示passwd,这时输入也可以,比较安全。
把这条命令写在/etc/fstab中,可以省去每次打那么长的命令,如:
//src1/pub1 /mnt/mypub smbfs username=myname,workinggroup=mygroup,passwd=mypasswd noauto 0 0
出于安全考虑passwd=mypasswd也可以省略,再次需要的时候输入口令。
noauto选项是为了避免每次启动时都自动挂载,只在需要的时候打入简短的命令就可以了:
mount /mnt/mypub
这时可以输入口令(如没有passwd=mypasswd的话)
挂载成功之后,使用/mnt/mypub来操作共享目录中的文件,就没有什么区别了。
本帖一共被 1 帖 引用 (帖内工具实现)
服务端的配置文件/etc/samba/smb.conf也顺便介绍一下吧,否则人家不知道怎么把服务端目录共享出来。
希望抛砖引玉啊。
特别是服务器端的配置。
最新版的samba客户端,已经改为了cifs了。这个cifs是samba的升级版。虽然我感觉不出有什么重大的区别,但是一般来说还是推荐用它吧。
还有对应到内核的选项,有很多,但是涉及smb/cifs的主要是下面的这项:
“File systems”->“Network File Systems”->“CIFS support”和“SMB file system support”(SMB这项在最新的gentoo内核中被标记为“已废弃”,所以可以不要)。
送花
Samba系统是1990年代初,由澳洲人开发的开源项目,原名叫SMBServer。
本来小圈子里面,哥几个玩玩倒也没事儿。后来SMBServer逐渐流传开。人怕出名猪怕壮,SMBServer出了名,麻烦也来了。有个公司扬言要起诉SMBServer侵犯了他们产品的注册商标,说是要索赔多少多少。
本来就是一个开源项目,大家做来玩的,哪里有多少利润。索赔?要钱没有,要命倒是有一条。
后来众人苦劝,不就是为了一个名称吗?何必大动干戈,既然SMBServer已经有人注册,我们改个名还不行吗?
但是改成什么呢?众人苦想,也没有一个好主意。
没想出名称,倒是有人想出了一个找名称的办法的办法。
关键是S、M、B这三个字母,要不我们查查字典,看看按顺序包含S、M、B这三个字母的词有哪些?
旁边有人说了,都是搞电脑的,何必劳神翻字典,一个命令就搞定,“grep -i '^s.*m.*b' /usr/share/dict/words”。哦也,于是乎Samba出现了。
我还特地查了一把,看看到底哪个公司这么流氓呢。。。
http://linux.vbird.org/
关于samba,XP下有大把的攻略介绍,而samba.org和oreilly的文档很全了。
如果使用Vista不能连接时,记得修改注册表,把
HKLM/System/CurrentControlCset/Control/LSA/LMCompatibilityLevel
默认的 3 (NTLM2 only) 改为1(LM & NTLM, NTLMv2 if negotiated). M$的惯用伎俩,设置壁垒为难别人。
果然是流氓中的老大
Samba现在支持SMB2了吗?
在linux上面开通ssh
那么用windows的winscp或者cygwin下面的scp就可以方便地把文件在linux和windows之间互传了
不需要安装任何软件
而linux,大部分自带smbclient,gnome更是集成入了nautilus这个鹦鹉螺。访问windows共享文件夹用smb://xxxx/就好了
NTLM v1根本就不应该再用了,甚至NTLMv2也应该尽量少使用,能用kerberos的就应该上kerberos。你把正常的科技更新换代也说成是壁垒,有点过分了。要是微软真的想搞个壁垒,为什么还要给你registry key to change the setting?
看来玩的东西应该差不多。