CentOS7 Samba简单配置

1. 安装

yum -y install samba

# 备份配置文件
cp  /etc/samba/smb.conf  /etc/samba/smb.conf.bak

# 创建samba用户
# 首先 添加系统用户
useradd officecoop
rm -rf /home/officecoop/.*
# 然后添加smb用户,按提示输入密码
smbpasswd -a officecoop

其他注意 iptables(或防火墙配置) 和 selinux 配置

2. 设置共享目录

2.1 目标

windows 访问 10.0.209.140 (假设samba服务器假设在140) 时显示 officecoop 目录

2.2 步骤

# 追加如下内容到配置文件
cat >> /etc/samba/smb.conf << EOF
[officecoop]
comment = officecoop
path = /home/officecoop/officecoop
writable = yes
EOF

# 创建文件夹
mkdir /home/officecoop/officecoop

# 设置属主
chmod officecoop /home/officecoop/officecoop

# 重启服务
systemctl restart smb

使用Samba替代NFS

之前项目组之中一位离职的同事给我们搭建的数据平台, 用的是Suse。 后来因为计算平台需要迁移到Spark之上, 我们就需要让Spark能方便的读取到SUSE之中的数据文件。

方案1:SUSE NFS Server

因为之前项目组最常用的文件分享协议就是NFS了。 我们的FreeNas服务器上面, 存储了几十T的数据文件。

因此我们首先尝试的是NFS的方法。 Google之后:

尝试了以下命令:

yast2 -i nfs-kernel-server 
# or zypper install -y nfs-kernel-server

但是不管上面哪个命令, 都会报错:

Warning: Legacy commandline option -y/--no-confirm detected. Please use -n/--non-interactive instead.
File '/repodata/repomd.xml' not found on medium 'http://download.opensuse.org/update/13.2/'

Abort, retry, ignore? [a/r/i/? shows all options] (a): a
ABORT request: Aborting requested by user

非常奇怪的问题, 后来又经过Google, 发现原因:

Yes, @tboerger is right. 13.2 reached EOL, this is why the repositories are no longer around. This doesn’t depend on this project.

From: https://github.com/openSUSE/docker-containers-build/issues/23

敢情是这位哥们用的SUSE版本太老了?!

方案2: Samba出马

正在一筹莫展甚至想把数据文件全部迁移到另外一个Ubuntu机器之时, 忽然发现这一台SUSE已经安装了Samba Server 服务, 只是没有启用而已。

现在回想起来, 这个SUSE的Samba Server的安装,也真是奇葩, 官网文档写的也很不详细。

现在总结一下:

  • 执行命令: yast2
    如图选中“Samba Server”

未分类

  • Workgroup 默认, 选择Next

未分类

  • Domain Controller 依然默认, Next

这一个功能我猜是某些域名才能访问。 具体没有试过~

未分类

  • 这一步要注意, 选择启动的时候自动启动

未分类

  • 注意, 需要手动设定账号信息, 否则在其他地方能看到目录, 就是进不去

假设原来已经有一个用户账号 hadoop, 执行下面的命令, 给这个账号设置一下密码:

suse2:~ # smbpasswd -a hadoop
New SMB password:
Retype new SMB password:
Added user hadoop.

这里设置的密码,可以跟原来的SSH密码一样。

设置完成之后, 我们可以在Windows上面直接使用UNC的方式访问了:

UNC的方式: \10.206.132.119

未分类

Ubuntu Client Mount Samba server

因为我们的需求是让Spark能方便的读取SMB服务器上面的数据, 最方便的方法还是直接mount。

当然可以使用smbclient, 不过在Spark之中读取数据的时候, 就不那么友好了。

mount命令也很简单,参考下面的格式:

sudo mount //10.206.132.119/users/hadoop/airsupport_da /data/airsupport/airsupport_da -o user=hadoop,password=xxxx

事后小结

  1. SUSE的文档相比Ubuntu感觉真心很少,而且也不是很友好。
    很多网友的文章, 感觉也是很久以前的东西。 特别是看到有人说某某东西EOS之后, 内心是有一些崩溃的。

  2. 后来简单调查了一下, Samba的稳定性确实要比NFS要好一些。
    我们的NFS Server 经常命令行卡死。
    解决方案: 不好意思, 暂时无解~ 重启服务器吧。

samba安装及配置说明

