最近在学习linux 今天把架设linux samba服务器的方法写出来 欢迎大家讨论和指点
本机是虚拟机和winxp进行测试,虚拟机地址是192.168.1.144 主机地址是192.168.1.10.两者是可以互通的。
首先我们先做linux下的配置
一. 首先要确定linux是否安装了smb
[root@localhost zy]#rpm -qa | grep samba
samba-2.2.5-10
samba-swat-2.2.5-10
samba-common-2.2.5-10
samba-client-2.2.5-10
呵呵 本机已经安装了我就不多说了,没安装的找光盘安装了
二、然后我们判断一下,是否samba服务已经启动,
[root@localhost zy]#ps -aux | grep smb
root 1719 0.0 0.3 4916 1820 ? S 08:21 0:00 smbd -D
root 1849 0.0 0.1 4776 628 pts/1 S 08:48 0:00 grep smb
如果没有启动的话 用[root@localhost zy]#/etc/init.d start
关闭是 [root@localhost zy]#/etc/init.d stop
重启是 [root@localhost zy]#/etc/init.d start
这里只是本次启动,如果需要每次开机都启动的话
用setup 或者 ntsysv
三.本机是没有装linux下的防火墙的 如果因为防火墙的原因造成不能互相访问
[root@localhost zy]#/sbin/iptables -F
四,配置smb的主要配置文件smb.conf
[root@localhost zy]# cd /etc/samba
[root@localhost samba]# mv smb.conf smb.confbak
然后我们来重新创建一个smb.conf文件
[root@localhost zy]touch smb.conf
然后我们把下面这段写入smb.conf中
[global]
workgroup = workgroup
netbios name = zy
server string = Linux Samba Server
security = user
vaild user = zhaoyong
[zy]
path = /home/zy
writeable = yes
browseable = yes
create mask = 0664
guest ok = yes
[global]这段是全局配置,是必写的
workgroup 就是Windows中显示的工作组;在这里我还是workgroup
netbios name 就是在Windows中显示出来的计算机名zy
server string 就是Samba服务器说明,可以自己来定义;这个可以省略
security 这是验证和登录方式,这里我们用了uesr ;验证方式有好多种,这是其中一种;如果用share呢,就是不用设置用户和密码了;
[zy] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
create mask是用户创建文件时的权限掩码;对用户来可读可写,对用户组可读可写,对其它用户可读;
guest ok 匿名用户以guest身份是登录;
五,对文件授权和建立用户
[root@localhost zy]#useradd zhaoyong
[root@localhost zy]#passwd 123456
[root@localhost zy]#mkdir -p /home/zy 创建目录
[root@localhost zy]#chmod 755 /home/zhaoyong 改变目录权限
[root@localhost zy]#chown zhaoyong /home/zhaoyong 将目录所有者变为zhaoyong
[root@localhost zy]#/usr/sbin/groupadd workgroup 创建用户组 workgroup
[root@localhost zy]#gpasswd -a zhaoyong workgroup将zhaoyong加入 用户组workgroup
六.添加samba用户,并设置密码;
我们用的方法是先添加用户,但添加的这些用户都是虚拟用户,因为这些用户是不能通过SHELL登录系统的;
另外值得注意的是系统用户密码和Samba用户的密码是不同的。如果您设置了系统用户能登入SHELL,
可以设置用户的Samba密码和系统用户通过SHELL登录的密码不同。
我们通过smbpasswd 来添加Samba用户,并设置密码
[root@localhost zy]#smbpasswd -a zhaoyong
New SMB password: 123456 在这里添加Samba用户zhaoyong的密码;
Retype new SMB password: 123456 再输入一次;
七.我们可以用finger来查看用户信息
[root@localhost zy]#finger zhaoyong
如果发现目录不是/home/zhaoyong
我们就要修改目录usermod -d /home/zhaoyong zhaoyong
然后从启samba服务器
[root@localhost zy]#/etc/init.d restart
八.windows机器的设置。
1.创建windows下的用户和密码。
因为我们在[Global]中设置的是user共享方式 ,也就是说,要用windows用户名来验证。说明白一点就是windows的必须设置一个与linux机器上完全相同的用户,密码也必须一致。即建议一 个用户名为赵勇的用户,密码为123456,工作组为workgroup。
这种方式就是samba密码服务验证,我们在前面已经为zhaoyong在linux的服务器上创建了系统用户名和密码,也创建了smb的密码。
2.要在windows加上相关的协议;添加网络协议,把IPX/SPX以及NETBEUI两个协议加入。
九,就是访问了。
从linux访问smb服务器,[root@localhost zy]# smbclient -L //192.168.1.144 -U zhaoyong
Password: 123456 输入密码
从windows访问可以从网上邻居里workgroup工作组 访问 ,也可以直接在浏览器上访问\\192.168.1.144
附录smbclient 命令
cd [目录]切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录
lcd [目录]切换到客户端指定的目录;
dir 或ls 列出当前目录下的文件;
exit 或quit 退出smbclient
get file1 file2 从服务器上下载file1,并以文件名file2存在本地机上;如果不想改名,可以把file2省略
mget file1 file2 file3 filen 从服务器上下载多个文件;
md或mkdir 目录 在服务器上创建目录
rd或rmdir 目录删除服务器上的目录
put file1 [file2]向服务器上传一个文件file1,传到服务器上改名为file2;
mput file1 file2 filen 向服务器上传多个文件
在Linux中smbfs文件系统的挂载;
mount 的用法,加载网络中的共享文件夹到本地机;mount就是用于挂载文件系统的,SMB做为网络文件系统的一种,也能用mount挂载;smbmount说到底也是用mount的一个变种;
smbmount -o username=zhaoyong,password=123456 , -l //192.168.1.10/共享文件夹名 挂载点
smbmount //ip地址或计算机名/共享文件夹名 挂载点
本文来源:不详 作者:佚名