1

介绍

在小型网络中,例如家庭网络、或在非域主机中共享目录,通常你不想设置AD域或NT4域。本文描述了如何配置Samba作为独立服务:

  • 允许匿名访问的共享;
  • 支持Samba本地用户认证的共享;

允许访客访问的smb.conf

如下配置为,仅为支持访客访问的最小化配置。

[global]
        map to guest = Bad User
        log file = /var/log/samba/%m
        log level = 1
        server role = standalone server

[guest]
        # This share allows anonymous (guest) access
        # without authentication!
        path = /srv/samba/guest/
        read only = no
        guest ok = yes
        guest only = yes

认证访问的smb.conf

如下配置为,Samba作为Standlone server的最小化配置。

[global]
        log file = /var/log/samba/%m
        log level = 1
        server role = standalone server

[demo]
        # This share requires authentication to access
        path = /srv/samba/demo/
        read only = no
        valid users = @demoGroup
        inherit permissions = yes
  • 可通过修改workgroup = xxxxx设置workgroup,该参数未设置时,默认使用WORKGROUP
  • 最小化设置 log参数不是必须的,但其对出现问题的情况非常有用;
  • 以上配置为最小化配置,你也可以添加其他参数。

创建本地用户账户

要在独立主机上提供身份验证,您必须在操作系统以及 Samba 数据库中创建帐户。默认情况下,Samba 使用 tdbsam 并将数据库存储在 /usr/local/samba/private/passdb.tdb 文件中。使用 smb.conf 文件中 passdb 可选参数可以设置数据库的存储位置。有关详细信息,请参阅 smb.conf 5 手册页。

  • 在本地系统创建一个 demoUser 账户:
# useradd -M -s /sbin/nologin demoUser
  • 在本地系统启用 demoUser 账户:
# passwd demoUser
Enter new UNIX password: Passw0rd
Retype new UNIX password: Passw0rd
passwd: password updated successfully
  • 将demoUser账户添加到Samba数据库:
# smbpasswd -a demoUser
New SMB password: Passw0rd
Retype new SMB password: Passw0rd
Added user demoUser.

该密码将用于用户登陆Samba、域。

本地用户组管理

  • 创建一个demoGroup用户组:

    # groupadd demoGroup
  • 添加demoUser账户到该用户组:

    # usermod -aG demoGroup demoUser

创建共享目录

创建要共享的目录:

# mkdir -p /srv/samba/guest/
# mkdir -p /srv/samba/demo/

为共享目录设置ACL

设置如下的POSIX权限:

# chgrp -R demoGroup /srv/samba/guest/
# chgrp -R demoGroup /srv/samba/demo/

# chmod 2775 /srv/samba/guest/
# chmod 2770 /srv/samba/demo/
  • 以上目录对于demoGroup的成员均有读写权限;
  • 其他用户/srv/samba/guest/对拥有读权限,对/srv/samba/demo/没有权限;
  • 上面目录权限中的第一位(2)是SGID位,代表新的文件被创建时,继承父目录的所属用户组;

若需要更多信息,请访问 使用POSIX ACL设置共享

测试共享访问权限

每次更新 /etc/samba/smb.conf 文件,你应该使用testparm工具来验证Samba配置是否有效。可以执行如下:

# testparm -s

输出如下:

Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions
...

如果输出中显示了任何错误,你需要先修复它。

资料来源

[1] Setting up Samba as a Standalone Server


中华小厨神
148 声望9 粉丝

上士闻道,勤而行之;中士闻道,若存若亡;下士闻道,大笑之。不笑不足以为道。


引用和评论

0 条评论