amba是为了跨平台(windows及Linux)的文件共享而产生的网络文件系统,有了Samba,window用户可以像访问本地磁盘一样访问局域网(or 远端)Linux系统的磁盘,当然Linux用户也可以直接去访问windows系统的磁盘。

关于samba的详细介绍可以参考鸟哥的Linux 及 Samba Wiki

1、Centos samba安装与启动

我们以Linux系统安装Samba Server 为例,Samba目前的版本为4.6版本,centos用户可以直接yum install samba, 启动也十分简单,service smb start (centos6) or systemctl start smb (centos7)

2、samba 配置

yum安装完samba之后,在/etc/samba/下面有samba的配置文件,一般会有一个smb.conf.example 配置实例,里面有各个配置项的详细解释

[global]
#workgroup 配置成和windows机器的工作组相同的名字
workgroup = WORKGROUP
server string = Samba Server
#netbios name 是用来设置局域网别名(不同于hostname),如果不用nmb服务的话,这个没有用处
netbios name = tjwq024113
#这2个选项用来设置字符集,防止出现乱码(window与Linux编码通常不一样)
dos charset = cp950
unix charset = UTF8
##
ntlm auth = no
lanman auth = no
client ntlmv2 auth = yes
##日志的配置
log file = /var/log/samba/log.%m
max log size = 50
##安全模式,4.6之后没有share模式(不需要鉴权)了,因此需要设置一个密码
security = user
passdb backend = tdbsam
##局域网内的browser配置,没有多少用处
domain master = yes
local master = yes
os level = 33
preferred master = yes

####下面是共享文件夹的配置
#pan设置了共享的名称,访问的时候用\servershare来访问,而不是\serverdatasamba
[share]
#备注
comment = samba share 
#共享文件夹路径
path = /data/samba
browseable = yes
#设置客户端的写权限
writable = yes
#用于客户端新建文件(夹)的权限设置
create mask = 0664
directory mask = 0775
#需要注意这里的user必须设置成用户登录共享文件夹的用户,不要用%U,%U是客户端的用户
valid users = work
#设置是否公开,因为security设置了user 模式,所以这个配置无效了就
public = yes

然后需要创建samba用户,因为我们使用TDB数据库,所以用pdbedit来新建一个用户

$pdbedit -a -u samba  #-a add user option, -u specify a username

配置文件修改完后,需要用testparm来测试配置文件语法

然后用smbclient测试文件加可否正常访问

$testparm
$smbclient -L //server -Uwork

3、windows挂载samba共享磁盘

windows 用户想要访问Linux共享的磁盘,需要 win+R 弹出运行窗口,然后输入\server\share敲回车键,根据提示输入密码,则在网络那里就可以看到共享的磁盘了。

当然右键点击并选择映射网络驱动器的话,还可以将其挂载,这样就可以像本地磁盘一样使用了。

samba安装配置使用

samba,连接Unix阵营和Windows系统的桥梁。在类Unix系统中安装samba服务端,让windows系统像访问共享文件夹一样访问类Unix系统中的指定文件夹。

samba,桑巴舞蹈也是它呢!给一个软件起了这样性感的名字,想想是不是醉了。

有了这个小家伙,解决了我们局域网多个系统互相访问文件的大麻烦。下面是全过程。

1. 安装samba,apt-get 推荐我安装samba4.

[html] view plain copy

  • sudo apt-get install samba4

安装时遇到错误:

[plain] view plain copy

  • /var/lib/dpkg/info/samba4.postinst: 14: /var/lib/dpkg/info/samba4.postinst: /usr/share/samba/setoption.pl: Permission denied
  • dpkg: error processing samba4 (–configure):
  • subprocess installed post-installation script returned error exit status 126
  • Errors were encountered while processing:
  • samba4
  • E: Sub-process /usr/bin/dpkg returned an error code (1)

应该是我的dpkg有问题,源于上一次的apt-get upgrade中途被我人工阻断。

解决的办法是删掉/var/lib/dpkg/info这个文件夹并重新创建它。

[html] view plain copy

  • cd /var/lib/dpkg
  • sudo mv info info.bak
  • sudo mkdir info

重新install就可以了。

2. 在/home下创建文件夹用以共享

[html] view plain copy

  • home$ sudo mkdir share
  • home$ sudo chmod 777 share

创建一个文件在share文件夹中,一会用它作为访问成功与否的标志。

3. 修改smb的配置文件

之前可以先做个备份

[html] view plain copy

  • home$ sudo cp /etc/samba/smb.conf /etc/samba/smb-bk.conf
  • home$ sudo vim /etc/samba/smb.conf

