samba 部署

回复 收藏
samba如同于windows中的
网络工作组
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。

# yum install -y samba samba-client
安装samba服务包和samba-client客户端(
用于测试

(1)Samba的配置文件
Samba 的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。默认这个文件的很多内容被注释了,未注释的有以下内容:
[global]    该部分内容为全局设置
    workgroup = MYGROUP    工作组名
    server string = Samba Server Version %v    描述
    security = user    验证方式
    passdb backend = tdbsam    后台密码方式
    load printers = yes    打印机相关的
    cups options = raw    打印机相关的
[homes]    该部分内容是用户家目录的共享,单纯的文件共享环境这部分内容可以注释
    comment = Home Directories    描述
    browseable = no    是否可以被浏览
    writable = yes    是否可写
[printers]    该部分内容设置打印机共享
    comment = All Printers
    path = /var/spool/samba
    browseable = no
    guest ok = no
    writable = no
    printable = yes
主要有以上三个部分: [global], [homes], [printers]
关于samba的验证方式有四种:

  • share:用户不需要账户及密码即可登录 samba 服务器
  • user:由提供服务的 samba 服务器负责检查账户及密码(默认)
  • server:检查账户及密码的工作由另一台 Windows 或 samba 服务器负责
  • domain:指定 Windows 域控制服务器来验证用户的账户及密码


samba passwd的几种方式:http://www.cnblogs.com/jary-wang/archive/2013/05/21/3091343.html

几个常见参数:
netbios name = MYSERVER    设置出现在网上邻居中的主机名
hosts allow = 127. 192.168.12. 192.168.13.    用来设置授权的主机,如果在前面加";"则表示允许所有主机
log file = /var/log/samba/%m.log    定义 samba 的日志,这里的%m 是上面的 netbios name
max log size = 50    指定日志的最大容量,单位是K
Samba配置文件常用参数详解:http://yuanbin.blog.51cto.com/363003/115761/
(2)Samba实践
A. Samba 实践一
要求:共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
# vim /etc/samba/smb.conf
workgroup = MYGROUP    改为    workgroup = WORKGROUP

security = user    改为    security = share

末尾添加
[share]
    comment = share all
    path = /data/samba-site
    browseable = yes
    public = yes
    writable = no
创建共享目录

# mkdir /data/samba-site

# chmod 777 /data/samba-site/

# touch /data/samba-site/sharefiles.txt
#
echo "1111">/data/samba-site/sharefiles.txt

# /etc/init.d/smb start
启动 SMB 服务:                                            [确定]
测试
windows:在浏览器中输入file://///IP/share/或者在资源管理器中输入\\192.168.1.108\share


linux:
# smbclient //localhost/share
WARNING: The security=share option is deprecated
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]
Server not using user level security and no password supplied.
smb: \> ls
  .                                   D        0  Fri Feb 19 21:36:50 2016
  ..                                  D        0  Fri Feb 19 21:27:07 2016
  sharefiles.txt                               5  Fri Feb 19 21:36:41 2016

        35727 blocks of size 524288. 31446 blocks available
smb: \>

B. Samba 实践二
要求:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写
# vim /etc/samba/smb.conf

security = user    改为    security = share

将[share]更改为

[myshare]


    comment = share all
    path = /data/samba-site
    browseable = yes
    public = no
    writable = yes

添加用户
因为在[globa]中 “passdb backend = tdbsam”, 所以要使用 pdbedit 来增加 用户,注意添加的用户必须在系统中存在,所以需要先创建系统账号:
# groupadd samba

# grep 'samba' /etc/group
samba:x:502:
# useradd -g 502 -s /sbin/nologin smbuser1
# useradd -g 502 -s /sbin/nologin smbuser2


# chmod 775 /data/samba-site/
# chown :502 /data/samba-site/
# ls -ld /data/samba-site/
drwxrwxr-x 2 root samba 4096 2月  19 21:36 /data/samba-site/

# pdbedit -a smbuser1
new password:
retype new password:
# pdbedit -a smbuser2

new password:

retype new password:

