【转】Ubuntu下配置samba服务器--不错
原文网址:http://my.oschina.net/junn/blog/171388
设置虚拟机的网络方式为桥接方式:

一. samba的安装:
sudo apt-get insall samba // (sudo get temp root auth)
sudo apt-get install smbfs //旧版本
sudo apt-get install cifs-utils //新版本
上面的命令将会安装Samba和其他相关的工具。在旧版的Ubuntu中,你可能需要使用 smbfs替代 cifs-utils。
sudo apt-get install samba-common
二. 创建共享目录:
1、系统用户home目录下:
mkdir /home/john/share //如果配置的共享目录不存在则创建
chown -R nobody. /home/john/share //设置共享目录归属为 nobody
sudo chmod 777 /home/john/share //将共享目录属性设置为 777
说明:john为你的ubuntu的用户名;share你可以随便起个名字做为共享文件夹
2、普通目录下:
如创建/mydir/private 和 /mydir/public 目录 ( 注意权限问题,不然导致不能访问)
mkdir -p /mydir/{private,public}
chown -R nobody.nogroup /mydir
chmod -R 777 /mydir
三. 创建Samba配置文件:
1. smb.conf部分配置说明
[global]
server string = Samba Server Version %v
passdb backend = tdbsam
cups options = raw
security = user //认证模式为User
map to guest = bad user //这个很关键,实现匿名无须交互输入用户名和密码就靠它了
guest account = guest //匿名用户映射为guest用户
[myshare]
comment = My share
path = /home/public //共享路径
browseable = Yes //可以被浏览,就是在网络邻居中能看到共享名
read only = No //可读写
guest ok = Yes //允许匿名访问,这个也需要设置,否则匿名无法访问
valid users = samba liuag guest //有效的用户和组
invalid users = liuben //无效用户和组
read list = samba //只读用户和组(如果read only = No,只读用户需要在此设置)
write list = liuag //可读写用户和组(如果read only = Yes,可读写用户需要在此设置)
allow hosts = 192.168.100.236 //允许访问主机列表,支持通配符
deny hosts = 192.168.100.0/24 //禁止访问主机列表,支持通配符
示例:
[global]
workgroup = WORKGROUP
server string = samba server on ubuntu
netbios name = ubuntu_smb
interfaces = 127.0.0.0/8 eth0
hosts allow = 192.168.1. 192.168.163. 192.168.153.
security = user
username map = /etc/samba/smbusers
encrypt passwords = true
passdb backend = smbpasswd
smb passwd file =/etc/samba/smbpasswd
log file = /var/log/samba/log.%m
max open files = 1000
socket options = TCP_NODELAY
;[homes]
; comment = home directories
; browseable = no
; writable = yes
; valid users = %S
; create mode = 0664
;[printers]
; printable = Yes
; browseable = No
; path = /var/spool/samba
[code]
comment = code //comment是对该共享的描述,可以是任意字符串。
path = /home/songyd/code
writable = yes
browseable = yes
available = yes
2. 保存现有的配置文件
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
3.修改现配置文件
sudo gedit /etc/samba/smb.conf
在smb.conf最后添加
示例一:
[share]
path = /home/john/share
available = yes
browseable = yes
public = yes
writable = yes
valid users = myname
create mask = 0700
directory mask =0700
force user =nobody
force group = nogroup
说明:valid users = myname 这个myname是自己起的,后面在添加用户名时就是添加的这个;
另外这个 [share] 名字也是可以随便起的,这个是你在windows下访问时显示的名字;
在windows下 \\162.168.160.11\share就可以访问linux下/home/god/ code目录下的内容了;
其中162.168.160.11是你linux的IP地址,用ifconfig就可以查看到。
示例二:
[www]
path = /home/test/www
available = yes
browseable = yes
public = yes //允许匿名用户登录
writable = yes
说明:public 指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。
然后顺便把这里改一下,找到[global]把 workgroup = MSHOME改成 :(注意,这里的WORKGROUP是共享中的工作组名称) 代码:(如果没有也可加上去)
workgroup = WORKGROUP
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
后面的三行是为了防止出现中文目录乱码的情况。
四. 创建samba帐户 :
现在要添加 myname这个网络访问帐户。如果系统中当前没有这个帐户(也可以用系统中己存在的账户如root,god),那么代码:
sudo useradd myname
上面只是增加了 myname这个系统用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录。而且samba的登录密码可以和本机登录密码不一样。这个你可以在重启机器时看到这个你添加的用户,但是你却用它登陆不了系统,因为没有赋予本机登录密码。
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a myname
(如果你直接用系统中的账号,这里myname就是你系统中的账户即可)然后会要求你输入samba帐户的密码,这个密码不是开机登录时候用的,是你要访问WIN共享文件或者WIN共享文件访问你的时候要填的密码。
删除网络使用者的帐号的命令把上面的 -a 改成 -x 即: sudo smbpasswd -x myname
smbpasswd 命令的用法
smbpasswd -a 增加用户(要增加的用户必须以是系统用户)
smbpasswd -d 冻结用户,就是这个用户不能在登录了
smbpasswd -e 恢复用户,解冻用户,让冻结的用户可以在使用
smbpasswd -n 把用户的密码设置成空.
要在global中写入 null passwords -true
smbpasswd -x 删除用户
五. 用户账号映射 :
samba的用户帐号信息是保存在smbpasswd文件中滴,而且可以访问samba服务器的帐号也必须对应一个同名的系统帐号。基于这 一点,所以,对于一些hacker来说,只要知道samba服务器滴samba帐号,就等于是知道了Linux系统帐号,只要crack其samba帐号密码加以利用就可以攻击samba服务器。所以我们要使用用户帐号映射这个功能来解决这个问题。
用户帐号映射这个功能需要建立一个帐号映射关系表,里面记录了samba帐号和虚拟帐号的对应关系,客户端访问samba服务器时就使用虚拟来登录。
1)编辑主配置文件vi /etc/samba/smb.conf
在global下添加一行字段username map = /etc/samba/smbusers开启用户帐号映射功能。
2)编辑 vi /etc/samba/smbusers
smbusers文件保存帐号映射关系,其有固定滴格式:
samba帐号 = 虚拟帐号(映射帐号)
myname = networkusername
帐号myname就是我们上面建立的samba帐号(同时也是Linux系统帐号),networkusername就是映射的帐号名(虚拟帐号),帐号 myname在我们访问共享目录时只要输入networkusername就可以成功访问了,但是实际上访问samba服务器的还是我们的myname帐号,这样一来就解决了安全问题。
3)重启samba服务:service smbd restart
4)验证效果
输入我们定义的映射帐号networkusername,注意我们没有输入帐号myname,映射帐号networkusername的密码和myname帐号一样,现在就可以通过映射帐号浏览共享目录了。
六. 重启samba服务器 :
sudo testparm 验证一下配置参数有没有问题,如果有问题在回去修改
sudo /etc/init.d/samba restart (不知为什么,我的这个目录下就是没有这个,用这个命令总是报错)
service samba restart
service smbd restart
七. 测试:
smbclient -L //localhost/share 或者
smbclient -L \\127.0.0.1 -U myname //这时输入的密码就是你刚才设置的samba密码
八. 使用 :
可以到windows下输入ip使用了,在文件夹处输入 "\\" + "Ubuntu机器的ip或主机名" + "\\" + "share";
我的即为:\\162.168.160.11\share(share就是刚才smb.conf中的[share])第一次进入时要输入用户名和密码,这个就是你在第四步中设置的用户名和密码。
九. samba的卸载:
dpkg -l |grep samba
dpkg -l |grep smbfs
dpkg -l |grep smb
apt-get remove samba\smbfs\smb
系统平台:VMware Workstation9.0 + ubuntu12.04
首先要解决windows和linux网络连接问题:
在VMware Workstation9.0 “设置” 选项中,设置"网络"
网络连接1 选中“启用网络连接” 方式:NAT
网络连接2 选中“启用网络连接” 方式:Bridged Adapter
启动ubuntu,查看IP地址: #ifconfig eth0
注:你的LINUX里面可能有两块网卡eth0和eth1,分别看一下他们的IP地址,有一个是和你的WINDOWS本地连接IP地址在一个网段的(以后就使用这个IP地址登录samba,也是挂载NFS服务器的IP)
再说一下关于IP地址的配置(以我自己的电脑举例):
我是用ADSL拔号上网,windows本地连接的IP地址是自动获取的,IP为:192.168.1.45
查一下linux下eth0的IP为:10.0.2.15;eth1的IP为192.168.1.42
那eth1即为linux的本地连接的IP地址,也就是samba服务器的IP地址
关闭LINUX防火墙命令: #ufw disable
注:ufw是linux下的防火墙操作命令,相关的操作可以查看命令帮助
然后就在windows下ping一下linux的IP,如果能ping通,就可以继续下面的内容,如果ping不通就再找找原因
注:ubuntu 12.04已经安装了最新版本的samba服务器,无需安装。如果使用12.04以前的版本,最好是按下边的方法升级一下samba,12.04版本无需下列操作
卸载samba,smbclient,samba-common
$sudo apt-get remove samba-common
$sudo apt-get remove smbclient
$sudo apt-get remove samba
安装Ubuntu samba服务器:
sudo apt-get install samba
sudo apt-get install smbfs
开始配置:
samba配置文件: /etc/samba/smb.conf
可以修改配置文件来设置samba共享和用户
如果不习惯使用配置文件,也可以使用图形界面
安装Ubuntu samba图形管理界面
#sudo apt-get install system-config-samba
启动samba图形管理界面
#sudo system-config-samba
也可以选择菜单: system->Administration->Samba
配置方法和RedHat9中一样
选择要共享的目录 设置读写权限 设置访问权限 添加samba用户