找到security = user这一句,如果被注释了,就放开注释。

在其后增加一句:username map = /etc/samba/smbusers

在文件的最后增加下面语句:

[html] view plain copy

  • [Share]
  • comment = Shared Folder
  • path = /home/share
  • public = yes
  • writeable = yes
  • valid users = friend
  • create mask = 0700
  • directory mask = 0700
  • force user = nobody
  • force group = nogroup
  • available = yes
  • browseable = yes

上面设置了文件的路径和可用的用户为friend。

再搜索[global]

在workgroup = workgroup下面增加如下:

[html] view plain copy

  • display charset = UTF-8
  • unix charset = UTF-8
  • dos charset = cp936

保存并退出。

4. 增加friend账户

[html] view plain copy

  • home$ sudo useradd friend

为friend设置smb密码

[html] view plain copy

  • home$ sudo smbpasswd -a friend
  • New SMB password:
  • Retype new SMB password:
  • Added user friend.

5. 新建smbusers文件并增加一行语句

[html] view plain copy

  • home$ sudo vim /etc/samba/smbusers
  • friend = “network username”

6. 重启smbd

[plain] view plain copy

  • home$ sudo service smbd restart

查看smbd监听端口

home$ sudo netstat -tlnp | grep smb
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      5224/smbd       
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      5224/smbd   

7. 在windows中测试

命令行输入\my ip

就可以访问了。

文件共享服务Samba

介绍

SMB:Server Message Block服务器消息块,IBM发布,最早是DOS网络文件共享协议

SAMBA的功能:

  • 共享文件和打印,实现在线编辑
  • 实现登录SAMBA用户的身份认证
  • 可以进行NetBIOS名称解析
  • 外围设备共享

Samba介绍

相关包:

Samba 提供smb服务
Samba-client 客户端软件
samba-common 通用软件
cifs-utilssmb客户端工具
samba-winbind和AD相关

相关服务进程:

smbd提供smb(cifs)服务TCP:139,445
nmbdNetBIOS名称解析UDP:137,138
主配置文件:/etc/samba/smb.conf
帮助参看:man smb.conf
语法检查:testparm[-v] [/etc/samba/smb.conf]
客户端工具:smbclient,mount.cifs

Samba服务器配置

Samba服务的配置文件在/etc/samba/smb.conf里 来看一下文件的内容,包了几个部分

#全局设置:
[global]    #服务器通用或全局设置的部分

#特定共享设置:
[homes]     #用户的家目录共享
[printers]  #定义打印机资源和服务
[sharename] #自定义的共享目录配置

#在配置文件中的宏定义
宏定义:
    %m 客户端主机的NetBIOS名
    %M 客户端主机的FQDN
    %H 当前用户家目录路径
    %U 当前用户用户名
    %g 当前用户所属组
    %h samba服务器的主机名
    %L samba服务器的NetBIOS名
    %I 客户端主机的IP
    %T 当前日期和时间
    %S 可登录的用户名

#全局的服务配置
workgroup       指定工作组名称
server string   主机注释信息
netbios name    指定NetBIOS名
interfaces      指定服务侦听接口和IP
hosts allow     可用“,” ,空格,或tab分隔,默认允许所有主机访问,也可在每个共享独立配置,如在[global]设置,将应用并覆盖所有共享设置
hosts deny      拒绝指定主机访问
config file=/etc/samba/conf.d/%U    用户独立的配置文件
Log file=/var/log/samba/log.%m      不同客户机采用不同日志
max log size=50                     日志文件达到50K,将轮循rotate,单位KB
Security                            三种认证方式:
    share:  匿名(CentOS7不再支持)
    user:   samba用户(采有linux用户,samba的独立口令)
    domain:使用DC(DOMAINCONTROLLER)认证
passdb backend = tdbsam             密码数据库格式

管理samba用户

#添加samba用户
smbpasswd  -a <user>    #该用户必须是Linux内存在的系统用户,同时为用户添加账户和密码
pdbedit -a -u <user>

#修改用户密码
smbpasswd  <user>

#删除用户和密码:
smbpasswd –x <user>
pdbedit –x  –u <user>

#查看samba用户列表:
/var/lib/samba/private/passdb.tdb
pdbedit   –L –v         #查看本机的Samba账户

#查看samba服务器状态
smbstatus

设定共享目录