# pdbedit -L
smbuser1:502:
smbuser2:503:
重启 samba 服务:


# service smb restart
测试
# smbclient //192.168.1.108/myshare -U smbuser1
Enter smbuser1's password:
smb: \> mkdir testdir
smb: \> ls
  .                                   D        0  Fri Feb 19 22:05:00 2016
  ..                                  D        0  Fri Feb 19 21:27:07 2016
  sharefiles.txt                               5  Fri Feb 19 21:36:41 2016
  testdir                             D        0  Fri Feb 19 22:05:00 2016

        35727 blocks of size 524288. 31445 blocks available
smb: \> quit
# ll /data/samba-site/
总用量 8
-rw-r--r-- 1 root     root     5 2月  19 21:36 sharefiles.txt
drwxr-xr-x 2 smbuser1 samba 4096 2月  19 22:05 testdir

C. Samba 实践三


需求:搭建samba服务器,共享两个目录,public与project,其中public目录可匿名访问,任何人可以读写,project目录需要验证用户名密码方可访问。

[global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 50
    security = user    认证模式为user
    passdb backend = tdbsam    这个很关键,实现匿名无须交互输入用户名和密码
    load printers = yes
    cups options = raw
    printable = yes
    map to guest = bad user
    guest account = nobody
    encrypt password = yes    用户的密码加密
    smb passwd file = /etc/samba/smbpasswd
[public]
    comment = public
    path= /data/public
    browseable = yes    可以被浏览,就是在网络邻居中能看到共享名   
    guest ok = yes    允许匿名访问,这个也需要设置,否则匿名无法访问
    writable = yes
    printable = no
    create mask = 0644
    directory mask = 0755
[project]
    comment = project
    path=/data/project
    browseable = yes
    public = no
    guest ok = no
    writeable = yes
;   force user = root    强制指定建立文件的属主
    printable = no
    create mask = 0644
    directory mask = 0755
# mv
/data/samba-site/
/data/project



# mkdir /data/public

# chown nobody.nobody /data/public
检查配置文件是否正确
#
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Processing section "[public]"
Processing section "[project]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions

# /etc/init.d/smb restart
关闭 SMB 服务:                                            [确定]
启动 SMB 服务:                                            [确定]
测试
# smbclient //192.168.1.108/project -U smbuser1

Unknown parameter encountered: "encrypt password"

Ignoring unknown parameter "encrypt password"

Enter smbuser1's password:

Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]

smb: \> mkdir haha

smb: \> ls

  .                                   D        0  Fri Feb 19 22:39:44 2016

  ..                                  D        0  Fri Feb 19 22:17:29 2016

  haha                                 D        0  Fri Feb 19 22:39:44 2016


        35727 blocks of size 524288. 31446 blocks available

smb: \> quit


# smbclient //192.168.1.108/public
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]
smb: \> mkdir test
smb: \> ls
  .                                   D        0  Fri Feb 19 22:38:53 2016
  ..                                  D        0  Fri Feb 19 22:17:29 2016
  test                                D        0  Fri Feb 19 22:38:53 2016

        35727 blocks of size 524288. 31446 blocks available
smb: \> quit
# ls -l /data/p*
/data/project:
总用量 4
drwxr-xr-x 2 smbuser2 samba 4096 2月  19 22:42 haha

/data/public:
总用量 4
drwxr-xr-x 2 nobody nobody 4096 2月  19 22:38 test





挂载Samba共享目录
linux:

在linux中除了可以使用smbclient访问外,还可以通过 mount 挂载了,如:

# mount -t cifs //192.168.1.108/myshare /mnt -o username=smbuser1,password=123456

格式就是这样,要指定 -t cifs //IP/共享名 本地挂载点 -o 后面跟 username 和 password 挂 载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。

windows:

打开我的电脑—>右击“添加一个网络位置”,然后根据提示执行

clipboard.png






2016-02-19 23:18 举报
已邀请:
0

starry

赞同来自:

{:4_102:}发笔记没学分,应该发资料分享去
0

qiangdashen2

赞同来自:

总结的很棒啊 顶一个

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: