Ubuntu下安装Samba4
在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等协议与客户端通信。
1 2 3 4 5 |
#安装Samba4 sudo apt-get install samba samba-common python-glade2 system-config-samba # 启动服务 sudo service smbd start |
主配置文件位置: /etc/samba/smb.conf。修改配置文件后要重启Samba服务器才能生效:
1 |
sudo service smbd restart |
位于[global]端的配置项,是全局性的。每个共享目录都可以覆盖某些全局配置项。
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 |
[global] # Windows NT工作组信息 workgroup = ZIRCON-GRP netbios name = Zircon # NT服务器描述信息 server string = %h server (Samba, Ubuntu) # 禁止通过DNS搜索NetBIOS名称 dns proxy = no # 日志文件路径:%m表示为每个客户端创建日志文件 log file = /var/log/samba/log.%m # 是否写入Syslog syslog = 0 # 服务器角色,即Samba的运行模式 server role = standalone server # 把所有不能识别的用户映射为guest map to guest = bad user # 新创建文件的模式 create mask = 0755 # 新创建目录的模式 directory mask = 0755 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[Anonymous] path = /home/alex/Downloads browsable =yes writable = yes # 允许匿名访问 guest ok = yes read only = no # 新文件和目录的模式,下面的选项可以全局配置 create mode = 0666 directory mode = 0666 # 强制新文件的所有者 force user = alex |
首先,创建专门用户:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#创建共享目录 sudo mkdir -p /var/samba/secured #创建共享目录专用组和用户 sudo addgroup smbgrp sudo adduser smbuser -ingroup smbgrp #根据提示输入必要的用户信息 #添加Samba用户,根据提示设置密码,例如smb sudo smbpasswd -a smbuser #修改目录权限 cd /var/samba sudo chmod -R 0770 secured/ sudo chown -R smbuser:smbgrp secured/ |
然后,配置Samba
1 2 3 4 5 6 7 |
[secured] path = /var/samba/secured # 允许访问此目录的用户,@指定组 valid users = @smbgrp guest ok = no writable = yes browsable = yes |
完成上述设置后,即可使用smbuser来访问secured目录。
在资源管理器中可以直接访问,例如 \\server\Anonymous ,如果需要身份验证,资源管理器会弹出对话框
可以在文件管理器(例如nautilus)中输入 smb://server/ 访问
还可以使用命令行:
1 2 3 4 |
# 命令格式: smbclient //server/sharename -U username # 举例: smbclient //zircon.local/Anonymous |
使用Samba客户端可以直接在Linux中访问Windows网络驱动器(Network Driver),例如: smb://192.168.0.200/d$/ ,输入合法的远程机器用户名、密码即可。
现代Linux内核自带cifs模块(对于Ubuntu14.04之类的系统,你可以需要到synaptic中搜索cifs-utils、mount.nfs并安装),这是一个特殊的文件系统,用它可以挂载Samba共享目录:
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 以便在系统启动时自动挂载:
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 |
Leave a Reply