Samba简介
在90年代初,UNIX机器之间的网络文件系统可以基于NFS协议,Window机器之间的网络文件系统可以基于CIFS协议(目前的Windows已经内置了NFS支持)。Windows和UNIX机器之间无法共享网络文件系统,Samba因此出现。
Samba 是 SMB/CIFS 网络协议的实现, 它作为NFS的补充使得在 Linux 和 Windows 系统中进行文件共享、打印机共享更容易实现。Samba对Linux、DOS、Windows、Mac OS等系统提供客户端支持。
本文中的Samba主要指Samba4服务器软件,它提供AD(活动目录,Active Directory)、文件共享以及打印服务。它支持基于SMB/CIFS、DCE/RPC、LDAP等协议与客户端通信。
服务器端安装
安装必要的软件
Shell
1
2
#安装Samba4
sudo apt-get install samba samba-common python-glade2 system-config-samba
提供一个匿名共享目录给Windows客户端访问
Shell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#备份原配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
#创建共享目录
sudo mkdir -p /var/samba/anonymous
sudo vi /etc/samba/smb.conf
#设置为以下内容
[global]
#工作组名称,和Windows客户端的工作组保持一致
workgroup = GMEM
netbios name = amethystine
security = user
#把所有不能识别的用户映射为guest
map to guest = bad user
dns proxy = no
#方括号内是共享目录的名字
[Anonymous]
path = /var/samba/anonymous
browsable =yes
writable = yes
guest ok = yes
read only = no
# 限定能访问此共享目录的IP地址
hosts allow = 10.0.0.0/255.0.0.0
#修改目录权限
cd /var/samba
sudo chmod -R 0755 anonymous/
sudo chown -R nobody:nogroup anonymous/
#重启服务
service samba restart
完成以上步骤后,在Windows资源管理器中输入\\amethystine(如果域名解析没有设置,可以使用\\Ubuntu服务器的IP地址),即可看见一个目录:Anonymous,可以写入文件。
设置一个需要身份验证的共享目录
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#创建共享目录
sudo mkdir -p /var/samba/secured
#创建共享目录专用组和用户
sudo addgroup smbgrp
sudo adduser smbuser -ingroup smbgrp
#根据提示输入必要的用户信息
#添加Samba用户,根据提示设置密码,例如smb
sudo smbpasswd -a smbuser
#在上节的smb.conf中增加下面一段内容:
[secured]
path = /var/samba/secured
valid users = @smbgrp
guest ok = no
writable = yes
browsable = yes
#修改目录权限
cd /var/samba
sudo chmod -R 0770 secured/
sudo chown -R smbuser:smbgrp secured/
#重启服务
service samba restart
完成上述设置后,即可使用smbuser来访问secured目录。
客户端访问
Windows客户端
在资源管理器中可以直接访问,例如 \\server\Anonymous ,如果需要身份验证,资源管理器会弹出对话框
Linux客户端
可以在文件管理器(例如nautilus)中输入 smb://server/ 访问
还可以使用命令行:
Shell
1
2
3
4
# 命令格式:
smbclient //server/sharename -U username
# 举例:
smbclient //zircon.local/Anonymous
访问Windows网络驱动器
使用Samba客户端可以直接在Linux中访问Windows网络驱动器(Network Driver),例如:smb://192.168.0.200/d$/ ,输入合法的远程机器用户名、密码即可。
挂载文件系统
现代Linux内核自带cifs模块(对于Ubuntu14.04之类的系统,你可以需要到synaptic中搜索cifs-utils、mount.nfs并安装),这是一个特殊的文件系统,用它可以挂载Samba共享目录:
Shell
1
2
3
4
5
6
7
8
9
10
# 命令格式:
mount -t cifs //server/sharename mountpoint
# 举例:
sudo mkdir -p /nas/zircon/Anonymous
sudo chmod 777 /nas/zircon/Anonymous
sudo mount -t cifs //zircon.local/Anonymous /nas/zircon/Anonymous
# 指定用户密码
sudo mount -t cifs //10.0.0.3/tdj_images /tmp/tudouji/images -o username=alex,password=lavender
# 挂载Windows共享目录为读写,由于Linux不理解Windows用户和权限,Windows也不理解UNIX用户,因此你需要指定uid、gid选项,才能保证可读写
sudo mount -t cifs //10.0.0.3/tdj_images /tmp/tudouji/images -o username=alex,password=lavender,rw,uid=alex,gid=alex
或者修改 /etc/fstab 以便在系统启动时自动挂载:
Shell
1
2
3
4
5
6
# 格式:
//server/sharename mountpoint cifs user=user,pass=password 0 0
# 如果没有在NAS上设置任何用户,则:
//server/sharename mountpoint cifs guest,_netdev,uid=curusername 0 0
# 举例
//zircon.local/Anonymous /nas/zircon/Anonymous cifs guest,_netdev,uid=pi 0 0
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com