#每个共享目录应该有独立的[ ]部分,选项内容为
[共享名称]      远程网络看到的共享名称
comment         注释信息
path            所共享的目录路径
public          (能否匿名访问)能否被guest访问的共享,默认no,和guest ok 类似
browsable       是否允许所有用户浏览此共享,默认为yes,no为隐藏共享文件
writable=yes    可以被所有用户读写,默认为no
read only=no    和writable=yes等价,如与以上设置冲突,放在后面的设置生效,默认只读
write list      三种形式:用户,@组名,+组名,用,分隔
    如writable=no,列表中用户或组可读写,不在列表中用户只读
valid users 特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔

实现Samba文件共享

在进行操作前请确保已经安装了Samba软件包,如未安装执行如下命令yum install samba

#创建Samba共享的用户和组,并将wang用户添加至admin组中
useradd -s /sbin/nologin wang
useradd -s /sbin/nologin ymd
groupadd admin
groupmems -g admin -a wang

#设定samba用户和密码
smbpasswd -a wang
smbpasswd -a ymd

#创建共享目录
mkdir  /app/share
chgrp admin /app/share

#设定samba配置文件sma.conf
#编辑/etc/samba/smb.conf
[share]
path = /app/share       #共享文件夹的路径
write list = @admin     #可写的列表,未在列表当中的为只读

#重新启动samba服务
service smb restart

#客户端访问测试
yum -y install cifs-utils  #客户端工具包
#登录访问
[root@centos7 ~]#smbclient  //172.18.18.18/share -U wang%centos
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-41.el6]
smb: > ls
  .                                   D        0  Mon Oct 16 07:21:08 2017
  ..                                  D        0  Mon Oct 16 07:20:38 2017
  samba                               N        0  Mon Oct 16 07:21:08 2017

        40185208 blocks of size 1024. 37987148 blocks available

挂载cifs文件系统

同样也需要安装户端工具包cifs-utils,这里不再赘述

#进行手动挂载
[root@centos7 ~]#mount -o username=wang,password=centos //172.18.18.18/share /mnt/smb
#进行查看
[root@centos7 ~]#cd /mnt/smb/
[root@centos7 /mnt/smb]#ls
samba  yan.pubkey

#开机自动挂载
编辑/etc/fstab文件,可以用文件代替用户名和密码的输入
//172.18.18.18/share    /mnt/smb     cifs    credentials=/etc/smb.txt      0 0

#编辑用户密码文件
vim /etc/smb.txt
    username=wang
    password=centos

#为了防止密码泄露更改权限
chmod  600 /etc/smb.txt

多用户挂载

SAMBA共享默认只支持同时用一个用户挂载SMB共享 CentOS7中可启用多用户挂载功能客户端挂载samba共享目录后,在客户端登录的不同用户访问同一个samba的挂载点,可获得不同权限

#Samba服务器配置
vim /etc/samba/smb.conf
[smbshare]
path=/app/share
write list= @admins

#Samba服务器创建账户及设定共享目录权限,与上面创建的用户一致,这里不再进行重新创建和设置
#同时需要在客户端也需要创建相同的账号

#samba客户端启用多用户挂载

vim  /etc/smb.txt
    username=ymd
    password=centos

chmod 600 /etc/smb.txt

#以多用户的方式挂载
vim /etc/fstab
//172.18.18.18/share    /mnt/smb     cifs    multiuser,credentials=/etc/smb.txt      0 0

mount -a 

#在客户端上进行测试
#默认是以挂载时的用户进行访问的
[root@centos7 ~]#cd /mnt/smb/
[root@centos7 /mnt/smb]#touch aaa
touch: cannot touch ‘aaa’: Permission denied    #与设定的相符,ymd账号只有读 的权限

#切换成wang用户进行测试
su - wang 
cifscreds add  172.18.18.18
[wang@centos7 ~]$ cd /mnt/smb/
[wang@centos7 smb]$ touch aaa
[wang@centos7 smb]$ ls
aaa  samba  yan.pubkey                          #能够创建文件,有读写权限

多用户实现了特定的用户的特定权限

这里还要进行说明,也可以再全局设定中指定子配置文件来对不同的用户进行设定

#在global内添加如下内容
[global]
config file  = /etc/samba/conf.d/%U

#在自己指定的配置目录写创建与用户同名的子配置文件
#那么在进行指定的用户连接时就可以,读取相应的配置文件

至此Samba文件共享的服务完毕,如有错误还望批评指正,敬请谅解!

