Linux服务器映射到本地磁盘

一. samba的安装:linux

sudo apt-get install samba // (sudo get temp root auth)ios

sudo apt-get install smbfs //旧版本ubuntu

sudo apt-get install cifs-utils //新版本windows

上面的命令将会安装Samba和其余相关的工具。在旧版的Ubuntu中,你可能须要使用 smbfs替代 cifs-utils。安全

sudo apt-get install samba-common服务器

二. 建立共享目录:网络

一、系统用户home目录下:socket

mkdir /home/wwwroot/test //若是配置的共享目录不存在则建立工具

chown -R nobody. /home/wwwroot/test //设置共享目录归属为 nobody测试

sudo chmod 777 /home/wwwroot/test //将共享目录属性设置为 777

说明:test你能够随便起个名字作为共享文件夹

二、普通目录下:

如建立/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/wwwroot/test //共享路径

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

示例一:

[test]

comment = code //comment是对该共享的描述,能够是任意字符串。

path = /home/wwwroot/test

available = yes

browseable = yes

public = yes //容许匿名用户登陆

writable = yes

valid users = dev

create mask = 0700

directory mask =0700 force user =nobody

force group = nogroup

说明:valid users = myname 这个myname是本身起的,我这里是dev,后面在添加用户名时就是添加的这个;

另外这个 [test] 名字也是能够随便起的,这个是你在windows下访问时显示的名字;

在windows下 \162.168.0.168\test就能够访问linux下/home/wwwroot/test目录下的内容了;

其中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 = WORKGROUP

display charset = UTF-8

unix charset = UTF-8

dos charset = cp936

后面的三行是为了防止出现中文目录乱码的状况。

  1. 保存现有的配置文件

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

四. 建立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

在//下添加一行字段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,查看地址: #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

相关文章
相关标签/搜索