【转】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

ubuntu12.04samba服务器配置


系统平台: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

时间: 2024-12-12 05:35:17

【转】Ubuntu下配置samba服务器的相关文章

Ubuntu下配置samba服务器实现文件共享

安装Samba 安装samba sudo apt-get install samba Kubuntu 安装系统设置的共享模块 sudo apt-get install kdenetwork-filesharing 配置 1.windows 访问 ubuntu 第一步创建共享目录:比如要创建/home/用户名/share首先创建这个文件夹(这个用户名就是你的用户名,为了方便易懂我才这样写的,到时记得自己改啊) 代码: mkdir /home/用户名/share (新建share文件夹) chmod

Ubuntu下配置samba服务器

一.samba的安装: sudo apt-get insall samba // (sudo get temp root auth) sudo apt-get install smbfs二. 创建共享目录: mkdir /home/john/share sudochmod 777 /home/john/share 说明:john为你的ubuntu的用户名 share你可以随便起个名字做为共享文件夹三.创建Samba配置文件:1. 保存现有的配置文件sudo cp /etc/samba/smb.c

Ubuntu下配置SVN服务器

1. 安装subversion: sudo apt-get install subversion 2. 创建版本库: cd /home/svn/ svnserve -d -r /home/svn svnadmin create repos 注意:若要启动两个svn服务器,则要指明端口,默认的服务器端口是3690. svnserve -d -r /home/svn 等价于: svnserve -d --listen-port=3690 -r /home/svn 如果要启动第二个服务器,如/home

linux下配置samba服务器

linux下配置samba服务器 1. 什么是samba Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到. 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务. 2.安装配置samba 安装命令:yum install -y samba samba-client 配置文件:/etc/samba/smb.conf [global] workgroup = 

Ubuntu下配置samba实现文件夹共享

转自:http://www.cnblogs.com/phinecos/archive/2009/06/06/1497717.html 一. samba的安装: sudo apt-get insall sambasudo apt-get install smbfs 二. 创建共享目录: mkdir /home/phinecos/sharesodu chmod 777 /home/phinecos/share 三. 创建Samba配置文件: 1. 保存现有的配置文件 sudo cp /etc/sam

Ubuntu下配置smb服务器

一. samba的安装: sudo apt-get insall samba 二. 创建共享目录: mkdir /home/user/share sodu chmod 777 /home/user/share 三. 创建Samba配置文件: 1. 保存现有的配置文件 sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak 2. 修改现配置文件 sudo gedit /etc/samba/smb.conf 在smb.conf最后添加 [share]

在centos下配置samba服务器

centos 安装samba 1. 安装sambayum -y install samba samba-client 2. 查看安装情况# rpm -qa | grep samba samba-client-3.0.33-3.40.el5_10samba-3.0.33-3.40.el5_10samba-common-3.0.33-3.40.el5_10 3. 启动samba[[email protected] ~]# service smb startStarting SMB services:

Debian下配置Samba服务器

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.Linux下的Samba服务主要用于Windows平台和linux平台下载局域网内实现文件共享. 一.Samba安装 以下操作均是在root权限进行的 apt-get install Samba安装 二.创建共享目录以及修改权限 1.mkdir /home/coin/share //这里的/home/coin/share我自己测试用的你们可以根据自己的需求建立相应目录 2.chmod 777 /hom

linux下配置samba服务器(以CentOS6.7为例)

一.简介(百度百科) Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能