samba是一种可以在Linux/Unix主机上模拟windows主机的NetBIOS和CIFS/SMB实现与windows主机之间文件共享的软件。只要linux主机安装了samba,windows端借助samba可以将linux主机共享的目录文件映射为本地磁盘,linux端也可以将windows主机共享的文件挂载为本地文件系统。
一、linux主机共享文件让windows端访问
1、安装samba
RedHat5.8系统默认安装有samba3.0,这里使用samba3.5,先卸载samba3.0:
#rpm -e samba-client samba-common
安装samba3.5:
# yum -y install samba3x samba3x-client samba3x-common
2、添加samba用户:
创建用户:
#groupadd samba
#useradd -g samba smbuser1
3、创建共享目录并更改权限
mkdir /shared/test
设置文件系统访问权限
#chmod 755 /shared/test
更改文件属组
#chown :samba /shared/test
如果不更改属组可以使用acl授权指定用户:
#setfacl -m d:u:smbuser1:rw- /shared/test
添加用户至samba
#smbpasswd -a smbuser1
根据提示输入该用户对共享的访问密码
4、编辑samba配置文件/etc/samba/smb.conf,添加设置共享
[tools] #定义共享别名
comment = Public Stuff #共享注释
path = /shared/test #共享路径
write list = smbuser1,@samba #允许写操作的用户和组
guest ok = Yes #允许来宾匿名查看
printable = Yes #不隐藏
5、启动samba服务:
service smb start
6、windows端在文件管理器窗口的地址栏输入“\\172.16.15.222\tools\”,输入linux端定义的用户名和密码就可以访问linux的共享资源了。【172.16.15.222为linux主机IP,tools为linux定义的共享资源别名】
然后设置映射本地驱动器就可以了。
二、windown主机共享文件让linux端访问
windows端必须启动server服务,启用guest用户,然后共享文件并设置权限
linux端可以执行如下操作:
1、输入“smbclient”命令加“-L”参数,后跟windowns共享授权的用户名(区分大小写),然后回车,根据提示输入授权用户的密码可以查看windows的共享资源
2、输入“smbclient //172.16.15.3/share/ -U admin”然后输入密码可以链接到windows的共享资源
【172.16.15.3为windows主机的IP,share为windows共享的文件夹名,admin为windows授权访问共享的用户,如果不指定用户则以linux主机的root用户身份访问】
3、链接后输入“smbclient //172.16.15.3/share/ -U admin”然后输入密码即可以链接到windows的共享资源了
【172.16.15.3为windows主机的IP,share为windows共享的文件夹名,admin为windows授权访问共享的用户,如果不指定用户则以linux主机的root用户身份访问】
4、linux挂载windows的共享目录到本地(需要以root身份挂载):
#mount -t cifs //172.16.15.3/share/ /mnt -o username=admin
然后输入密码就可以挂载到本地的/mnt目录了。
挂载后可以像本地文件一样进行操作
5、设置自动挂载
编辑/etc/fstab文件设置自动挂载:
设备为://172.16.15.3/share/
挂载目录为: /mnt
文件系统为: cifs
挂载选项为: username=USERNAME,password=PASSWORD
挂载选项中用户名和密码为明文存储,为防止密码泄露可以将用户名和密码保存为单独文件/etc/samba/cred.passwd,设定该文件的权限为600,属主为root。内容为:
username=USERNAME
password=PASSWORD
然后在挂载选项里指定保存用户名和密码的文件:credentials=/etc/samba/cred.passwd
三、samba的web控制:
安装samba3x-swat
#yum -y install samba3x-swat
yum安装samba3x-swat时会自动安装xinetd,xinetd是一个超级守护进程服务,支持许多服务进程
启动xinetd服务:
#service xinetd start
执行“chkconfig --list”命令可以查看xinetd支持守护的服务进程,其中就有swat,正常情况下访问samba的web控制页面的次数有限,不需要swat服务一直运行,xinetd可以代为监听swat的服务端口,并在有访问请求的时候启动swat服务,并在访问结束后停止swat服务以节省系统资源。
启用swat服务监听:
#chkconfig swat on
重启xinetd服务使其监听swat服务端口:
#service xinetd start
编辑/etc/xinetd.d/swat设置访问控制,只允许从指定主机或网段访问swat服务:
only_from = 127.0.0.1 172.16.0.0/16
设置完成后使用浏览器访问:http://172.16.15.222:901
初次登陆要以root用户身份
然后修改配置及用户名密码
保存配置时会替换已存在的配置文件,建议提前备份。