配置完成后要重启samba
#sudo /etc/init.d/smbd restart
【转】Ubuntu下配置samba服务器--不错的更多相关文章
- Ubuntu下配置Samba服务器
每次配置Samba 都需要上网去查资料,而且有一些不一定适合.所以自己就简单记录一下 1.Samba的安装 sudo apt-get insall samba // (sudo get temp ro ...
- Ubuntu下配置samba服务器实现文件共享
安装Samba 安装samba sudo apt-get install samba Kubuntu 安装系统设置的共享模块 sudo apt-get install kdenetwork-files ...
- ubuntu 下配置Web服务器
ubuntu 下配置Web服务器 1.切换管理员身份 终端/文本界面输入命令: su 根据提示输入密码 注: 如果不能使用su 点击查看如何启用su2.安装MySQL5 apt-get install ...
- Linux下配置Samba服务器全过程
Linux下配置Samba服务器全过程 user级别的samba的配置 http://www.linuxidc.com/Linux/2014-11/109234.htm http://www.linu ...
- Ubuntu下安装Samba服务器
闲来无聊尝试自己安装下Samba服务器,使本机和虚拟机可以无障碍传输文件(虽然用VMwaretools可传,但总感觉麻烦,而且速度欠佳) 首先,同安装qemu一样,在安装之前要确定你的系统apt列表已 ...
- Ubuntu下配置samba实现文件夹共享
转自:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall ...
- Ubuntu下配置smb服务器
一. samba的安装: sudo apt-get insall samba 二. 创建共享目录: mkdir /home/user/share sodu chmod 777 /home/user/s ...
- 【教程】ubuntu下安装samba服务器
一.准备工作 首先更新 software sources, 找到最快的源 lcw@ubuntu:~$ sudo apt-get update 二.安装samba lcw@ubuntu:~$ sudo ...
- Fedora 20下配置samba服务器
1 安装samba [root@localhost ~]# yum –y install samba ← 通过网络安装samba yum -y install samba-client // ...
随机推荐
- python常用函数 库 转
可能经常用到的标准模块和第三方常用的50个库 本文由python培训班授课老师整理 数学计算: numbers - Numeric abstract base classes math ...
- (二)Android 基本控件
第一节:View 视图组件 Andorid 中的View 视图组件,实现类是android.view.View 类,是绝大多数图形显示类的父类,提供了大量的方法和属性.在View 类下,有很多子类,如 ...
- 直播类送礼动画<豪华礼物+小礼物>
直播类送礼动画<豪华礼物+小礼物>:代码会持续更新,现直播的app里内有太多的动画,由于时间关系不能一次共享所有动画聘为,这次先共享几个比较火爆的动画. 支持真机和模拟器上运行,最低支持i ...
- 7-2 DBA顾问第一次上次操作考试
SQLPLUS执行: 1--@?/rdbms/admin/awrrpt 生产snapshot, 一个时间点, 再执行下一个时间点. 2-- 附件作业第一次执行步骤: 1) SQLP ...
- 【转帖】客户端通过 HTTP 请求和响应 的 Header 信息总结
请求Header原帖地址:http://technique-digest.iteye.com/blog/1174581 响应Header原帖地址:http://blog.pfan.cn/hurongl ...
- dapper的一个小扩展以支持dataset
废话不多,直接上方法 public static DataSet ExecuteDataSet(this IDbConnection cnn, IDbDataAdapter adapter, stri ...
- bzoj1485:[HNOI2009]有趣的数列
思路:首先限制数很多,逐步来考虑,限制一很容易满足,考虑限制二,也就是让奇数位和偶数位上的数递增,限制三就是让奇数位上的数小于奇数位加一对应的偶数位上的数,那么我们可以把形成序列的过程看成加数的过程, ...
- Fedora 21 安装QQ国际版
首先安装依赖包 sudo yum install freetype.i686 libpng.i686 libgcc.i686 libXau.i686 点击下载wine-2012qq国际版 unzip ...
- jQuery移除指定元素后的所有元素
jQuery 遍历的nextAll() 方法可以搜索 DOM 树中的元素跟随的同胞元素,也就是一个元素后面的所有同级元素,删除可以使用方法remove(),所以连起来为 $(selector).nex ...
- (转载)EhLib 在 Delphi 7 下的安装方法
EhLib 在 Delphi 7 下的安装方法 1.将 EhLib 解压到一个目录,如:E:\VCL\EhLib: 2.将 EhLib 安装目录下 Common 目录.DataService 目录下的 ...