Samba是Ubuntu和Windows进行网络共享的工具,比如分享打印机,互相之间传输资料文件等,在Ubuntu下面安装和配置Samba服务器以便于Windows可以自定义的根据权限访问,步骤如下,以备查:
一. 首先samba的安装:
二. 创建共享目录:
mkdir /home/amiku/公共文件
sudo chmod 777 /home/amiku/公共文件
如果是更深一层的目录,需要在上一级目录上也要chmod
三. 创建Samba配置文件:
1. 备份现有的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
2. 修改现配置文件
sudo gedit /etc/samba/smb.conf
samba有五种安全级别,它们分别是:
share:不需要samba账户就可登陆samba服务器
user:需要添加samba账户才可以登陆samba服务器
server:由另外一台samba服务器来对用户进行身份验证。
domain:把samba服务器加入到NT域,由NT的域控制器来进行身份验证。
ADS:Active Directory Service,活动目录服务,它是samba3.0中新增的身份验证方式。采用ADS验证方式,samba服务器集成到活动目录中。
以上是它的五个运行级别;share,user这二个级别适合用小型部门,如网吧、企业内部局域网等,也是samba常用的级别。
如果将Samba的安全级别设置了user级别,那么用户登录Samba主机必须输入密码,此用户必须是Linux中的/etc/passwd文件存在的用户。在smb.conf文件中,默认行是:
;security=user
用下面这几行取代
security = user
username map = /etc/samba/smbusers
假设允许访问的用户为:share,共享的目录在 /home/amiku/公共文件
在smb.conf最后添加如下类似配置段:
[公共文件] 这里的share名字是共享的文件夹的名字
comment = Shared Folder with username and password
path = /home/amiku/公共文件 #共享的路径
available = yes #制定的共享资源是否可用
browsealbe = yes #制定的共享资源是否可以浏览
public = yes #如果是no表示除了valid users对应的用户外,其它用户在进入samba服务器后看不见这个目录,如果为yes,虽然能看见这个目录,但除了valid users对应的用户能进入这个目录,其它人进不了。
#guest ok = yes/no #意思和上面的public意义相同
writeable = yes #该共享路径是否可写
valid users = share # 只有该share用户才可以访问,多个用户之间用逗号隔开
invalid users = xxxx,………… #禁止访问该共享的用户
create mask = 0700
directory mask = 0700
force user = nobody
force group = nogroup
然后把这里改一下,找到[global]把 workgroup = MSHOME 改成如下 :(注意,这里的WORKGROUP是共享中的工作组名称)
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。
现在要添加share这个网络访问帐户。如果系统中当前没有这个帐户,那么
sudo useradd share
要注意,上面只是增加了share这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样,所以需要新增网络使用者的帐号:
sudo smbpasswd -a share
sudo gedit /etc/samba/smbusers
在新建立的文件内加入下面这一行并保存
如果将来需要更改share的网络访问密码,也用这个命令更改
sudo smbpasswd -a share
删除网络使用者的帐号的命令把上面的 -a 改成 -x
sudo smbpasswd -x share
sudo testparm
sudo /etc/init.d/samba restart或者
sudo service smbd restart
最后退出重新登录或者重新启动一下机器。
备注:如果在Ubuntu的系统下右击一个文件夹,点共享,然后创建共享文件,结果在WinXP下的局域网可以看到那个共享的文件夹,但是就是点不开! 为什么?原因就在于权限问题,需要给这个文件夹可读可写可运行的权限
四. 测试Samba共享 smbclient :
smbclient -L //localhost/share
在Linux中访问Windows的共享目录
在Linux中,可以直接将Windows中的共享目录挂在到本机中,然后就像操作自己主机上的文件一样进行操作。我们可以使用smbclient命令查看指定主机的共享目录信息。
# smbclient -L //[目标主机IP地址]
当查看到Windows系统中的共享目录后,可以使用smbmount命令来进行挂载共享的目录,smbmount命令的格式为:
#smbmount ‘\\Windows主机IP\共享的目录名’ 挂载点 -O username
参考: http://wiki.ubuntu.org.cn/Samba,备查。