公司内部Samba 服务器架设

一、需求

在公司内部打造一个文件管理系统,其作用域仅仅在公司内部,支持在线对文件的修改和保存操作等,同时也要注意权限问题。

二、策划

目前设立四个群组:运维、开发 、测试和普通,当然所对应的对文件的访问权限也是不一致的,运维具有最高权限,其次才是开发、测试和普通

三、安装与部署

3.1 利用yum安装samba服务器

[root@localhost ~]# yum install -y samba

3.2 利用groupadd建立用户组

[root@localhost ~]# groupadd management

[root@localhost ~]# groupadd development

[root@localhost ~]# groupadd test

[root@localhost ~]# groupadd user

[root@localhost ~]#

3.3 新建用户并且指定群组

[root@localhost ~]# cat /etc/group | egrep "management|development|test|^user:"

management:x:1001:

development:x:1002:

test:x:1003:

user:x:1004:

[root@localhost ~]#

[root@localhost ~]# useradd D17040009 -g 1001

[root@localhost ~]# useradd D17040010 -g 1002

[root@localhost ~]# useradd D17040011 -g 1003

[root@localhost ~]# useradd D17040012 -g 1004

3.4 新建文件夹并且配置ACL权限

[root@localhost home]# mkdir sam

[root@localhost sam]# mkdir management development test user

[root@localhost sam]# setfacl -m g:development:rwx development/

[root@localhost sam]# setfacl -m g:management:rwx management/

[root@localhost sam]# setfacl -m g:management:rwx development/

[root@localhost sam]# setfacl -m g:management:rwx tset/

[root@localhost sam]# setfacl -m g:management:rwx test/

[root@localhost sam]# setfacl -m g:management:rwx user/

[root@localhost sam]# setfacl -m g:development:rwx test/

[root@localhost sam]# setfacl -m g:development:rwx user/

[root@localhost sam]# setfacl -m g:test:rwx test

[root@localhost sam]# setfacl -m g:test:rwx user

[root@localhost sam]# setfacl -m g:user:rwx user

3.5 修改配置文件

[root@localhost sam]# cat /etc/samba/smb.conf

# See smb.conf.example for a more detailed config file or

# read the smb.conf manpage.

# Run 'testparm' to verify the config is correct after

# you modified it.

[global]

# workgroup = SAMBA

workgroup = WORKGROUP

security = user

passdb backend = tdbsam

printing = cups

printcap name = cups

# load printers = yes

load printers = no

cups options = raw

log file = /var/log/samba/log.%m

max log size = 50

passdb backend = smbpasswd

username map = /etc/samba/smbusers

[smb]

comment = 5M1330

path = /home/sam

writable = yes

browseable = yes

available = yes

#[homes]

# comment = Home Directories

# comment = 5M1330 Directories

# path = /home/vsftpd

# admin user = root

# valid users = %S, %D%w%S

# valid user = @management,@development,@test,@user

# browseable = yes

# writable = yes

# read only = no

# inherit acls = Yes

# guest ok = no

#[printers]

# comment = All Printers

# path = /var/tmp

# printable = Yes

# create mask = 0600

# browseable = No

#[print$]

# comment = Printer Drivers

# path = /var/lib/samba/drivers

# write list = root

# create mask = 0664

# directory mask = 0775

四、测试

4.1 登陆用户:D17040009 所属组:management

未分类

4.2 登陆用户:D17040010所属组:development

未分类

4.3 登陆用户:D17040011所属组:test

未分类

4.4 登陆用户:D17040012所属组:user

未分类

五、系统维护和故障排除

5.1 无法连接samba服务器

  • 尝试ping一次查看网络能否ping通
  • 查看firewall配置
  • 重启samba服务尝试

5.2 无法创建文件

  • 查看服务器selinux配置
  • 重启samba服务尝试

5.3 新建用户并且加入群组无法访问应该访问的位置

  • 删除用户再次新建

samba配置

由于工作需要,需要使用samba在windows下访问linux下的文件,主要是编译环境,linux下使用的是root用户,SSH登陆,而开发是在windows下,代码在windows下开发,为了开发的文件能方便共享,提高开发效率,就折腾了一下samba。

安装samba:yum install samba

开机启动:chkconfig smb on

          chkconfig smb on

samba添加root用户访问:useradd root(默认已有)

smbpasswd -a root —后面输入密码

配置samba:(主要配置)

