上一次发布了《使用samba实现Linux访问Linux共享》,主要是针对高版本的samba,有时候系统无法安装高版本的samba,比如网络不好,或者高版本的samba依赖太多,这里就需要使用低版本的samba使用源码安装,主要参照了这篇博文《samba3.2的安装全过程(tar方式)》,作者写得比较详细,但是部分问题我在实践当中仍然遇到些许问题,所以这里把我的实现步骤完整共享出来。
下载Samba3.2.0
samba下载地址:http://pkgs.fedoraproject.org/repo/pkgs/samba/samba-3.2.0.tar.gz/318d5b1ec0507f0f6077b1470f9fc028/
解压到任意非中文目录,运行终端。
cd samba-3.2.0/source (进入解压后目录的子目录source,因为代码在里面)
./configure (我们不使用--prefix参数,因为它默认安装到/usr/local/samba)
make
sudo make install
注意存在权限问题,最后一步需要使用sudo命令。
没有出现错误的话,则说明安装完成,此时我们到/usr/local/samba目录下可以发现安装文件:
至此,samba安装完毕,但是还没有共享任何文件夹。
假设我们想共享/home/autumoon/Data目录,并且在/home/autumoon/Data目录下放一些文件,方便后续查看共享,如下图:
原来解压的目录的子目录examples中复制smb.conf.default,复制一份,去掉.default,然后修改这个配置文件,主要修改如下:
在[global]下添加:
dos charset = UTF-8
unix charset = utf-8
display charset = utf-8
防止中文乱码的问题。
在结尾添加:
[share]
comment = this is Linux share directory
path = /home/autumoon/Data
public = yes
browseable = yes
writable = yes
然后把这个配置文件到上面的lib目录中去,使用命令:
sudo mv smb.conf /usr/local/samba/lib/
sudo ldconfig
结果:
添加访问用户
samba的用户必须是Linux的用户,比如我的当前用户是autumoon
注意此处,一定要先执行cd /usr/local/samba/bin 否则命令无法执行,并且即便命令可以执行成功(说明电脑里曾经安装过其他版本的samba但是未卸载干净),后期也无法正常访问共享!
cd /usr/local/samba/bin
sudo ./smbpasswd -a autumoon
按照提示输入密码1234567890
密码与账户密码相同与否都可以,但不能过短,否则无法添加成功!
最后启动服务器:
sudo /usr/local/samba/sbin/smbd -D
sudo /usr/local/samba/sbin/nmbd -D
注意这里一定要使用sudo,不然即便不报错,也无法共享成功!
注意这里如果报错error while loading shared libraries: libtalloc.so.1
则需要添加/usr/local/samba/lib到文件/etc/ld.so.conf文件,然后再次sudo ldconfig即可,具体命令为:
sudo pluma /etc/ld.so.conf
然后复制/usr/local/samba/lib到最后一行,接着sudo ldconfig即可。
至此我们先试试在Windows下访问:
运行,输入\\主机ip地址,比如我的是:\\192.168.128.128
输入帐户autumoon和密码1234567890,此时发现Windows下已经可以访问。
在Linux下,本地先创建一个空目录/home/autumoon/map,然后终端执行:
sudo mount -t cifs "//192.168.128.128/share" -o username=autumoon,password=1234567890,iocharset=utf8,vers=1.0 /home/autumoon/map
直接访问:/home/autumoon/map,发现共享已经访问成功!
中文正常显示,也可以创建文件,至此全部结束。