[chen]
       comment = rogsm-build
       path = /macc/chen
       writable = yes
;       public = yes
       browseable = yes
       valid users = root 
       create mask = 0777

重启samba:service smb restart;

service nmb restart

windows下清除共享用户名和密码:net use * /delete

windows下访问共享:\xx.xx.xx.xxxx

samba中实现共享中所有创建的文件都属于指定用户的功能

方法很简单,但很实用。

在需要指定的共享中加入。

force user = 要指定的用户

例如,要求老师得能在“孙锡源”这个学生的共享文件夹中创建文件,但老师创建的文件所有者是老师本人,孙锡源没权限修改及删除文件。那么就可以加一行“force user = sxy”,让老师创建的文件的所有者也是孙锡源本人,这样孙锡源就可以操作文件了。

未分类

快速创建一个可读写的Samba Server的shell脚本

把下面的内容保存成一个shell 脚本,运行完就有了一个可读写的samba server

#!/bin/bash
yum install samba samba-common samba-winbind -y
mv /etc/samba/smb.conf /etc/samba/smb.conf.backup

echo "  [global]    " > /etc/samba/smb.conf
echo "          workgroup = PXESERVER   " >> /etc/samba/smb.conf
echo "          server string = Samba Server Version %v " >> /etc/samba/smb.conf
echo "          log file = /var/log/samba/log.%m    " >> /etc/samba/smb.conf
echo "          max log size = 50   " >> /etc/samba/smb.conf
echo "          idmap config * : backend = tdb  " >> /etc/samba/smb.conf
echo "          cups options = raw  " >> /etc/samba/smb.conf
echo "          netbios name = pxe  " >> /etc/samba/smb.conf
echo "          map to guest = bad user " >> /etc/samba/smb.conf
echo "          dns proxy = no  " >> /etc/samba/smb.conf
echo "          public = yes    " >> /etc/samba/smb.conf
echo "          kernel oplocks = no " >> /etc/samba/smb.conf
echo "          nt acl support = no " >> /etc/samba/smb.conf
echo "          security = user " >> /etc/samba/smb.conf
echo "          guest account = nobody  " >> /etc/samba/smb.conf
echo "  [upload]    " >> /etc/samba/smb.conf
echo "          comment = upload    " >> /etc/samba/smb.conf
echo "          path = /home/upload " >> /etc/samba/smb.conf
echo "          read only = no  " >> /etc/samba/smb.conf
echo "          browseable = yes    " >> /etc/samba/smb.conf
echo "          public = yes    " >> /etc/samba/smb.conf
echo "          printable = no  " >> /etc/samba/smb.conf
echo "          guest ok = yes  " >> /etc/samba/smb.conf
echo "          oplocks = no    " >> /etc/samba/smb.conf
echo "          level2 oplocks = no " >> /etc/samba/smb.conf
echo "          locking = no    " >> /etc/samba/smb.conf

mkdir -p /home/upload
chmod -R 0755 /home/upload
chown -R nobody:nobody /home/upload
systemctl restart smb
systemctl enable smb

ubuntu16.04安装配置samba服务器

ubuntu16.04上samba服务器的安装和配置
samba服务器的介绍可以查看鸟哥私房菜服务篇中的文件服务器之二,有详细的介绍,本文只介绍samba的两种安装方式和配置。

1. 离线安装

  • 下载samba压缩包samba-3.0.22-tar.gz

  • 解压到目标目录,如/opt

  • 解压之后,进入到source目录,执行以下命令

./configure
make
make install
  • 修改配置文件,将example/samba.conf.default 拷贝到/usr/local/samba/lib,将其名称修改为samba.conf,写入的配置信息如下:
[global]
workgroup = Linux # 在windows上显示的目录名称
netbios name = test 
server string = Linux Samba Server TextServer
Security = share # 安全等级

[Linux]
path = /root  # 共享/root目录
writeable = yes # 写的权限
browsable = yes # 查看的权限
guest ok = yes # 访客身份

设置以guest身份登录,无需密码。

2. 在线安装

  • 在命令行中输入:
sudo apt-get install samba samba-common-bin
  • 进入/etc/samba目录,修改smb.conf配置文件,只需要将[home]块的注释取消即可,共享/home文件夹

  • 将当前用户添加到samba访客中:

sudo smbpasswd -a username

输入两次密码。

3. 启动服务

命令行输入:

smbd
nmbd
  • windows连接采用:\ip

  • linux连接采用:smbclient -L //ip